> For the complete documentation index, see [llms.txt](https://stage-precision.gitbook.io/grid/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stage-precision.gitbook.io/grid/controller/controller-buttons/controller-buttons/programming-a-button/trigger.md).

# Trigger

<figure><img src="https://1089527861-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1lzYXYTbE4lxMSWTSQTM%2Fuploads%2Fai2fGqfcpPu2WgNqUsu7%2FController%20Button%20Trigger.png?alt=media&amp;token=69945aa9-59fa-4270-9315-03f242e34e6f" alt=""><figcaption></figcaption></figure>

**Trigger** is the simplest button Type. It does not hold a value or a state: it only reports that it was pressed and released.

### What a Trigger Button Does

<figure><img src="https://1089527861-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1lzYXYTbE4lxMSWTSQTM%2Fuploads%2FQT0pU6Kh4NpdEKOkRBDL%2FController%20Button%20Trigger%20Value.png?alt=media&amp;token=226cf505-1d9e-45ff-a15c-f0d04e060a0a" alt=""><figcaption></figcaption></figure>

A Trigger button reports **Down** and **Up** events. It has no **Value**, no **State**, and no **Target**. Everything it does is programmed through its events.

{% hint style="info" %}
Because it has no value, the common settings that apply to a Value or Parameter button, such as **Value Mode**, **Step**, and **Range**, do not apply to a Trigger button.
{% endhint %}

***

### When to Use a Trigger

Use a Trigger button when a press should fire an action, such as:

* Starting a cue or a sequence
* Running a one-off action, such as taking a snapshot
* Starting a workflow that itself decides what to do, for example based on the current state of the project

{% hint style="info" %}
If the button should instead switch something on and off and remember which it is, use **State** instead of Trigger.
{% endhint %}

***

### Programming a Trigger Button

<figure><img src="https://1089527861-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1lzYXYTbE4lxMSWTSQTM%2Fuploads%2F9y6eqxDCaCOTzYxKTKBt%2FController%20Button%20Trigger%20Events.png?alt=media&amp;token=d4f1011d-e950-4176-ba6d-c32ad42797ce" alt=""><figcaption></figcaption></figure>

Since the Trigger button is a fairly simple button, there are only 2 options to consider:

* **Down**: when the button is pressed down
* **Up**: when the button is released

The rest is similar to how you would program a normal widget on the artboard via workflows. For more details please refer to the [Workflow](/grid/controller/controller-buttons/controller-buttons/programming-a-button/workflow.md#linking-actions-directly-to-a-button) seciton.
