Providing relevant and timely campaigns relies on fresh and accurate data in your Campaigner account. By automatically syncing customer data from your data warehouse into Campaigner, you don't need to worry about data consistency or staleness. Instead, you can focus on building world-class customer experiences.
Hightouch sits on top of your data warehouse and can read from Snowflake, Redshift, BigQuery, Databricks, Postgres, MySQL, and many other data sources. You can even fetch data from Google Sheets and Airtable. Hightouch can help activate your data wherever it resides.
We've written dedicated guides for each supported data source. Take your pick:
If you're missing the credentials necessary to connect to your data source,
try inviting your teammates to Hightouch. You can have unlimited collaborators
in your workspace.
Waiting for credentials to your data warehouse? No problem. You can connect to one of our sample databases to get started right away. For the rest of this tutorial, we'll use our demo Postgres database, which contains a users table with names, emails, locations, and other user attributes. This sample source is available when you log in for the first time—no setup required.
Next, we'll write a SQL query to define which users should be synced to our Campaigner customers resource. You can follow the same pattern to sync to other support Campaigner resources,
In Hightouch, a model represents a query that filters or transforms the records in your data source. Models are used to determine exactly which records to sync between sources and destinations.
When you connect to a data warehouse, your models will probably be written in SQL. You can also import models from tools like dbt and Looker.
In this example, we'll keep it simple. Suppose you want to sync all your customers to Campaigner. To accomplish this, you'll want to create a model that looks like this:
SELECT*FROM users;
Click on Models in the left sidebar.
Click on Add model in the top right corner.
Select Demo Database as your source and click Continue to proceed.
Select SQL Editor as your modeling method.
Paste the SQL query from above into the editor on the left side of the page.
Click Preview to execute the query.
Click Continue to proceed.
Give your model a name and unique slug (for example, "All Users" and all-users).
Select ID as the primary key for your model.
Click Finish to create your model.
We just created a model using a SQL query that retrieves all our current users. Next, we'll configure our sync to add these users to Campaigner.
Hightouch allows you to sync columns from your source to the supported Campaigner fields. You can map fields in Campaigner that aren't in the table below using custom field mapping.
Mapping
Type
Description
Source ID
Number
The ID of a valid Source this subscriber should be associated with.
Publications
Array
An array of Publication IDs to be associated with the subscriber.
Lists
Array
An array of List IDs to be associated with the subscriber.
Hightouch allows you to set custom attributes. Any mappings from this section will be synced as custom fields. Campaigner expects custom properties to follow a PascalCase format for both new and existing custom fields. For example, if First Name exists as a field in Campaigner, enter FirstName in our mapper. Use the same format for custom fields you want Hightouch to create in Campaigner.
When the Hightouch sync engine recognizes that a record has been removed from your source, you can either:
In Upsert mode:
Do Nothing.
Clear fields that are being synced in the destination.
Delete record in the destination.
In Update mode:
Do Nothing.
Clear fields that are being synced in the destination.
Clearing fields in Campaigner through Hightouch will not clear existing
Publications and Lists from the Subscriber's record. However, It will reset
the Source ID, and return the boolean mappings:Force Publications and
Force to their default if they exist in your mappings.
Create a mailing list and/or add subscribers with the Mailing Lists integration. Note that contacts must already exist in your Campaigner account to be synced to a mailing list.
You may see this error on records that were rejected during an otherwise successful sync run. This is frequently due to improper formatting (@com.com) or other common email validation checks.
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.