# 3. Trigger Types

After configuring the **Command Settings** of a Bolt Schedule, you’ll define trigger conditions to specify when the schedule should initiate runs. Bolt Schedules support four distinct trigger types, each designed for specific use cases and workflows.

<figure><img src="https://2337193041-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHET0AD04uHMgdeLAjptq%2Fuploads%2FUEbDJUkmOMDQ985vtfgZ%2Fimage.png?alt=media&#x26;token=148b1fc7-97e0-454f-b0c6-d2f07b277964" alt=""><figcaption></figcaption></figure>

## Available Trigger Types

<table><thead><tr><th width="205">Trigger Type</th><th>Description</th><th>Use Cases</th></tr></thead><tbody><tr><td><a href="#scheduled-run"><strong>Scheduled Run</strong></a></td><td>Runs the job at specific times and frequencies using cron syntax.</td><td><ul><li>Daily data warehouse updates</li><li>Hourly incremental loads</li><li>Weekly report generation, monthly reconciliation.</li></ul></td></tr><tr><td><a href="#on-run-completion"><strong>On Run Completion</strong></a></td><td>Triggers when a specified run finishes its execution, in the same dbt project or from another Paradime workspace</td><td><ul><li>Sequential data processing</li><li>Dependency-based execution to other projects </li><li>Chained transformations</li></ul></td></tr><tr><td><a href="#on-merge"><strong>On Merge</strong></a></td><td>Executes when code is merged into designated branches in your Git repository.</td><td><ul><li>Continuous Deployment (CD) workflows to deploy changes right after merged in your Git Branch</li></ul></td></tr><tr><td><a href="#bolt-api"><strong>Bolt API</strong></a></td><td>Programmatically triggers jobs through <a href="../bolt-api">Bolt API</a> endpoints.</td><td><ul><li>External tool integration</li><li>Custom workflows (e.g. Data Orchestration)</li><li>Event-driven processing</li></ul></td></tr></tbody></table>

## Detailed Trigger Type Configurations

### Scheduled Run

**Purpose**: To automate jobs on a fixed schedule using cron syntax.

**How it Works**: Specify the timing and frequency with cron expressions, such as hourly, daily, weekly, or custom intervals.

#### Configuration:

1. From the Bolt UI, select **Scheduled Run** as the **Trigger Type**
2. Add your cron expression, you can use some of the preset option from the dropdown or build your own
3. For **Manual (Ad-hoc)** runs, simply set the cron schedule to `OFF`.

{% hint style="info" %}
For assistance in setting up cron expressions use the **cron preset** dropdown, or visit [crontab.guru](https://crontab.guru/).&#x20;
{% endhint %}

{% @arcade/embed flowId="aeGk91NyRC2nkfJsp093" url="<https://app.arcade.software/share/aeGk91NyRC2nkfJsp093>" %}

***

### On Run Completion

**Purpose**: Initiates a Bolt Schedule once another specified Bolt Schedule completes, ensuring dependency-based execution for sequential workflows.

**How it works:** This trigger starts a Bolt Schedule only after a designated “parent” job finishes, creating a dependency chain.

#### Configuration

1. From the Bolt UI, select **On Run Completion** as the **Trigger Type**
2. In the **Workspace Name** dropdown, select the [Paradime Workspace](https://docs.paradime.io/app-help/~/changes/rDjfrwa4QH3nWWrOItTq/documentation/settings/workspaces) containing the triggering Bolt Schedule.
3. In the **Bolt Schedule Name** dropdown, select the specific Bolt Schedule that will act as the trigger.
4. Select in which event the "parent" Schedule will trigger this new run, you can choose between:
   1. **Passed:** the schedule will be trigger only if the "parent" complete successfully&#x20;
   2. **Failed:** the schedule will be trigger only if the "parent" complete and contains errors&#x20;
   3. **Both Passed & Failed:** the schedule will be trigger only irrespective of the "parent" status after completion&#x20;

{% @arcade/embed flowId="hsINqUh1ZN4S3goEy08B" url="<https://app.arcade.software/share/hsINqUh1ZN4S3goEy08B>" %}

***

### On Merge

**Purpose**: Automatically runs Bolt pipelines when code is merged into designated branches in your Git repository.

{% hint style="warning" %}

#### Prerequisites - GitHub integration

Ensure that Paradime is connected to your GitHub repository and the[ **GitHub App**](https://docs.paradime.io/app-help/~/changes/rDjfrwa4QH3nWWrOItTq/documentation/integrations/ci-cd/github) is installed This integration enables Paradime to detect merge events in specified branches.&#x20;

**Using another Git provider?** Check our [code templates](https://docs.paradime.io/app-help/~/changes/rDjfrwa4QH3nWWrOItTq/documentation/bolt/ci-cd/continuous-deployment-with-bolt) to execute on Merge Runs.
{% endhint %}

#### Configuration:

1. From the Bolt UI, select **On Merge** as the **Trigger Type**
2. Click **Deploy** to publish your schedule.&#x20;

{% @arcade/embed flowId="7yNOALXgrhary765RLxQ" url="<https://app.arcade.software/share/7yNOALXgrhary765RLxQ>" %}

***

### Bolt API

**Purpose**: Allows external systems or custom scripts to programmatically trigger jobs via REST API.

**How it Works**: Uses Paradime’s REST API endpoints to initiate jobs based on events or actions outside of Paradime.

**Configuration**: When configuring a Bolt schedule and wants to trigger this via the Paradime API, select the [**Scheduled run** ](#scheduled-run)trigger type click on the `OFF` button to let the Schedule being trigger only via the API.&#x20;

For detailed configuration steps, refer to the [Bolt API and Webhooks](https://docs.paradime.io/app-help/~/changes/rDjfrwa4QH3nWWrOItTq/documentation/bolt/bolt-api) documentation.

***

Now, let's learn how to configure the [Notification Settings](https://docs.paradime.io/app-help/~/changes/rDjfrwa4QH3nWWrOItTq/documentation/bolt/creating-schedules/notification-settings) of a Bolt Schedule. &#x20;
