Skip to main content

Overview

Besides the ability to track first-party customer data, Segment offers robust integrations with the most popular SaaS tools. With our Segment integration, you can automatically sync enriched customer data from your data warehouse with Segment to send this data to downstream tools that Hightouch doesn’t already integrate with.

Supported syncing

To ensure syncs send each event, your event model must use a truly unique primary key. See the events syncs documentation for more information.
For more information about sync modes, refer to the sync modes docs.

Connect to Segment

Go to the Destinations overview page and click the Add destination button. Select Segment and click Continue. You can then authenticate Hightouch to Segment using a Segment Write Key. To retrieve the write key for your Segment destination in Hightouch:
  1. Create a new HTTP API source in Segment using these instructions.
  2. Navigate to Source Settings > API Keys and copy the Write Key.
Write Key in Segment UI

Sync configuration

Once you’ve set up your Segment destination and have a model to pull data from, you can set up your sync configuration to begin syncing data. Go to the Syncs overview page and click the Add sync button to begin. Then, select the relevant model and the Segment destination you want to sync to.

User and anonymous IDs

You need to include send either the user or anonymous ID to Segment to identify the user associated with the event.

Field mapping

You can sync columns from your source into user (identify) or event (track) properties.

Sending initial results (Track events only)

For the two track event types, Hightouch lets you choose whether to:
  • Send the initial set of results as track events as Entered / Added events
  • Or, only send the changes between the results in the subsequent syncs as track events
Checking the Send events for initial result set checkbox results in a large amount of events being sent in the first sync. Hightouch always send the initial results set when sending Identify and Group events.

Event names and timestamps (Generic track events only)

For the generic track mode, there are further settings that are needed to determine which event name Hightouch sends to Segment for each added, changed, and removed record. Setting event names in the Hightouch UI In the preceding screenshot, Hightouch sends Segment:
  • A “User Signed Up” event when a record is added to the query results
  • A “User Changed Subscription” event when a record is changed in the query results
  • A “User Deleted Account” event when a record is removed in the query results
Hightouch allows you to send a timestamp that the event occurred for generic track events. This is useful for backfilling historical events. Hightouch also lets you to send a message ID for each record to ensure that the event is deduplicated within Segment in the case that the same event erroneously gets sent twice.

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

Common errors

Large payload issues

Segment returns a 400 Bad Request error if your batch payload exceeds the limitations. You can find more information in Segment’s documentation. Adjust your batch configuration accordingly.
Last modified on August 28, 2023