Hightouch Provider for Airflow

raw JSON →
5.0.0 verified Fri May 01 auth: no python

Apache Airflow provider for Hightouch, enabling synchronization of data from warehouses to SaaS tools. Current version: 5.0.0. Supports Airflow 3 only; dropped Airflow 2. Release cadence is irregular.

pip install airflow-provider-hightouch
error ModuleNotFoundError: No module named 'airflow.providers.hightouch'
cause Incorrect import path. The package is not under airflow.providers namespace.
fix
Use from hightouch_provider.operators.hightouch import ...
error TypeError: 'HightouchConnection' object is not subscriptable
cause Treating the HightouchConnection object as a dictionary-like object but it's actually an Airflow Connection object that does not support [] indexing.
fix
Use conn.login for API key or conn.extra_dejson for extra fields.
error ValueError: Invalid sync_id: expected string, got None
cause Required parameter sync_id not provided when instantiating HightouchTriggerSyncOperator.
fix
Pass sync_id='your-actual-sync-id' to the operator.
breaking Version 5.0.0 drops Airflow 2 support and only works with Airflow 3. Upgrade your Airflow environment before installing.
fix Use airflow-provider-hightouch>=5.0.0 only with Airflow>=3.0.0. For Airflow 2, pin to 4.x.
deprecated The package publishing to PyPI is currently paused due to a PEP 541 request. v5.0.0 and future releases may need to be installed directly from GitHub.
fix Install from GitHub: pip install git+https://github.com/hightouchio/airflow-provider-hightouch.git@5.0.0
gotcha The HightouchConnection object returned by the hook is a dictionary, not an Airflow connection wrapper. Access fields like api_key via dict keys.
fix Use conn['api_key'] instead of conn.api_key.
pip install git+https://github.com/hightouchio/airflow-provider-hightouch.git@5.0.0

Basic DAG that triggers a Hightouch sync using the operator. Requires a Hightouch connection configured in Airflow.

from datetime import datetime
from airflow import DAG
from hightouch_provider.operators.hightouch import HightouchTriggerSyncOperator
import os

dag = DAG(
    'hightouch_sync_example',
    start_date=datetime(2023, 1, 1),
    schedule_interval=None,
    catchup=False,
)

trigger_sync = HightouchTriggerSyncOperator(
    task_id='trigger_hightouch_sync',
    hightouch_conn_id='hightouch_default',
    sync_id='your-sync-id',
    dag=dag,
)