In Hightouch, Mapping refers to the establishment of a one-to-one relationship between a column or field in your model and a record's property or field in a destination. Depending on your sync’s destination, you can map your data with either the basic mapper, which does column-based mapping, or the advanced mapper, which gives the additional options of mapping with static values, with variables, or with Liquid templating.
With the basic mapper, you tell Hightouch which columns in your source should get fed into which fields in your destination. In column mapping, it is expected that every row has different values for each column.
Click ‘suggest mappings’ to auto-complete a column-based mapping based on column and field titles. Auto-completion works by searching for matching and near matching column and field titles. You should confirm that the auto-completion has made the correct selections:
For destinations where the Advanced Mapper is enabled, you have the additional capability to create mappings that include a static value, a sync-based variable value, or complex values using the Liquid templating language. We are in the process of rolling out our Advanced Mapper to all existing destinations, and any new destinations will automatically be released with this new capability. Please let our CS team know if there’s a specific destination or use case that is a high priority for you to leverage this!
With static mapping, you can specify a constant value to include in the mapping. Select ‘static value’, the value’s data type, and enter the value in the field provided. Click ‘apply’.
In this example, we are mapping the string ‘EMEA’ to the ‘region’ field in our destination. ‘EMEA’ will be inserted into every record’s ‘region’ field:
With variable mapping, you can include a variable with meta-data about your sync and send it to a field in your destination. Select ‘variable value’, the variable you would like to include, and click ‘apply’:
In this example, we are mapping the current time to the ‘Time sent’ field in our destination. An ISO timestamp (YYYY-MM-DD) will be inserted into every record’s ‘Time sent’ field:
With template mapping, you can create more complex mappings using our library of Liquid-inspired functions as well as standard functions of the Liquid templating language. Please visit Liquid's documentation for more information on usage.
Select ‘template’, then select a variable and a function. The function's code will automatically appear in the editor window:
In this example, we are checking if a row’s ‘last_name’ column includes the string ‘Stark’. If it does, the row is processed. If it doesn’t, the row is rejected.
The template mapper can also implement all of Liquid’s regular functionality (see the Liquid Reference), beyond the Liquid-inspired functions we have provided for you in the UI.
Variables follow this format:
{{ row['company']}}
The double-handlebars enclose a Liquid snippet that is generating output. The name of the column should go in between the single quotes inside the square brackets (akin to array field notation).
Functions follow this format:
{{ row['last_name'] | includes : 'Stark' }}
A single pipe comes after the variable, then the name of the function and any necessary parameters. See the Liquid Reference or Liquid Cheatsheet for a full list of available functions.
All of the model’s column names will have a corresponding variable. You also have access to a variable for the name of the model and the timestamp for the sync’s run:
The Template Mapper is especially useful in situations where your chosen destination requires that your data be sent in a very specific format and you don't want to 'bake' this specificity into your model.
Webflow requires slugs to not have any special characters. Use regex_replace to remove them.
Enable lead routing in your destination using Liquid conditionals without touching your central dbt model.
Validate emails for Mailchimp.
Need help?
Our team is relentlessly focused on your success. We're ready to jump on a call to help unblock you.
Connection issues with your data warehouse?
Confusing API responses from destination systems?
Unsupported destination objects or modes?
Help with complex SQL queries?
or
Feature Requests?
If you see something that's missing from our app, let us know and we'll work with you to build it!
We want to hear your suggestions for new sources, destinations, and other features that would help you activate your data.