The Grouparoo Blog
The steps utilizing
grouparoo generate
will not be replicable as the command will be fully deprecated in v0.8.1A few weeks ago we wrote about Sync Modes and why they may be useful when it comes to syncing data to a destination. In short, Sync Modes allow you to have more control over what operations are performed and how Grouparoo interacts with contacts that may already exist in the destination system.
In Grouparoo v0.3, we're introducing Sync Modes as a core concept and making them available throughout all destinations. In this initial release, we're rolling out sync modes for our Salesforce data integration, our Marketo integration, and our Zendesk integration, as well as our Intercom, HubSpot, Mailchimp, Pipedrive, Facebook, and Iterable integrations. We'll continue adding to this list by updating remaining plugins and build them into new destinations going forward.
Supported Sync Modes
Because we've standardized sync modes across the board, you'll be able to easily see which sync modes are supported by the destination and select the right one depending on intended behavior. This gives you more control and clarity over what's going to happen with your data.
As a quick refresher, here's what each mode does:
- 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.
Using Sync Modes in a Declarative Config Workflow
If you're using the declarative configuration approach, you can use the Grouparoo CLI to check out which sync modes are supported by each Destination. Using the --describe
flag on a destination generator displays the available options.
For example, here's the output when describing the Pipedrive destination template:
$ grouparoo generate pipedrive:destination --describe
🦘 Grouparoo: generate pipedrive:destination
Config for a pipedrive Destination
Required Arguments:
* id (required) - The id of this new Destination
Required Options:
* parent (required) - The id of the pipedrive App to use for this Destination, e.g: `--parent data_warehouse`
Optional Options:
* syncMode - How should profiles sync to the destination? e.g. `--sync-mode additive`. Options: sync, additive, enrich (default: "sync")
The last line of the previous example shows which sync modes are available to you, as well as which sync mode the destination operates in by default.
Then, you can set the desired sync mode in your config file by using the syncMode
property. Here's how you would set up a Salesforce destination to work in enrich
mode:
{
id: "...",
name: "...",
class: "destination",
type: "salesforce-objects-export",
appId: "...",
groupId: "...",
syncMode: "enrich", // How should Grouparoo sync with this destination? Options: "sync", "additive", "enrich"
options: {
profileObject: "Contact",
profileMatchField: "Email",
// ...
See it in action
As you start sending data to your destinations, depending on which sync mode you've selected you may notice some messages on your exports letting you know what's going on.
In the example above, we set a HubSpot destination to enrich
mode. This mode does not allow any new profiles to be added to the destination, so an info message was added to the export.
If you're using a sync mode that does not delete anybody from the destination (e.g. enrich
, additive
), you'll see Grouparoo remove them from any groups they may have been in, but the contact itself will be left in place:
You can start using sync modes today and have better control over how your data is synced. If you're running an older version of Grouparoo, check out our v0.2 to v0.3 upgrade guide.
Tagged in Engineering Product
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/
Get Started with Grouparoo
Start syncing your data with Grouparoo Cloud
Start Free TrialOr download and try our open source Community edition.