The Grouparoo Blog
You can now sync your Grouparoo data with Salesforce. This destination allows you to take advantage of the profiles and groups you already have in Grouparoo and populate any set of Objects in Salesforce. After setting it up, everything will continuously update in real-time.

Using Contacts and Leads with Campaigns in the most common setup, but Grouparoo allows you to be very flexible.
So the most important thing to understand is how your Grouparoo profiles and groups will map to Objects in Salesforce. Because Salesforce has many types of Objects including custom ones, there can be a lot to choose from. The profile ones are usually "people" type objects and the groups are lists of those people.
Grouparoo also allows you to create an extra Object hanging off your profile. For example, it will automatically make Accounts for your Contacts based on Grouparoo profile data.
Salesforce setup
In Salesforce, you will need your username and password, along with a security token. Reset it from within your user "settings" screen.

Create a Grouparoo app
In Grouparoo, apps provide the settings to be able to connect to other platforms. For Salesforce, we can use your credentials from last section to configure your Salesforce app. At this point if you hit "Test Connection," you should see "Test Passed."

Create a Grouparoo destination
Now, it's time to create a destination. In Grouparoo, destinations are the configuration for how the data flows, connecting the profile and group membership data in Grouparoo with external tools like Salesforce.
Because Salesforce is so flexible, this is where we will teach Grouparoo how we want to populate our Object data.
Here are the options available:
Option | Common values | Question |
---|---|---|
profile Object | Contact, Lead | Which object in Salesforce represents a Grouparoo profile? |
profile Match Field | email, id from database | Which field in the profile Object is used to match Grouparoo profiles? |
group Object | Campaign, Topic | Which object in Salesforce represents a Grouparoo group? |
group Name Field | Name | Which field in the group Object is used for the name of a Grouparoo group? |
membership Object | Campaign Member, Topic Assignment | Which object in Salesforce maps the profile object to the group object? |
membership Profile Field | Contact Id, Lead Id | Which field in the membership Object is the reference to the profile? |
membership Group Field | Campaign Id, Topic Id | Which field in the membership Object is the reference to the group? |
profile Reference Field | Account Id | Is there a reference field on the profile Object to fill out? |
profile Reference Object | Account | If there is a reference field, which Object should be created to apply to the profile? |
profile Reference Match Field | name, company_id from database | If there is a reference field, how should it be matched to Grouparoo profiles? |
There are lots of things to choose from, but the flexibility allows you to do whatever you need to do. In the future, we will likely make optimized destinations for common paths such as Contacts with Accounts in Campaigns. Now, that would be accomplished like this:

Then, you fill out the profile properties to map these concepts to your Grouparoo profiles.

This would include your groups.

Results
All of your Grouparoo profiles now are in Salesforce as Contacts. Each Contact is mapped to the appropriate Account based on their companyName
profile property. Grouparoo made a "High Value" Campaign and one for the other groups too. The correct people have been placed in each Campaign.


From here, you can do whatever you want in Salesforce.
Implementation Details
This is by far our most configurable plugin. It was neat to see that the model scales to to account for this. We can use the destination options in the data mapping section to provide flexibility.
The jsforce library is quite complete and really made it easy to do the integration. It provides a unified interface regardless of the Salesforce version number. Once consequence to look out for, though, is that it can look like it's batching records, but not really doing it. It falls back to doing many single requests in parallel on some operations before v42.
Tagged in Connections Engineering
See all of Brian Leonard's posts.
Brian is the CEO and co-founder of Grouparoo, an open source data framework that easily connects your data to business tools. Brian is a leader and technologist who enjoys hanging out with his family, traveling, learning new things, and building software that makes people's lives easier.
Learn more about Brian @ https://www.linkedin.com/in/brianl429