When configuring a sync there are two key settings that determine the basic behavior of your sync:
- Sync type
- Sync mode
The options for both vary depending on the destination. Refer to the specific destination documentation for more information about supported sync types and mdoes.
The sync type refers to what you are syncing in a destination. These are the most common types:
- Objects: such as customers, accounts, organizations, catalog items, and the objects' associated attributes or metadata
- Events, Actions, and Activities: such as conversion events
- Lists: such as subscription or campaign lists, specifically user membership in these lists
When syncing to CRM type destinations, it's commonly to object type records. When syncing to advertising or marketing platforms, it's commonly to objects, events, or lists.
Depending on your sync type, you also have to select your sync mode. Also called update mode, this configuration describes how you want to update records in your destination.
Depending on the destination and sync type, your options could include:
- Update: only update existing records in your destination
- Insert: only insert new records without touching existing records
- Upsert: update existing records and insert new ones
- Archive: archive records that appear in your query results (only for Mailchimp, Intercom, and Salesforce destinations)
When in insert mode, Hightouch only syncs rows whose primary key wasn't present in the previous sync run.
Sync mode is separate from delete behavior, which determines how to treat records that leave your source.
For some sync types such as triggering campaigns or merging users, there is no associated mode since the sync applies an action rather than updates records. Other sync types, such as events, have one sync mode option.
Event syncs are insert only, meaning that you cannot update previously synced events or activities. Hightouch follows this convention because events tend to be part of fact tables rather than dimension tables. Fact tables store transactions as rows that shouldn't change.
Recall that in insert mode, Hightouch syncs rows whose primary key wasn't present in the previous sync run. If the event sync's associated model has a primary key that appears in multiple events—for example,
memberId—syncs will omit some events.
To ensure syncs include all events, use a hash function for the event model's primary key. The hash should combine all columns in the event data, including member ID, timestamp, etc.