The Grouparoo Blog

Salesforce Destination

Tagged in Connections Engineering 
By Brian Leonard on 2020-11-14

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.

How Grouparoo connects to Salesforce

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.

Get a Salesforce security token

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."

Creating Grouparoo Salesforce App

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:

Setting up the Salesforce destination

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

Grouparoo properties to send to Salesforce

This would include your groups.

Grouparoo groups to send to Salesforce


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.

Contacts added to Salesforce
Salesforce Campaigns created

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.

Stay up to date

We will let you know about our launch and new content.

Share this post

Twitter Logo