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 Common errors
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.
Warnings
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.
Install
pip install git+https://github.com/hightouchio/airflow-provider-hightouch.git@5.0.0 Imports
- HightouchTriggerSyncOperator wrong
from airflow.providers.hightouch import HightouchTriggerSyncOperatorcorrectfrom hightouch_provider.operators.hightouch import HightouchTriggerSyncOperator - HightouchConnection wrong
from hightouch_provider.operators.hightouch import HightouchConnectioncorrectfrom hightouch_provider.hooks.hightouch import HightouchConnection - HightouchHook
from hightouch_provider.hooks.hightouch import HightouchHook
Quickstart
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,
)