Deliver exceptional engagement campaigns using the freshest customer data from your warehouse
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
Sync Type | Description | Supported Sync Modes |
---|---|---|
Customers | Sync data from any source to customer objects | Upsert, Update |
Events | Sync data from any source as customer events | Insert |
Segments | Sync data from any source to new or existing segments | Insert |
Objects | Sync data from any source to custom objects | Upsert |
Getting started
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.
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
- 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:
Behavior | Description |
---|---|
Do nothing | Keep the customer in Customer.io |
Clear Fields | Clear the mapped fields but keep the customer record |
Delete Destination Record | Delete the customer record from Customer.io completely |
In Update mode, you have the following options for how Hightouch should handle rows leaving your query results:
Behavior | Description |
---|---|
Do nothing | Keep the customer in Customer.io |
Clear Fields | Clear the mapped fields but keep the customer record |
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
- CIO ID
Delete behavior
You have the following options for how Hightouch should handle rows leaving your query results:
Behavior | Description |
---|---|
Do nothing | Keep the object in Customer.io |
Delete destination record | Delete the object record from Customer.io completely |
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.
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
- 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
Common errors
To date, our customers haven't experienced any errors while using this destination. If you run into any issues, please don't hesitate to . We're here to help.
Live debugger
Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.
Sync alerts
Hightouch can alert you of sync issues via Slack, PagerDuty, SMS, or email. For details, please visit our article on alerting.