If you're using update, upsert, or archive mode to sync data, one of the first steps of your sync configuration is defining how Hightouch should match rows from your model to existing destination records.
To do this, Hightouch asks you to select the model column and destination field to match on.
"Columns" vs. "fields" vs. "properties": Though some may use these terms interchangably, Hightouch uses the term "columns" to refer to a set of vertical data values in a source or model and "fields" or "properties" to refer to them in a destination.
It's often best to start by selecting the destination field to match on because some destinations have requirements or recommendations on the field to use.
For example, some destinations require matching on PII fields like email or phone number. Hightouch only displays permitted fields in the dropdown when selecting a destination field to match records on.
For example, Attentive allows you to match users on several fields, including email, phone number, and various IDs.
If there is a recommended field, Hightouch displays (recommended) next to the field name. For example, Salesforce recommends using an external ID field like
External_ID__c for matching.
Refer to the record matching section of each destination doc for more information.
Some destinations, for example, Facebook Conversions API and Salesforce, use the concept of external IDs. External IDs refer to unique identifiers from another system "external" to the destination platform. This allows the platform to maintain its own primary unique identifiers while enabling associations with data from other platforms.
Each platform may have different specifications for fields used as external IDs. For example, Salesforce requires
External ID type fields to be the explicit External ID type in Salesforce, not just an external ID field by practice. Ensure that any destination field you select for record matching complies to the platform's specifications.
When selecting which model column to use, you need to consider more than the destination requirements.
Since the column you select is used to identify which records to update, it's imperative to choose a column with unique values. For that reason, the model column you choose is often the same as the primary key column you select for your model. Though the model's primary key can be used for record matching, this isn't mandatory.
For example, you may have
user_id fields in your model. Which you choose for record matching depends on:
- Which fields in your destination are available and expected for matching
- Which field is guaranteed to be unique
If both fields are accepted by the destination for matching, you should choose the one which you are more confident is strictly unique.