{"id":23227,"library":"airflow-provider-hightouch","title":"Hightouch Provider for Airflow","description":"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.","status":"active","version":"5.0.0","language":"python","source_language":"en","source_url":"https://github.com/hightouchio/airflow-provider-hightouch","tags":["airflow","provider","hightouch","etl"],"install":[{"cmd":"pip install airflow-provider-hightouch","lang":"bash","label":"PyPI"},{"cmd":"pip install git+https://github.com/hightouchio/airflow-provider-hightouch.git@5.0.0","lang":"bash","label":"GitHub tag (v5.0.0 currently not on PyPI)"}],"dependencies":[],"imports":[{"note":"Common mistake: using airflow.providers prefix; correct import is hightouch_provider.","wrong":"from airflow.providers.hightouch import HightouchTriggerSyncOperator","symbol":"HightouchTriggerSyncOperator","correct":"from hightouch_provider.operators.hightouch import HightouchTriggerSyncOperator"},{"note":"HightouchConnection is a hook, not an operator.","wrong":"from hightouch_provider.operators.hightouch import HightouchConnection","symbol":"HightouchConnection","correct":"from hightouch_provider.hooks.hightouch import HightouchConnection"},{"note":"","wrong":"","symbol":"HightouchHook","correct":"from hightouch_provider.hooks.hightouch import HightouchHook"}],"quickstart":{"code":"from datetime import datetime\nfrom airflow import DAG\nfrom hightouch_provider.operators.hightouch import HightouchTriggerSyncOperator\nimport os\n\ndag = DAG(\n    'hightouch_sync_example',\n    start_date=datetime(2023, 1, 1),\n    schedule_interval=None,\n    catchup=False,\n)\n\ntrigger_sync = HightouchTriggerSyncOperator(\n    task_id='trigger_hightouch_sync',\n    hightouch_conn_id='hightouch_default',\n    sync_id='your-sync-id',\n    dag=dag,\n)\n","lang":"python","description":"Basic DAG that triggers a Hightouch sync using the operator. Requires a Hightouch connection configured in Airflow."},"warnings":[{"fix":"Use airflow-provider-hightouch>=5.0.0 only with Airflow>=3.0.0. For Airflow 2, pin to 4.x.","message":"Version 5.0.0 drops Airflow 2 support and only works with Airflow 3. Upgrade your Airflow environment before installing.","severity":"breaking","affected_versions":"5.0.0"},{"fix":"Install from GitHub: pip install git+https://github.com/hightouchio/airflow-provider-hightouch.git@5.0.0","message":"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.","severity":"deprecated","affected_versions":"5.0.0+"},{"fix":"Use conn['api_key'] instead of conn.api_key.","message":"The HightouchConnection object returned by the hook is a dictionary, not an Airflow connection wrapper. Access fields like api_key via dict keys.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use from hightouch_provider.operators.hightouch import ...","cause":"Incorrect import path. The package is not under airflow.providers namespace.","error":"ModuleNotFoundError: No module named 'airflow.providers.hightouch'"},{"fix":"Use conn.login for API key or conn.extra_dejson for extra fields.","cause":"Treating the HightouchConnection object as a dictionary-like object but it's actually an Airflow Connection object that does not support [] indexing.","error":"TypeError: 'HightouchConnection' object is not subscriptable"},{"fix":"Pass sync_id='your-actual-sync-id' to the operator.","cause":"Required parameter sync_id not provided when instantiating HightouchTriggerSyncOperator.","error":"ValueError: Invalid sync_id: expected string, got None"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}