# 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%2FVxjM3ekjCCpCRWjIL63K%2Fimage.png?alt=media&#x26;token=3281905f-0bc8-499d-9efb-b8751e83f0c1" 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. A**dd cron expression -** you can use some of the preset option from the dropdown or build your own
3. (Optional) **Select your timezone** to ensure schedules execute at the correct time for your location and business hours
   * **Default**: UTC (schedules run in Coordinated Universal Time)
4. 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="Ifh4qYFlt983z2I8WJNK" url="<https://app.arcade.software/share/Ifh4qYFlt983z2I8WJNK>" %}

***

### 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/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/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/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/documentation/bolt/bolt-api) documentation.

***

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


---

# Agent Instructions: 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:

```
GET https://docs.paradime.io/app-help/documentation/bolt/creating-schedules/trigger-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
