Starting on August 14 2013, we're making some changes to the way Segments are refreshed when bulk updating contacts through the API. If you use the API to update contacts in bulk and use Segments, you'll want to read the below for further details.
Bulk updates to contacts made via the API will not immediately update the segments that the contacts are members of. Refreshes will still happen automatically but may take up to 30 minutes to start. Care needs to be taken therefore when bulk updating contacts with the API and then sending to a segment.
Contact updates caused by data mapping with our survey tool are also affected by this change.
Segments can refresh in one of two ways, depending on what data they hold: they can update in real-time if the segment only uses contact data, but they have to be refreshed manually if the segment uses behavioural data. A full explanation on this can be found at Refreshing segments. This change only affects Segments that update in real-time (those containing contacts that are segmented on contact data fields or address books) and contacts that are updated in bulk using our API or through survey data mapping. There will be no change in behaviour if you update contacts through the application, or if your segments are based on behavioural data.
The following API v1 methods are affected by this change:
The following API v2 SOAP methods are affected:
The following API v2 REST operations are affected:
I think this affects me. What should I do?
If you believe you are adding or updating contacts through the API and use segments based on contact data, then you can do one of two things:
- You can ensure you do not send to a segment within 30 minutes of contact data being updated
- Or, you can programmatically update a segment through the API. More information on our API can be found over on our API articles.
When will this happen?
The changes will take effect from Wednesday 14 August.
Why is this changing?
We're unusual in the ESP market in offering real-time segments, and we do so because they can be really useful. However, updates via the API can trigger multiple segment refreshes, even though they're not required.
That, coupled with the fact that updating a segment is technically demanding, means we're using a lot of our resources in areas where they're not needed. We think these resources would be much better spent making sure the system as a whole runs as fast as it can.