New to Kestra?
Use blueprints to kickstart your first workflows.
Chain Airbyte ingestion, dbt transforms, and Hightouch activation in one Kestra flow, with Slack confirmation and isolated retries on fresh, tested data.
This blueprint runs the canonical reverse-ETL data activation chain end to end with Hightouch as the activation layer. Airbyte ingests raw source data into the warehouse, dbt builds the activation marts, Hightouch syncs the curated rows to your operational destinations (CRM, ad platforms, marketing tools), and Slack confirms with the Hightouch run ID. It solves the classic data activation orchestration problem: keeping ingestion, transformation, and reverse-ETL in lockstep so Hightouch only fires on fresh, tested data instead of stale or half-built marts.
airbyte_sync task (io.kestra.plugin.airbyte.connections.Sync) triggers an Airbyte connection by connectionId and waits for the ingestion job to complete.dbt_build task (io.kestra.plugin.dbt.cli.DbtCLI) runs dbt deps then dbt build inside a Docker task runner using the ghcr.io/kestra-io/dbt-bigquery:latest image, with namespaceFiles enabled so your dbt project is pulled in.hightouch_sync task (io.kestra.plugin.hightouch.Sync) activates the curated rows by syncId and waits for the run to finish.notify task (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) posts a success message with outputs.hightouch_sync.runId and the execution ID.errors block fires a separate Slack alert if any step in the chain fails.dbt build, so only validated marts reach Hightouch.Hightouch can schedule its own syncs, but it cannot guarantee that Airbyte ingestion and dbt transformations finished first. Kestra closes that gap with declarative YAML that chains all three tools in order, event triggers (Schedule or Webhook) to drive the chain on a cadence or upstream signal, per-task retries that stay isolated to the failing step, full execution lineage across the ingestion, transformation, and activation boundaries, and a built-in error handler that alerts on any failure.
dbt-bigquery; swap for dbt-snowflake or dbt-postgres as needed).AIRBYTE_URL: Base URL of your Airbyte instance.AIRBYTE_TOKEN: Bearer token for the Airbyte API.HIGHTOUCH_API_TOKEN: API bearer token for Hightouch.SLACK_WEBHOOK_URL: Slack incoming webhook URL.Schedule trigger to run nightly, or a Webhook trigger to fire on an upstream event.