New to Kestra?
Use blueprints to kickstart your first workflows.
Orchestrate parallel self-hosted Airbyte syncs and dbt Core transformations with Kestra. Ingest Salesforce, Google Analytics, and ad data into analytics-ready tables.
Combine self-hosted Airbyte ingestion with dbt Core transformations into a single, dependency-aware ELT pipeline. This blueprint ingests data from multiple SaaS sources in parallel, waits for every sync to finish, then runs a dbt build to turn raw tables into analytics-ready models in your cloud data warehouse. It solves the classic ingestion-then-transform race condition: dbt only runs once all Airbyte connections have landed fresh data, so your BI layer never reads half-loaded tables.
data_ingestion task of type io.kestra.plugin.core.flow.Parallel launches three io.kestra.plugin.airbyte.connections.Sync tasks at once: salesforce, google_analytics, and facebook_ads, each targeting its own Airbyte connectionId.Parallel task acts as a barrier, so the flow only proceeds once all three syncs complete successfully.dbt task of type io.kestra.plugin.core.flow.WorkingDirectory sets up an isolated workspace, then io.kestra.plugin.git.Clone pulls the dbt project from a Git repository.io.kestra.plugin.dbt.cli.Build runs dbt build inside a Docker taskRunner using the ghcr.io/kestra-io/dbt-bigquery image, with the BigQuery profiles.yml and service-account sa.json injected as inputFiles.Airbyte schedules connections independently and dbt Cloud schedules jobs independently, but neither natively coordinates ingestion finishing before transformation starts across tools. Kestra closes that gap with the Parallel barrier and declarative WorkingDirectory sequencing. You also get event and schedule triggers, automatic retries on transient sync or warehouse failures, full execution lineage across both tools, and the entire pipeline defined as version-controlled YAML.
connectionId values for each source.AIRBYTE_USERNAME: Airbyte API/basic-auth username.AIRBYTE_PASSWORD: Airbyte API/basic-auth password.GCP_CREDS: GCP service-account JSON, injected as sa.json for the dbt BigQuery profile.AIRBYTE_USERNAME, AIRBYTE_PASSWORD, and GCP_CREDS secrets to your Kestra instance.connectionId values with your real Airbyte connection IDs.url in pluginDefaults and point clone_repository at your dbt project.profiles.yml dataset, project, and location to match your warehouse.Sync tasks inside Parallel to match your source list.profiles.yml to target Snowflake, Postgres, or another warehouse.Schedule or flow trigger to refresh on a cadence or react to upstream events.dbt_build to alert on failures.