> For the complete documentation index, see [llms.txt](https://docs.brigge.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.brigge.ai/documentation/brigge-for-transformers/pipelines/pipeline-nodes/trigger-node.md).

# Trigger node

## Overview

Every pipeline starts with a *Trigger* node, which determines how and when the pipeline runs. A *Trigger* node is added to every new pipeline automatically, and cannot be removed (although you don't have to configure it if you don't want a pipeline to run automatically).

## Key facts

* A pipeline can only contain one *Trigger* node.
* You can't delete a *Trigger* node, but you don't have to configure it (for example, some pipelines aren't designed to run automatically; instead they are run manually as needed).&#x20;
* A *Trigger* node can be configured with one trigger or multiple triggers (of the same or different types).

## Available trigger types

<details>

<summary>Schedule triggers</summary>

#### Introduction

Define a schedule so the pipeline runs at a defined frequency (`minutes`, `hourly`, `daily`, `weekly`, `monthly`, `custom`).

#### Cron expressions

Behind the scenes, trigger schedules are created with Cron expressions, which is why you will see a corresponding expression for any schedule you select. For example:

![](https://2172380191-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8IqdqwZowcxtFpZfLa6k%2Fuploads%2F3ig90Yy9EzStkLsrrvyj%2FTrigger%20-%20schedules%20-%201.png?alt=media\&token=0897da58-cddf-48e8-9604-6f5fe442cfd0)

If you need to define a more granular schedule than predefined options allow, use the `custom` option to enter your own Cron expression.

{% hint style="info" icon="openai" %}
Ask Briggette to create Cron expressions for you!&#x20;
{% endhint %}

</details>

<details>

<summary>Webhook triggers</summary>

#### Introduction

Webhooks are real-time triggers for pipelines. Instead of polling an external system for updates (potentially finding nothing to update), that system pings a Brigge webhook when an event occurs, which schedules the associated pipeline to run.

#### Implementation

Webhook triggers are added and configured from the `trigger` node. Having saved and [deployed](/documentation/brigge-for-transformers/pipelines/pipeline-versions-and-deployments.md) the pipeline, you can copy the webhook URL from deployment details.

<figure><img src="https://2172380191-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8IqdqwZowcxtFpZfLa6k%2Fuploads%2FE4sdtjBJdBYflLoQ9yN7%2Ftrigger%20-%20webhook%20animated%20flow.gif?alt=media&amp;token=3876f429-e944-42a5-9bcd-59d8d60701d8" alt=""><figcaption></figcaption></figure>

#### Webhook settings

Having added a `webhook` trigger, you define a name (for internal reference only) and, optionally, custom `status code`, `headers`, and `body` to be returned when the webhook is hit. For example:

<div align="left"><figure><img src="https://2172380191-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8IqdqwZowcxtFpZfLa6k%2Fuploads%2FnkzoQKRSmC1QKJos1ioV%2FTrigger%20-%20webhook%20-%201.png?alt=media&amp;token=2e32072b-3173-4723-9b5f-1bb395b75554" alt="" width="366"><figcaption></figcaption></figure></div>

Defining response details is optional. The example below shows the default response body:

{% code lineNumbers="true" %}

```json
{
    "id": 750,
    "pipeline_id": "a1c50e60-7b54-4d7f-967a-ghujf778a4789",
    "triggered_by": "webhook",
    "nonce": null,
    "state": "pending",
    "original_run_id": null,
    "prime_run_id": null,
    "created_at": "2026-05-13T16:02:26.000000Z",
    "updated_at": "2026-05-13T16:02:26.000000Z"
}
```

{% endcode %}

#### Locating your webhook URL

URLs for new `webhook` triggers are generated when the associated pipeline is deployed.&#x20;

{% hint style="info" %}
These URLs are bound to whichever environment the pipeline runs in, and the environment is set upon deployment.
{% endhint %}

You can access deployment details from the [pipeline list](/documentation/brigge-for-transformers/pipelines/the-pipeline-list.md), or via the [deployments option when the pipeline is in edit mode](/documentation/brigge-for-transformers/pipelines/pipeline-versions-and-deployments.md#viewing-deployment-details).

</details>

<details>

<summary>File upload triggers</summary>

#### Introduction

A `file upload` trigger is useful for scenarios where a pipeline must be initiated upon receipt of a file (for example, timesheets).&#x20;

Files are uploaded via a Brigge submission page, accessed via a unique link generated during trigger setup.&#x20;

Submission of a file initiates the pipeline and the file content (not the file itself) is loaded into the pipeline as a payload for onward processing.&#x20;

#### Implementation

<figure><img src="https://2172380191-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8IqdqwZowcxtFpZfLa6k%2Fuploads%2FPHJKd0WwPmIdHMcM4TfY%2Ftrigger%20-%20file%20upload%20animated%20flow%20b.gif?alt=media&amp;token=29c59048-e9ce-43ab-846c-b4ba514f5857" alt=""><figcaption></figcaption></figure>

File upload triggers are added and configured from the `trigger` node. Having saved and [deployed](/documentation/brigge-for-transformers/pipelines/pipeline-versions-and-deployments.md) the pipeline, copy the `file upload URL` from deployment details and paste it into a browser.&#x20;

A file submission page opens (with a `name` and `description` that you configure in trigger settings) so users can upload files. For example:

<div align="left"><figure><img src="https://2172380191-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8IqdqwZowcxtFpZfLa6k%2Fuploads%2FPoeDmLKiWyXkFRIcy61j%2FTrigger%20-%20file%20upload%20-%201.png?alt=media&amp;token=d208483c-8404-41ea-b794-b2189d8fcf01" alt="" width="563"><figcaption></figcaption></figure></div>

#### File upload settings

Having added a `file upload` trigger, you define settings to determine upload requirements. For example:

<div align="left"><figure><img src="https://2172380191-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8IqdqwZowcxtFpZfLa6k%2Fuploads%2F2DVTbByWBXJ4nqahIzQS%2FTrigger%20-%20file%20upload%20-%202.png?alt=media&amp;token=75cec04e-38a1-44bb-ad30-d6f61df577a6" alt="" width="563"><figcaption></figcaption></figure></div>

These settings are summarised below:

<table><thead><tr><th width="220.18572998046875">Field</th><th>Summary</th></tr></thead><tbody><tr><td>Schema</td><td>If required, you can validate uploaded files against a selected <a href="/documentation/brigge-for-transformers/schemas.md">schema</a>.</td></tr><tr><td>Allowed file types</td><td>Enter the allowed file type(s). Multiple file types should be separated with a comma.</td></tr><tr><td>Upload form title</td><td>The title entered here is shown as the title of your file submission form.</td></tr><tr><td>Upload form description</td><td>The description entered here is shown beneath the title on your file submission form.</td></tr></tbody></table>

#### Locating your file upload URL

URLs for new `file upload` triggers are generated when the associated pipeline is deployed.&#x20;

{% hint style="info" %}
These URLs are bound to whichever environment the pipeline runs in, and the environment is set upon deployment.
{% endhint %}

You can access deployment details from the [pipeline list](/documentation/brigge-for-transformers/pipelines/the-pipeline-list.md), or via the [deployments option when the pipeline is in edit mode](/documentation/brigge-for-transformers/pipelines/pipeline-versions-and-deployments.md#viewing-deployment-details).

</details>
