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

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

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

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
- 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 theObject 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
- 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
- CIO ID
Events
You can sync the following customer event types:- Track event
- Track page views
- Track mobile screen views
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. AnyDateTime 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
- 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.