New to Kestra?
Use blueprints to kickstart your first workflows.
Run Fivetran connector syncs in parallel and trigger a dbt Cloud job in one Kestra flow, with ELT ingestion and transformation chained reliably.
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.
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.dbt_cloud_job task (io.kestra.plugin.dbt.cloud.TriggerRun) triggers a dbt Cloud job by jobId, authenticated with accountId and token.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.pluginDefaults injects the shared apiKey and apiSecret into every Fivetran task, so credentials are defined once no matter how many connectors you add.pluginDefaults, with no boilerplate per connector.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.
connectorId values.jobId.FIVETRAN_API_KEYFIVETRAN_API_SECRETDBT_CLOUD_ACCOUNT_IDDBT_CLOUD_API_TOKENconnectorId placeholder with your real Fivetran connector IDs.jobId to your dbt Cloud job ID.io.kestra.plugin.fivetran.connectors.Sync tasks inside the Parallel group for more sources.io.kestra.plugin.core.trigger.Schedule trigger to run the pipeline on a cadence.dbt_cloud_job.TriggerRun for dbt Core tasks if you run dbt yourself instead of dbt Cloud.