Hightouch provides an Airflow Operator
for triggering a sync via Airflow. Our Git repository
contains the latest code as well as example dags to help you get started.
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.
Your API key provides read/write access to sensitive Hightouch resources and
should be kept secure. If you believe your API key may have been compromised,
be sure to revoke it immediately.
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.com.
Within the Hightouch Sync page, click the
sync you wish to trigger, then click Schedule. The Sync ID will be displayed,
you will use this in your Operator.
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.
Alternatively, you may choose to send a synchronous request and await the results
of the sync before completing the task. For a full description of the operator
parameters, view the source code on our GitHub page.
from airflow_provider_hightouch.operators.hightouch \
import HightouchTriggerSyncOperator
with DAG(....) as dag:
...
# This task will submit the request but not wait for completion of the# sync before completing.
my_async_task = HightouchTriggerSyncOperator(
task_id="run_my_sync", sync_id=1234
)
# This task will wait for the sync status to complete or error before# completing. Warnings can be treated as errors or successes depending# on your use case.
my_sync_task = HightouchTriggerSyncOperator(
task_id="run_sync", sync_id=123, synchronous=True, error_on_warning=True
)
Ready to get started?
Jump right in or a book a demo. Your first destination is always free.