Search documentation...


Create your first sync

Create a source

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.

Confirm the source is active

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.

Create a model

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.

Query with SQL

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's not possible to save a model if the query doesn't 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.

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.

Create a destination

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.

Google Sheets destination

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.

Slack destination

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.

Authorizing with OAuth

Let's use HubSpot as an example of an app that uses OAuth. When we click 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.

Authorizing with an API key

Some platforms use an API key rather than OAuth to grant Hightouch access. For example, we need the following credentials to setup as a destination.

You'll be able to find these credentials on the destination's settings page or authentication page.

Create a sync

Head to the syncs page, select the desired model, then choose your destination.

Configure 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.

Configure your schedule

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.

    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?

    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.

On this page

Create a sourceConfirm the source is activeCreate a modelQuery with SQLCreate a destinationGoogle Sheets destinationSlack destinationAuthorizing with OAuthAuthorizing with an API keyCreate a syncConfigure your destinationConfigure your schedule

Was this page helpful?