Skip to main content

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 add 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.