Transferring dbt™️ Jobs
You can migrate all your dbt Cloud™ jobs in Paradime with one click.
Note that access to the dbt Cloud™ API is included only on the Team and Enterprise plans.
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 AdminProject: 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.
You will not be able to view this token again after generating it, so make sure to save it securely as we will need this in the next step to setup the integration.
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.
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:
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:
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
Re-importing creates duplicate schedules. The importer does not yet match against previously-imported jobs, so running the import a second time creates a fresh copy of every job rather than updating the existing schedules.
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 asdbt 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?