Parallel icon
Sync icon
TriggerRun icon

Trigger multiple Fivetran syncs in parallel, then run a dbt Cloud job

Run Fivetran connector syncs in parallel and trigger a dbt Cloud job in one Kestra flow, with ELT ingestion and transformation chained reliably.

Categories
Data

Modern ELT pipelines split ingestion and transformation across two tools: Fivetran loads raw data from SaaS sources into your warehouse, and dbt Cloud transforms it into analytics-ready models. The hard part is making them run in the right order. dbt should only run once every Fivetran connector has finished loading fresh data. This flow orchestrates that handoff end to end, fanning out the Fivetran syncs in parallel and only triggering the dbt Cloud job once they all complete.

How it works

  1. The fivetran_syncs task is an io.kestra.plugin.core.flow.Parallel group that launches three io.kestra.plugin.fivetran.connectors.Sync tasks at once: salesforce, google_analytics, and facebook. Each targets a Fivetran connector by connectorId.
  2. Because they run in parallel, all connectors load concurrently rather than one after another, shortening the ingestion window.
  3. Once every sync completes, the dbt_cloud_job task (io.kestra.plugin.dbt.cloud.TriggerRun) triggers a dbt Cloud job by jobId, authenticated with accountId and token.
  4. The wait: true flag makes Kestra block until the dbt Cloud job finishes, capturing logs and job status and rendering dynamically generated dbt model and test tasks in the Gantt view.
  5. pluginDefaults injects the shared apiKey and apiSecret into every Fivetran task, so credentials are defined once no matter how many connectors you add.

What you get

  • A single, ordered ELT pipeline: ingest with Fivetran, then transform with dbt Cloud.
  • Parallel connector syncs that compress total ingestion time.
  • Real visibility into the dbt Cloud run, including per-model and per-test status, inside Kestra.
  • Centralized credential handling via pluginDefaults, with no boilerplate per connector.
  • A hard failure when dbt Cloud fails, so bad transformations never silently flow downstream.

Who it's for

  • Analytics engineers running Fivetran plus dbt Cloud who need them to fire in sequence.
  • Data platform teams consolidating ELT orchestration into one observable place.
  • Anyone tired of cron-timing Fivetran and dbt jobs and hoping they line up.

Why orchestrate this with Kestra

Fivetran and dbt Cloud each have their own schedulers, but neither can guarantee a true dependency between the two: dbt Cloud cannot know that all your Fivetran connectors finished loading. Time-based scheduling forces you to guess a safe gap and hope ingestion never runs long. Kestra closes that gap with real task dependencies. The dbt Cloud job runs only after every Fivetran sync succeeds, with retries, full logs, lineage across both systems, and declarative YAML you can version control. Event triggers and the Kestra API let you start this pipeline on a schedule, on demand, or from upstream events.

Prerequisites

  • A Fivetran account with configured connectors and their connectorId values.
  • A dbt Cloud account with a deploy job and its jobId.

Secrets

  • FIVETRAN_API_KEY
  • FIVETRAN_API_SECRET
  • DBT_CLOUD_ACCOUNT_ID
  • DBT_CLOUD_API_TOKEN

Quick start

  1. Add the four secrets above to your Kestra instance.
  2. Replace each connectorId placeholder with your real Fivetran connector IDs.
  3. Set jobId to your dbt Cloud job ID.
  4. Run the flow and watch the parallel syncs and the dbt Cloud job in the Gantt view.

How to extend

  • Add or remove io.kestra.plugin.fivetran.connectors.Sync tasks inside the Parallel group for more sources.
  • Add a io.kestra.plugin.core.trigger.Schedule trigger to run the pipeline on a cadence.
  • Chain downstream notification or reverse-ETL tasks after dbt_cloud_job.
  • Swap TriggerRun for dbt Core tasks if you run dbt yourself instead of dbt Cloud.

Links

Share this Blueprint
See How

New to Kestra?

Use blueprints to kickstart your first workflows.