Salesforce to Customer.io No Code Real-Time Data Sync

  • 21 September 2023
  • 0 replies

This is a guide on how to build a real-time data sync automation between Salesforce and Customer.io, without the need to program a custom integration from scratch. Even though this is a no-code implementation, technical knowledge and a good understanding your Salesforce organization’s data structure is required.


The solution utilizes an automation platform called Pipedream which offers no-code connections for both Salesforce and Customer.io.

The reasons for choosing Pipedream for this automation instead of other similar platforms (e.g. Zapier) are as follows:

  1. Its connection with Salesforce automatically creates Apex classes in your Salesforce organization. This makes it possible to build a data sync automation that gets triggered as soon as a new object is created, updated or deleted. Similar platforms do not create Apex classes. Instead, they check Salesforce for new data at set time intervals (e.g every 15 minutes).
  2. Its pricing is based on automation invocations rather than automation actions, which is how similar platforms charge. This means that you only pay 1 credit every time your data sync automation is triggered, regardless how many actions you have as part of your automation.

Below you will find a step-by-step tutorial on how to set up a sample data sync automation:

Video Walkthrough


Step by Step Instructions 

Create a PipeDream account 

To create a Pipedream account, navigate to pipedream.com.


Create a new Workflow 

Once you are logged in, create a new workflow by navigating to the Workflows page. Click on the New button at the top right corner.

The workflow is where you’ll define the steps of the automation that will sync your object data from Salesforce to Customer.io.


Add Salesforce as a trigger

The workflow will be triggered by the Salesforce app. Therefore, you need to search for Salesforce and select the option with name Salesforce (REST API).

You will now see a list of all the available events that can be used as triggers for your automation. The key here is to look for the events with ‘Instant’ in their name, since the goal is to built a real-time data sync.

There should be a trigger event for a:

  • New Object - This event will trigger the workflow when a new object (of a specific type) is created.
  • New Updated Object - This event will trigger the workflow when a new object (of a specific type) is updated.
  • New Deleted Object - This event will trigger the workflow when a new object (of a specific type) is deleted.

For this example, I will choose the New Object event as the trigger for the workflow.

The next step is to create a connection with your Salesforce account. Click on Connect a Salesforce account to initiate a connection.

You will need to select whether you would like to connect to a Salesforce Production or Sandbox organization.

Once you select the organization type you will see a popup asking you to enter your Salesforce account credentials in order to establish the connection.

Once the connection is established you can move to the next step where you need to select the Object Type you would like to monitor for new events.

You are able to select any object type that is available in your organization, whether it is a Salesforce native object or a custom one.

To complete the configuration you need to give the object a name of your choice (e.g. New Contact)

Once you finish configuring this action you need to test it by selecting a sample event. If you cannot see a sample event, you need to generate one by creating a new object in Salesforce and wait for Pipedream to detect it.

Once the test is completed you can move to the next step of the workflow by clicking Continue.


Add Customer.io as a destination

The next step in the data sync workflow is to take the object data from the Salesforce trigger action and pass it to Customer.io in the form profile attributes or an event.

Search for Customer.io and add it as a next step.

For this example, I aim to pass the data from every newly created Salesforce Contact object to a Customer.io profile, therefore, I will select the Create or Update Customer action from the list.

If you wish to send an event instead, you can select the Send Event To Customer io action. The set up process will be very similar.

The first step to configuring this action is creating a connection with your Customer.io workspace.

To establish a connection you need to copy/paste the Site ID and API Key from your workspace settings. Here is a guide on how to find these credentials.

Once your connection is established, the next step is to provide the identifier of the Customer.io profile you would like to create/update with the Salesforce object data.

Since a Customer.io profile can have both id and email as unique identifiers, you can choose the most suitable way to identify the profile based on the data you have available in Salesforce. For example, if the common identifier between your Salesforce and Customer.io workspaces is the customer’s email address, you can use Email as the way to identify the Customer.io profile.

In this example I will use both, just in case I have a Salesforce Contact with no email.

To set a value to a field you first need to click on it. You will then see a list of variables that have been retrieved from the Salesforce action that triggered the workflow. Every field of the trigger object should have a variable that can be mapped to the Pipedream field.

For this example, I will map the Salesforce object Id as the value for the Customer ID field.

For the Email field, I will map the value of the Email variable.

The rest of the data you would like to pass to the profile can be stored in profile attributes.

Each attribute needs to have a name and a value, which you can define in the key:value fields as shown below.

Similarly to the identifiers, attribute values can be dynamically mapped from a Salesforce object variable.

To keep adding new attributes to the list, simply click the plus icon at the bottom right corner.

Once you have all your attributes defined, you can click Test to ensure that the action works as expected.

If you set everything up correctly your Customer.io profile should have been successfully updated.

If you are ready to start using this workflow simply click Deploy.


0 replies

Be the first to reply!