Skip to main content

Overview

You want to provide relevant, timely interactions to your customers. Doing so means that data in your Customer.io account needs to be as accurate and fresh as possible. By syncing customer data directly from your data warehouse into Customer.io, you no longer need to worry about data consistency.

Supported syncing

Connect to Customer.io

To give Hightouch access to Customer.io, you need to enter:
  • tracking site ID
  • tracking API key
  • app API key
  • the region of your Customer.io account
Follow the instructions in the following sections to retrieve your site ID and API keys. If you restrict access to your Customer.io workspaces by IP address, you need to add the Hightouch IP Addresses to your IP Address Allowlist. IP Allowlist If you see “Any IP address is currently able to access the App API for all workspaces.” in your Customer.io configuration, it means you can skip this step.

Retrieve tracking site ID and API key

  1. Navigate to your Account Settings and Manage API Credentials page.
  2. Under Tracking API Keys, copy a pre-created Site ID and API Key, or create a new one to use for Hightouch.
Tracking Credentials Page

Retrieve app API key

  1. Navigate to your Account Settings and to the App API Keys tab under the Manage API Credentials page.
  2. Create an App API Key and assign it to the appropriate workspace, for example “Hightouch.”
App Credentials Page

Syncing data

Customers

Sync data from any source to customer objects.

Record matching

You can match rows in your model with users in Customer.io on the following fields:
  • Customer.io External ID
  • Email
  • CIO ID

Field mapping

You can sync columns from your source to Customer.io customer attributes. If the customer attribute doesn’t exist, Hightouch creates it.

Delete behavior

In Upsert mode, you have the following options for how Hightouch should handle rows leaving your query results: In Update mode, you have the following options for how Hightouch should handle rows leaving your query results:

Objects

Sync data from any source to custom objects.

Record matching

You can match rows in your model with objects in Customer.io on the Object ID field

Field mapping

You can sync columns from your source to Customer.io object attributes. If the object attribute doesn’t exist, Hightouch creates it.

Relationships

You can create relationships from each object synced to a customer in Customer.io. You can create relationships to the following fields:
  • Customer.io External ID
  • Email
  • CIO ID

Delete behavior

You have the following options for how Hightouch should handle rows leaving your query results:

Record matching

You can match rows in your model with users in Customer.io on the following fields:
  • Customer.io External ID
  • Email
  • CIO ID

Events

You can sync the following customer event types:
  • Track event
  • Track page views
  • Track mobile screen views
To ensure syncs send each event, your event model must use a truly unique primary key. See the events syncs documentation for more information.

Event name

Provide an event name. This is how you can reference the event in Customer.io campaigns or segments.

Event ID (optional)

Event ID is an identifier Customer.io uses to de-duplicate events. If provided and an event has the same value as previously synced event, Hightouch doesn’t process the duplicate event.

User ID

A User ID is a unique value representing a user. You may identify a user by ID, email address, or Customer.io ID. If you wish to sync the events as anonymous, you can skip providing a User ID and provide an Anonymous ID instead.

Event timestamp

Provide a timestamp of when the event occurred. If this field is empty, Hightouch uses the time the event arrives at the server. Any DateTime value provided from your source is converted to Unix timestamp as expected by Customer.io.

Field mapping

You can sync columns from your source to Customer.io customer attributes. If the customer attribute doesn’t exist, Hightouch creates it.

Segments

Sync data from any source to new or existing segments.

User identifiers

You can match rows in your model with users in Customer.io on the following fields:
  • Customer.io External ID
  • Email
  • CIO ID

Create a segment

  • To create a new mailing list, select Create a new segment.
  • You can provide a name for this segment, or Hightouch use the name of the model used to create the sync.

Use an existing segment

  • To use an existing mailing list, select Use existing segment.
  • You can select any of your existing Customer.io segments from the drop-down select menu.

Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the live debugger. To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up sync alerts. If you run into an issue this page doesn’t cover, .
Last modified on December 18, 2024