First, navigate to the Sources page and create a new source.
Next, we can input the credentials for the data warehouse (BigQuery, Snowflake, etc.) or database (Postgres) that we want to connect to Hightouch. This will serve as the source for data that we sync into our destinations.
If you are just signing up, you'll also have the option of using our Demo Database.
Make sure to test your source to ensure that the credentials are correct. An error message will show if Hightouch is unable to connect to the data source.
After creating your source, confirm that the connection status is active by clicking the Test Source button. Make sure that testing the source returns green before continuing to the next step.
If the connection is failing, you can always edit your data source credentials and try again.
In this example, we will use the SQL Editor method to create our model, but you can check out our docs to learn more about additional options which include using the Table Selector method, existing dbt models, or existing Looks to build models in Hightouch.
Navigate to the Models page and start by choosing a Source.
Next, create a new query. If you're using the demo database, you can try:
select * from users
Click Run to see a preview of the data. By default, we limit to the first 100 rows. Then click Continue and give the model a name. You'll also need to pick the unique identifier for this table, usually id.
Each model needs a unique identifier. Hightouch uses this identifier to compare subsequent runs to only change rows where a value has changed for that particular entry.
Note: It is not possible to save a model if the query does not return any results. If you need to save a model with a query because you expect there to be results in the future even if there are none now, try adding the following SQL to the end of your query. This SQL will add a row of 'ignore' values which will not match against anything in your destination but will always be present so you can save the query.
UNION ALL select 'ignore', 'ignore', 'ignore'
If you want to learn more about exploring your data warehouse with SQL and with our visual query builder, check out the Exploring your data section of our docs.
Head over to the Destinations page and browse our list of integrations. If you already have an integration in mind, go ahead and use that. If not, the Google Sheets and Slack Integration are very simple to setup.
To start with a Google Sheets destination, pick Google Sheets, and then click the button to Connect a Google Sheets account. Click continue, and give your destination a name.
In a new window, create an empty Google sheet and save it with a memorable name.
Hightouch generally relies on either OAuth or an API key to get access to push your data to the end tools. You'll use this Sheet once we set up a Sync.
Alternatively, a Slack destination is also an easy way to get started. Once you've selected the Slack destination and authorized access, you can give your Slack destination a name, and then details on the message to send and where to send it will be finalized in the next step.
Let's use Hubspot as an example of an app that uses OAuth. When we click on Hubspot, we'll get a link to authorize the Hightouch app with Hubspot.
The link will redirect us to Hubspot to give Hightouch access to certain permissions. If this is successful, you'll be able to see your account as an Authorized Destination.
Some platforms use an API key rather than OAuth to grant Hightouch access. For example, we need the following credentials to setup Customer.io as a destination.
You'll be able to find these credentials on the destination's settings page or authentication page.
Head to the syncs page, select the desired model, then choose your destination.
This configuration is specific to each destination that the query results are being sent to. This particular configuration will upsert the Hubspot object contacts for each row in the query of users, and map id, name, and email to id, lastname, and email respectively.
Not all fields have to be mapped! If you leave certain mappings empty, the fields simply wont be synced to the object created in Hubspot.
Lastly, we have to schedule how often the query is run and subsequently synced to your destinations.
Make sure to also pick a unique primary key for your query. The unique primary key column is used by Hightouch to differentiate between new rows and changed rows when diffing results between consecutive runs before sending changes to downstream destinations like Hubspot.
Your data can be synced at per minute, hourly, daily, and weekly intervals.