The Grouparoo Blog
Grouparoo supports syncing data to an ever-growing number of destinations. While building these integrations and talking to our users, we have found it's important to be intentional about how exactly data syncing to these destinations is performed.
For example, our Salesforce data integration has a "Sync Mode" option that allows you to control whether contacts will be created, deleted or only updated. Similarly, our Intercom plugin has an option for skipping contact removals and another for opting out of contact creation. Our Facebook integration also has an option to avoid deleting people from Audiences, due to limitations on the amount of people that can be deleted. This doesn't stop here and this notion of sync modes can be applied throughout most destinations.
Ultimately, these can be summarized in three main cases or modes ("sync modes"):
- Sync: Add, update and remove profiles from the destination as needed.
- Additive: Add new profiles and update those that already exist in the destination, but never remove anyone.
- Enrich: Update profiles that already exist in the destination, enriching them with additional data and group membership information. No profiles are added or removed.
In this post we'll highlight some of the most common use cases where identifying these sync modes can be useful.
In the early stages of an integration, users may want to Enrich profiles that are already present in the destination. This is mainly the case with sales and customer support tools like Salesforce and Intercom that often have source-of-truth data, such as tickets that customers have filed or notes about sales meetings. Unintentionally deleting these profiles would represent a loss of that important information.
To feel more comfortable with syncing to the destination, we've seen users start out by only Enriching so that no major changes are made to the sales team's workflow, and then switch to Additive to start feeding them new Leads from the product.
It's interesting to note that this is somewhat different than when integrating with marketing tools like Marketo or Mailchimp, where the focus is to push contacts to the destination and communicate with them, instead of holding additional related data.
These sync modes can also be used throughout multiple destinations to support more complex workflows. For example, when using our Salesforce data integration you could define two destinations, one for each stage of the lifecycle:
- A destination set up in Additive mode would make sure to create new Leads as people sign up, which salespeople would look for and claim.
- When Leads become upgraded to Contacts and have the salesperson assigned, another destination set up in Enrich mode keeps the Contact's information up to date as they interact with the product.
Due to the nature of certain destinations and how they work, not all of them will be able to support all sync modes. In these cases, being clear about which sync mode it's operating in can avoid confusion and better help understand what's going on.
Because adding and removing people is a task intended to be done by their SDK, our OneSignal destination works in Enrich mode, only enhancing existing devices with properties and groups through the use of tags.
Syncing to Facebook's custom audiences also exhibits a similar case. Audiences have a minimum of 100 people, so removing users can often hit that limit and cause errors. Because of this, we have added options for Sync and Additive modes, allowing you to choose whether or not we should try to delete.
Tagged in Engineering
See all of Pedro S Lopez's posts.
Pedro is a full-stack Software Engineer working on Grouparoo, an open source data framework that easily connects your data to business tools. He's a tinkerer that enjoys reverse engineering, automation and technology in general. When he's not programming, Pedro spends his time playing and listening to music.
Learn more about Pedro @ https://pedroslopez.me/