For the complete documentation index, see llms.txt. This page is also available as Markdown.

Transferring dbt™️ Jobs

You can migrate all your dbt Cloud™ jobs in Paradime with one click.

Create Service Token

In dbt Cloud™, navigate to the account setting screen by clicking on the ⚙️ on the top-right of your screen and in the left panel select the Service Token option from the menu.

Click on the New Token option to create a new Service Token. Set paradime as token name and make sure to set:

  • Permission set as Account Admin

  • Project: select the dbt Cloud™ project that matches the Paradime workspace you are importing into

You can then click on the Save button on the bottom right of the screen to create your Service Token.

A dbt Cloud™ project maps to a Paradime workspace. The import brings every job the token can access into your current Paradime workspace. Scope the token (and the connection) to the single dbt Cloud™ project that corresponds to that workspace so you don't pull another project's jobs into the wrong place. To import several projects, repeat the connection from each matching Paradime workspace.

This will allow Paradime to read the configurations details of your dbt™️ jobs, so that we can import these as Bolt Schedules. You can find more details about dbt Cloud™ API Service Token permissions here.

Connect the dbt Cloud™ integration

The dbt Cloud™ integration can be connected by a Paradime Admin. To enable the integration, in Paradime navigate to your Account Settings > Integrations, find the dbt Cloud™ integration and click Connect.

  • Host Name: simply copy your dbt Cloud™ url and paste it in this field, make sure to include the account as in the below example

  • Service Account Token: enter the Token you have generated in the previous step in dbt Cloud™

Click on Test Connection to validate that Paradime can connect to dbt Cloud™ API and start the import.

View Imported dbt Cloud™ Jobs in Paradime

After the import is completed, Paradime will create new Bolt schedules using the dbt™️ Cloud Jobs' configurations.

You can now click on view imported jobs to view all the imported dbt™️ Cloud jobs in the Paradime Bolt UI. When ready, simply turn them on by updating the cron schedule configurations.

Every imported schedule is created paused. Nothing runs automatically on import — you review each schedule and enable it from the Bolt UI when you're ready.

How dbt Cloud™ Jobs are mapped to Bolt Schedules

Each dbt Cloud™ job is translated into a Bolt schedule. The table below shows how the job's configuration is carried across.

dbt Cloud™ job
Bolt schedule
Notes

Job name

Schedule display name

The job name is shown as the schedule's name in the UI. A unique slug is generated as the schedule's internal identifier.

Commands / steps

Commands

Copied across exactly as defined.

Schedule (cron)

Cron

Used when the job runs on a schedule. Jobs that run only on triggers (CI, merge, on-completion) are imported with the schedule set to OFF.

Custom branch

Git branch

Imported only when the job has a custom branch enabled. Otherwise the schedule uses your Paradime workspace's default branch.

Description

Description

Copied across.

Status

Always imported Paused.

Environment

Always set to production. The warehouse connection is taken from your Paradime workspace, not from dbt Cloud™.

Trigger types

dbt Cloud™ jobs can run in several ways. Each trigger type maps to the equivalent Bolt concept:

dbt Cloud™ trigger
Bolt schedule
Result

Runs on a schedule (cron)

Cron schedule

The cron expression is preserved.

Runs on merge

Trigger on merge

The schedule runs when changes are merged.

CI job that defers to another job

Turbo CI

Runs against the deferred job, schedule set to OFF.

Job that defers to another job (non-CI)

Deferred schedule

Defers to the referenced schedule.

Runs on completion of another job

Schedule trigger (run on another schedule)

Chains to the parent schedule; runs after it succeeds/fails as configured.

What is not imported

Some dbt Cloud™ settings have no Bolt equivalent, or are managed elsewhere in Paradime. These are intentionally left at their Paradime default:

dbt Cloud™ setting
Behaviour in Paradime

Environment-level deferral (a job deferring to an environment rather than a specific job)

Not imported — Bolt defers to a schedule, not an environment. The schedule is imported without a deferral; set it manually on review (see caveats below).

Threads / target name

Taken from your Paradime environment, not the job.

Timezone

Schedules run in UTC.

Generate docs, compare changes, run timeout, run-on-draft-PR, resource class, retries

No Bolt equivalent — dropped.

Re-importing jobs

What this means in practice:

  • Changes are not synced. If you change a job's cron or commands in dbt Cloud™ and re-import, you get a new schedule alongside the old one — the original is not updated.

  • Deletions are not detected. Jobs removed in dbt Cloud™ remain in Paradime.

  • To avoid duplicates, delete the previously-imported schedules before re-importing.

Known caveats & limitations

  • Schedules import paused. Review and enable each schedule from the Bolt UI when ready.

  • state:modified+ commands need a deferral target. Because environment-level deferral isn't imported, a command such as dbt build --select state:modified+ is preserved but has nothing to compare against. Set the deferred schedule manually before enabling, or the run will fail / select nothing.

  • Duplicate job names. dbt Cloud™ allows multiple jobs to share a name. These import as separate schedules that display the same name (each has its own unique slug).

  • A dbt Cloud™ project maps to a Paradime workspace. The import brings the jobs the token can access into your current workspace — it does not split projects into separate workspaces automatically. Scope the token to the project that matches the workspace, and repeat the import from each workspace to bring across multiple projects.

  • On-completion triggers across projects/accounts. A schedule that runs on the completion of another job is only chained if the parent job is part of the same import. If the parent isn't imported (for example, it lives in another project or account that wasn't part of this import), the schedule is imported paused with no trigger.

Last updated

Was this helpful?