Run dbt Cloud jobs the moment data lands.

Stop padding cron buffers. Trigger dbt Cloud the moment Fivetran completes, S3 files land, or Kafka events fire. Coordinate Hightouch downstream, gate production behind manual approval, and span every step in one execution history.

Above the dbt Cloud job runner.

dbt Cloud solves transformation scheduling inside the dbt layer. Kestra solves what surrounds it: when jobs trigger, what runs after them, and where the audit trail lives.

Event-driven triggers instead of cron-only scheduling

dbt Cloud fires on a cron schedule or a Git event. If your Fivetran sync runs long, dbt starts building on stale data. Kestra triggers the dbt Cloud job the moment the upstream step confirms completion, whether that's a Fivetran sync, a file arrival in S3, or a webhook from any API. It halts the downstream activation layer until dbt confirms success.

Full-pipeline coordination with step-level retries

dbt Cloud's lineage stops at the dbt boundary. It has no visibility into the Fivetran connector feeding it or the Hightouch sync consuming the output. Kestra runs all three as steps in a single flow. If dbt fails, Kestra retries only the dbt step. Fivetran does not re-sync. Outputs flow forward between steps, and the entire pipeline shares one execution ID.

Cross-stack execution history with attribution

Something breaks in the activation layer. You need to know whether dbt completed cleanly, which run produced the data, and who triggered it. dbt Cloud's history covers the dbt job. It has no record of the Fivetran sync that preceded it or the Hightouch sync that followed. Kestra logs every step across every tool with a trigger source, a timestamp, and a direct link to the failing task.

How teams use dbt Cloud and Kestra

Patterns data engineering teams run in production. Pick one, copy the YAML, ship it through CI.

Full pipeline

Ingestion-to-activation pipeline

Fivetran syncs raw data, then Kestra triggers the dbt Cloud job and waits for it to confirm success, then fires the Hightouch sync. All three run as sequential steps in a single Kestra flow. If dbt fails, Kestra retries it without re-running the Fivetran sync.

Step-level retries

Retry only the failed step. Fivetran does not re-sync on a dbt failure.

Outputs flow forward

Pass artifacts and run IDs between Fivetran, dbt Cloud, and Hightouch.

One execution ID across all tools

Single place to debug the full pipeline, not three separate dashboards.

trigger
on schedule or event
fivetran sync
ingest raw
dbt Cloud job
transform
hightouch sync
activate
notify
Slack on complete
Event-driven

Trigger dbt Cloud when Fivetran finishes

Replace the cron schedule that fires whether source data is ready or not. Kestra listens for the Fivetran sync completion event and triggers the dbt Cloud job the moment ingestion confirms success. No polling, no builds starting before the source data is confirmed ready.

Push-based, not polling

dbt Cloud fires when the data is actually ready, not on the next interval.

Webhook and API triggers

Fire from any HTTP call, Kafka message, S3 event, or database change.

No overlap between runs

Kestra waits for each step to confirm before starting the next.

fivetran sync
sync complete
dbt Cloud job
trigger + wait
check result
job status
notify
Slack on failure
Governance

Approval gate before promoting to production

Run the dbt Cloud job against the staging environment. Pause the flow on the output. A named reviewer reads the result in the Kestra UI and resumes the flow. Only then does the production job trigger. The reviewer's identity and timestamp are logged automatically in the execution history.

Native pause + resume

Built-in Pause task suspends execution until a reviewer approves.

Reviewer + timestamp logged

Identity and approval moment stored in execution history automatically.

Separate jobs per environment

Trigger different dbt Cloud job IDs for staging and production in the same flow.

Full audit trail

Every production promotion is linked to a reviewer and a moment in time.

dbt Cloud (staging)
staging environment
pause / review
human approves
dbt Cloud (prod)
production environment
audit log
who + when
Multi-env

Chained dbt Cloud jobs with dependency ordering

Some pipelines require multiple dbt Cloud jobs in a specific sequence: ingestion models first, then downstream marts, then final activation models. Kestra runs each job in order, waits for confirmation, and passes the run ID forward. If job 2 fails, job 3 does not start. A single Slack alert links directly to the failed step.

Ordered job execution

Each dbt Cloud job runs only after the previous confirms success.

Run ID passed forward

Reference the upstream job's run ID in downstream steps for traceability.

Single alert on failure

One Slack message with a link to the exact job that failed.

dbt job 1
ingestion models
dbt job 2
mart models
dbt job 3
activation models
notify
on complete or fail
Operations

Parameterized job runs with flow inputs

Trigger different dbt Cloud jobs from the same Kestra flow by passing the job ID and custom environment variables as flow inputs at run time. One flow definition covers both the nightly full build job and the on-demand incremental job. The trigger or input determines which job fires, no duplicate flow definitions required.

Flow inputs

Pass job IDs, environment names, and custom fields as typed inputs.

Same flow, multiple triggers

Nightly full builds and on-demand refreshes share one YAML.

Kestra Apps for self-service

Non-engineers trigger specific jobs through a form without touching YAML.

trigger
on event or input
dbt Cloud job
job ID from input
notify
on complete
We switched from orchestrating with dbt Cloud because Kestra hosted Core really well.
EVP Analytics, Foundation Data

Blueprints for dbt Cloud orchestration.

Production-ready workflows. Copy the YAML, wire it to your stack.

Ingestion to activation
Approval gate before production
Chained dbt Cloud jobs

Ingestion to activation pipeline

Fivetran syncs raw data on a schedule. When it completes, Kestra triggers the dbt Cloud job and waits for success. On completion, it fires the Hightouch sync. Any failure stops the pipeline at the failing step and posts a Slack alert with a link to the execution.

Explore Blueprints

Approval gate before production job

Triggers the staging dbt Cloud job and pauses the flow on the result. A named reviewer reads the output in the Kestra UI and resumes the flow. Only then does the production job run. The reviewer's identity and timestamp are stored automatically in the execution history.

Explore Blueprints

Chained dbt Cloud jobs with dependency ordering

Runs three dbt Cloud jobs in order: ingestion models, mart models, activation models. Each step waits for the previous to confirm success before starting. If any job fails, Kestra stops the chain and posts a Slack alert with the run ID of the failing job and a link to the execution.

Explore Blueprints

Kestra vs dbt Cloud orchestration alternatives

Capability
Prefect
GitHub Actions
Airflow
Trigger dbt Cloud on upstream tool completion
Native event triggers
Event polling, Python code requiredCron or Git events onlySensor-based polling
Coordinate ingestion and activation around dbt
Native, with outputs
Possible, Python code requiredPossible, glue scripts requiredYes, with operators
Approval gate before production job
Native pause + resume
Available in Prefect 2.x+Environment approvals (deploy only)Custom sensor workaround
Retry failed step without re-running pipeline
Configurable per task
Task-level retryRe-run from startTask-level retry
Cross-stack execution history
One view across all tools
Flow run UI, Prefect-scopedActions UI, pipeline-scopedDAG view, Airflow-scoped
Self-service for non-engineers
Kestra Apps
No native form layerNoNo
Chain dbt Cloud with Fivetran, Hightouch, Spark
1300+ plugins
Possible, Python code requiredPossible, fragileYes, operator-dependent

dbt Cloud & Kestra: common questions

Find answers to your questions right here, and don't hesitate to Contact Us if you couldn't find what you're looking for.

See How

Ready to orchestrate your dbt Cloud jobs?

Trigger on upstream events, chain with Fivetran and Hightouch, and track every run across your full data stack. Open source, self-hosted, event-driven.