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

# Triggers

> Choose the event that starts your workflow — and avoid duplicate or missed runs.

## What is this?

The **trigger** decides **when** a workflow runs. It listens for a specific event and starts the automation only when that event occurs. Every automation has exactly one trigger, and it's the first block on the canvas.

<Info>
  If a workflow fires at the wrong time or not at all, the trigger is the first thing to check.
</Info>

## What can I do here?

The triggers you can choose depend on the channel type. Each one is covered on its own page:

| Trigger                                                   | Runs when…                                                                                | Page                                                                                       |
| --------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| **Message Received**                                      | An incoming message matches your keyword automations                                      | [Message Received](/workspace/automation/triggers/message-received)                        |
| **New Conversation**                                      | A brand-new conversation thread is opened (runs once)                                     | [New Conversation](/workspace/automation/triggers/new-conversation)                        |
| **No Match Reply**                                        | An incoming message does not match any keyword automation                                 | [No Match Reply](/workspace/automation/triggers/no-match-reply)                            |
| **Receive Webhook**                                       | An incoming webhook request is received                                                   | [Receive Webhook](/workspace/automation/triggers/receive-webhook)                          |
| **Contact or Custom Field Changed**                       | A selected contact or custom field is created, updated, or its value changes              | [Contact or Custom Field Changed](/workspace/automation/triggers/contact-or-field-changed) |
| **Pipeline Stage Changed**                                | A contact is added to or moved within a selected pipeline, optionally filtered to a stage | [Pipeline Stage Changed](/workspace/automation/triggers/pipeline-stage-changed)            |
| **Trigger Sequence**                                      | A contact is enrolled into the sequence — use Sequence Drip steps for timed messages      | [Trigger Sequence](/workspace/automation/triggers/trigger-sequence)                        |
| Comment, Live, Story, and referral triggers on Instagram  | Someone comments, replies to a Story, or clicks a referral link                           | [Instagram Triggers](/workspace/automation/triggers/instagram-triggers)                    |
| Comment, Live, mention, and referral triggers on Facebook | Someone comments, @mentions your Page, or opens Messenger from a referral                 | [Facebook Triggers](/workspace/automation/triggers/facebook-triggers)                      |

A good trigger matches the real business moment. A poor trigger causes duplicate runs, missed conversations, or logic that fires in the wrong place.

## How to use it

### Choose the right trigger

<Steps>
  <Step title="Define the outcome first">
    What should the automation achieve? For example: *Reply to pricing questions and assign them to sales.*
  </Step>

  <Step title="Identify the true starting event">
    What real activity marks the start? A keyword message, a new conversation, or a webhook — not a later step in the process.
  </Step>

  <Step title="Pick the matching trigger">
    Select the trigger whose event aligns exactly with that moment. When in doubt, prefer the most specific trigger.
  </Step>
</Steps>

### Tips

* **One trigger per workflow.** Don't try to start the same flow from multiple unrelated events — create focused flows instead.
* **Prefer triggers that carry data.** A trigger that includes the payload you need saves extra lookups.
* **Scope by channel.** A workflow built for WhatsApp won't fire for Web Chat. Confirm the channel in [Channels](/workspace/channels).

## Troubleshooting / Technical Notes

* **The flow never runs.** Check that it's **Active** and the channel matches the conversation.
* **The flow runs twice.** Two automations may share the same trigger. Review the list in [Manage Live Flows](/workspace/automation/manage-live-flows).
* **A trigger I expect isn't in the list.** The builder shows the triggers available for the automation's channel — comment and referral triggers are channel-specific.

## Related docs

* [Automation Overview](/workspace/automation/overview)
* [Create a Workflow](/workspace/automation/create-a-workflow)
* [Builder Steps](/workspace/automation/steps/overview)
* [Manage Live Flows](/workspace/automation/manage-live-flows)
