Dagster & Hightouch
The Hightouch integration allows data engineers to trigger and monitor syncs from their data warehouse to various SaaS destinations using the ConfigurableHightouchResource and the modern HightouchSyncComponent.
Installation
- uv
- pip
uv add dagster-hightouch
pip install dagster-hightouch
Examples
Using the Hightouch Sync Component (Modern)
The HightouchSyncComponent allows you to define Hightouch syncs as Dagster assets declaratively. This is the recommended approach for modern Dagster projects.
import dagster as dg
from dagster_hightouch import HightouchSyncComponent
# Components are typically loaded from YAML, but can be used in Python definitions
hightouch_sync = HightouchSyncComponent(
sync_id="my-hightouch-sync-id",
asset={"key": ["hightouch", "marketing_sync"]}
)
defs = dg.Definitions(
assets=[hightouch_sync.build_defs(None)]
)
For job-based workflows, the ConfigurableHightouchResource can be used with the hightouch_sync_op to trigger syncs within a job.
import dagster as dg
from dagster_hightouch import ConfigurableHightouchResource, hightouch_sync_op
@dg.job(
resource_defs={
"hightouch": ConfigurableHightouchResource(
api_key=dg.EnvVar("HIGHTOUCH_API_KEY")
)
}
)
def sync_job():
hightouch_sync_op()
About Hightouch
Hightouch is a leading Reverse ETL platform that syncs data from your data warehouse to the operational tools your business teams use every day, such as Salesforce, HubSpot, and Marketo. By integrating Hightouch with Dagster, you can ensure that your downstream SaaS tools are always populated with the freshest data from your pipelines.