ht
Documentation
WelcomeConcepts

Get Started

OverviewCreate a sourceCreate a modelCreate a destinationCreate a sync

Integrations

dbt CloudAirflowPagerDuty
Documentation/Integrations/Airflow
ht
Documentation

Airflow

Table of Contents
The Hightouch Airflow Operator

The Hightouch Airflow Operator

Hightouch provides an Airflow Operator for triggering a sync via Airflow. Our git repo contains the latest code as well as example dags to help you get started.

Step 1: Create an API Token

The first step is to create an API Token in your workspace settings. Once you click the Create API Key button, you'll be prompted for a name and presented with an API key. You'll need to save this key and enter it in the Airflow connections window as shown in the next step.
This API Token should be kept secure. You can always revoke it and create a new one as needed.

Step 2: Add the Airflow connection

In Airflow, create a new connection by going to Admin > Connections and clicking the + to add a new connection. Name the connection hightouch_default and set the host to https://api.hightouch.io.Enter the token from Step 1 in the Password field

Step 3: Find the Sync ID

Within the Hightouch Sync page, click the sync you wish to trigger. Your browser will display a url with the sync id. You'll use this when writing your Airflow DAG.

Step 4: Install the Airflow package

While the details will vary for your particular Airflow installation, the simplest way to install our package is through pip
pip install airflow-provider-hightouch

Step 5: Add the HightouchTriggerSyncOperator to your DAG

The last step is to add the operator to a DAG and add the Sync ID from Step 3. When the task is run, Airflow will send a call to the Hightouch API to trigger a run which will complete asynchronously.
from airflow_provider_hightouch.operators.hightouch \
import HightouchTriggerSyncOperator
with DAG(....) as dag:
...
my_task = HightouchTriggerSyncOperator(
task_id="run_my_sync", sync_id=1234
)

Questions / Issues

If you have any questions or issues, feel free to reach out via the Chat window, Github issues, or email. We welcome feedback and feature requests!