> For the complete documentation index, see [llms.txt](https://docs.paradime.io/app-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.paradime.io/app-help/guides/dbt-cloud-tm-importer/transferring-dbt-tm-jobs.md).

# Transferring dbt™️ Jobs

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

{% hint style="warning" %}
Note that access to the dbt Cloud™ API is included only on the **Team** and **Enterprise** plans.
{% endhint %}

### Create Service Token <a href="#id-1-create-service-token" id="id-1-create-service-token"></a>

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.

{% hint style="info" %}
**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.
{% endhint %}

{% hint style="danger" %}
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.
{% endhint %}

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](https://docs.getdbt.com/docs/dbt-cloud-apis/service-tokens).

<figure><img src="/files/ymenbvrX3445f8Zab4br" alt=""><figcaption></figcaption></figure>

### Connect the dbt Cloud™ integration <a href="#id-2-connect-paradime-to-dbt-cloud" id="id-2-connect-paradime-to-dbt-cloud"></a>

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.

<figure><img src="/files/iE4rhojCDCVJc0Q24dFA" alt=""><figcaption></figcaption></figure>

### View Imported dbt Cloud™ Jobs in Paradime <a href="#id-3-view-imported-dbt-cloud-jobs-and-open-a-pull-request" id="id-3-view-imported-dbt-cloud-jobs-and-open-a-pull-request"></a>

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.

{% hint style="info" %}
**Every imported schedule is created&#x20;*****paused*****.** Nothing runs automatically on import — you review each schedule and enable it from the Bolt UI when you're ready.
{% endhint %}

### How dbt Cloud™ Jobs are mapped to Bolt Schedules <a href="#field-mapping" id="field-mapping"></a>

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 <a href="#not-imported" id="not-imported"></a>

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 <a href="#re-importing" id="re-importing"></a>

{% hint style="warning" %}
**Re-importing creates&#x20;*****duplicate*****&#x20;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.
{% endhint %}

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 <a href="#caveats" id="caveats"></a>

* **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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.paradime.io/app-help/guides/dbt-cloud-tm-importer/transferring-dbt-tm-jobs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
