# Automation Configuration

## Choose Your Trigger

Pick what event starts your automation:

### Request Triggers

*Available in Integrations & External HelpDesk Product Edition*

* **Request Creation** – New request submitted
* **Request Update** – Status, priority, or field changes
* **Request Message Added** – New reply
* **Request CSAT Submitted** – Feedback received
* **Request Reaction Added** – Request reacted with an Emoji (you pick which one)

### Ticket Triggers

*Available in all Product Editions*

* **Ticket Creation** - New ClearFeed ticket created
* **Ticket Update** - Field changes
* **Ticket Message Added** - New message
* **Ticket CSAT Submitted** - Feedback received on ticket
* **Ticket Reaction Added** - Ticket reacted with an Emoji (you pick which one)
* **Approval Workflow Completed** - Whenever an approval workflow is **completed**, whether the final outcome is *approved* or *rejected*.
* **Before Approval Workflow Triggered** – When selected, the automation runs **synchronously** before the approval workflow is initiated. Because the system waits for this automation to complete, delay steps are **not supported**, and the approval workflow executes only after the automation finishes.<br>

  <figure><img src="https://3455705434-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE2O2wTaNovd6fXpEuLKz%2Fuploads%2FxKvPiamEfWHyPhkdg1q6%2Fimage.png?alt=media&#x26;token=33e525c4-48f5-4c0e-8857-439e1a17250c" alt="" width="563"><figcaption><p>Triggers in Automations for Internal Helpdesk</p></figcaption></figure>

## Add Conditions

Conditions help narrow when your automation should run.

{% hint style="success" %}
Conditions are optional but allow precise targeting — all conditions must be true for the automation to execute.
{% endhint %}

### Standard Fields

Conditions are available on: Status, Priority, Assignee, Channel, Assigned Team, First Message Author, Customer, Source

Operators available:

* `is set to` / `is not set to`
* `is one of` / `is not one of`

### Approval Workflow Fields

* **Approval Workflow:** The name of the approval workflow. Use this field in automations to trigger actions for a specific approval workflow.
* **Approval Workflow Status:** The final status of the approval workflow. Use this field to define conditions based on workflow state (approved or rejected).

### Business Hours

Time-based conditions that respect your workspace timezone:

* `Trigger time is inside business hours`
* `Trigger time is outside business hours`

### Custom Fields

Different field types support different operators:

| Field Type        | Supported Operators                                             |
| ----------------- | --------------------------------------------------------------- |
| **Text**          | `is set to`, `is not set to`                                    |
| **Number**        | `is set to`, `is not set to`, `is greater than`, `is less than` |
| **Date**          | `is set to`, `is not set to`, `is after`, `is before`           |
| **Single Select** | `is set to`, `is not set to`, `is one of`, `is not one of`      |
| **Multi Select**  | `contains any of`, `contains all of`, `contains none of`        |
| **User Select**   | `is set to`, `is not set to`, `is one of`, `is not one of`      |

<figure><img src="https://3455705434-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FE2O2wTaNovd6fXpEuLKz%2Fuploads%2Fgit-blob-7af74f71c6c80edf207eaf535cae2aaf372f2143%2FSetting%20Conditions.gif?alt=media" alt="" width="563"><figcaption></figcaption></figure>

## Set Delay

Delays allow actions to run after a set time:

* **Default:** No delay
* **Maximum:** 29 days, 59 minutes, 59 seconds
* **Format:** Days / Hours / Minutes

### Invariance Settings

Define which fields should be monitored during the delay to control automation cancellation.

* If an invariant field is part of the automation’s **Conditions**, the automation only cancels if the updated value makes the condition false.
* If an invariant field is **not** part of the Conditions, *any* change cancels the automation.

#### Example

Let’s say you're setting up an automation to send a follow-up message to the Assignee if the **Status of the request** remains "Open" for 3 days. You set a delay of 3 days before sending the message.

* **Invariant Field is part of Conditions**: You choose to monitor the **Status** field (since it is part of the condition for triggering the action). If the **Status** changes to "Resolved" within the 3-day delay, the automation will **cancel** because the condition (Status = "Open") is no longer true. However, if the **Status** remains "Open," the automation will proceed and send the follow-up email after 3 days.
* **Invariant Field is not part of Conditions**: Now, let’s say you also monitor the **Priority** field (which is **not** part of the automation's Conditions). If the **Priority** field is updated during the delay (e.g., from "Medium" to "High"), the automation will **cancel**, regardless of whether the **Status** remains "Open" or not, because you set the **Priority** field to automatically cancel the automation on change
