> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create & manage pipeline triggers

Every pipeline execution starts with a **trigger**. Not only can you manually trigger a pipeline execution, but you can also set up triggers to automatically start a pipeline execution when certain conditions are met.

<img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/vesslai/5-nrsN-JrH4eYxlc/images/pipeline/triggers/01-pipeline-triggers.png?fit=max&auto=format&n=5-nrsN-JrH4eYxlc&q=85&s=c297c37af710881377f8105507a24488" width="1854" height="1146" data-path="images/pipeline/triggers/01-pipeline-triggers.png" />

VESSL Pipeline supports the two types of automatic triggers:

* **Cron**: Trigger the pipeline execution at a specific time or interval.
* **Webhook**: Trigger the pipeline execution when a specific HTTP request is received.

## Cron trigger

To create a **cron trigger**, click the `Add trigger` button at the `Cron` section on the pipeline `Triggers` tab.

<div style={{ marginBottom: '150px', position: 'relative', paddingTop: '330px' }}>
  <iframe src="https://demo.arcade.software/Ntd2Ori05NbB0Rszdqcg?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" frameBorder="0" loading="lazy" webkitAllowFullScreen="" mozAllowFullScreen="" title="Dashboards" style={{ position: 'absolute', top: '0px', left: '0px', width: '100%', height: '450px', colorScheme: 'light' }} />
</div>

Cron trigger allows you to define schedule of execution with human-readable expression or cron expression. Below are the details of the cron trigger configuration:

* **Name**: Name of the trigger.
* **Description**: Description of the trigger.
* **Schedule**: Schedule of the trigger. You can choose any human-readable interval from the dropdown or input cron expression directly.
* **Input variables**: Variables to be injected when the pipeline execution is triggered. Variable definitions always follow the latest published revision of the pipeline.

## Webhook trigger

To create a **webhook trigger**, click the `Add trigger` button at the `Webhook` section on the pipeline triggers tab.

**Webhook trigger** enables you to trigger the pipeline execution by sending an HTTP request to the specified webhook URL. It's commonly used to trigger pipeline execution from external services like GitHub Actions or GitLab CI/CD.

<div style={{ marginBottom: '150px', position: 'relative', paddingTop: '330px' }}>
  <iframe src="https://demo.arcade.software/GcjbcF84XavRkZ3NQub2?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" frameBorder="0" loading="lazy" webkitAllowFullScreen="" mozAllowFullScreen="" title="Dashboards" style={{ position: 'absolute', top: '0px', left: '0px', width: '100%', height: '450px', colorScheme: 'light' }} />
</div>

Below are the details of the webhook trigger configuration:

* **Target**: Target service to register the webhook; Either `GitHub`, `GitLab`, `Bitbucket` or `Custom App`.
* **Name**: Name of the trigger.
* **Description**: Description of the trigger.
* **Input variables**: Variables to be injected when the pipeline execution is triggered. Variable definitions always follow the latest published revision of the pipeline.

Once you create a webhook trigger, you will get a **unique webhook URL**. You can use this URL to trigger the pipeline execution by registering the URL as a webhook in the external service(GitHub, GitLab, etc.) or by sending an **HTTP POST request** to the URL.

If your webhook target is `Custom App`, you can see the instructions to trigger the pipeline execution in the info text of registered webhook:

<img style={{ borderRadius: '0.5rem', width: '480px' }} src="https://mintcdn.com/vesslai/5-nrsN-JrH4eYxlc/images/pipeline/triggers/04-webhook-trigger-custom-app.png?fit=max&auto=format&n=5-nrsN-JrH4eYxlc&q=85&s=c7c7524eb42e040f3ff0ffa5030b6b16" width="924" height="472" data-path="images/pipeline/triggers/04-webhook-trigger-custom-app.png" />
