In the Workflows builder, a workflow's start points are its triggers — shown as nodes on the canvas. Open a workflow and click Add Trigger to pick one from a categorized, searchable list. This guide walks the whole catalogue channel by channel, then covers how each trigger is matched and the two switches that sit on almost all of them.
A workflow does nothing until something sets it off, and that something is a trigger — you can add more than one. Each trigger you add starts Enabled, and the picker only offers the triggers that fit the account linked to your workflow, so link the right connected account first and the channel you want will appear.
Adding a trigger
Each trigger shows up as a node on the canvas. The Add Trigger button opens the picker, headed Start automation when…, with a category rail on the left and a searchable list on the right. Click a trigger to drop it in; select the node afterwards to open its settings, and use Delete Trigger to remove one.
Open the picker
In a workflow, click Add Trigger. The picker opens under the heading Start automation when….
Find a trigger
Browse the category rail — Messenger, Instagram, WhatsApp, Telegram, Email, Contact events, External, AI — or type into Search triggers… to match across every category at once.
Add and configure it
Click a trigger to add it to the canvas; it arrives Enabled. Select the node to open its match settings in the drawer on the right.
The list is scoped to the account linked to this workflow — a Facebook workflow won't show WhatsApp triggers, and vice versa. The platform-agnostic triggers (contact events, the inbound webhook and the Clone handoff) always show. If a channel's triggers are missing, link the connected account for that channel first.
Messenger triggers
These fire on the Facebook Messenger account linked to your workflow. Post comments carries the richest set of options (see Matching your trigger below).
| Trigger | Fires when |
|---|---|
| Ad click | User clicks a Facebook ad |
| Post comments | User comments on your post |
| Direct messages | User sends a direct message |
| QR code / ref link | User opens a chat from your QR code or m.me ref link |
Instagram triggers
Triggers on your linked Instagram account, covering DMs, comments, story replies, ads and live.
| Trigger | Fires when |
|---|---|
| Post or Reel comments | User comments on your Post or Reel |
| Story reply | User replies to your Story |
| Instagram message | User sends an Instagram direct message |
| Instagram ad click | User clicks an Instagram ad |
| Live comments | User comments on your Live |
| Instagram referral link | User clicks an Instagram referral link |
WhatsApp triggers
Triggers on your linked WhatsApp Business account.
| Trigger | Fires when |
|---|---|
| WhatsApp message | User sends a WhatsApp message |
| WhatsApp link | User clicks a wa.me link |
Telegram triggers
Triggers on your linked Telegram bot. All three match on keywords and message intent.
| Trigger | Fires when |
|---|---|
| Telegram message | User sends a Telegram message |
| Bot command | User sends a /command to your bot |
| Inline button click | User clicks an inline keyboard button |
Email triggers
An inbound email has a richer envelope than a chat message, so it gets five triggers — one on the body, one on the subject, two on the addresses, and one on attachments.
| Trigger | Fires when |
|---|---|
| Email received | An email arrives in your inbox |
| Subject matches | An email arrives whose subject contains your keywords |
| From sender or domain | An email arrives from a specific address or domain |
| Sent to address | An email arrives at a specific address or alias (support@, sales@…) |
| Has attachment | An email arrives with at least one attachment |
Contact-event triggers
These fire on a change to the contact record itself, not on an inbound message — so they run whatever channel the contact came from, and always appear in the picker. Instead of keywords, each one picks a subject to watch.
| Trigger | Fires when |
|---|---|
| New contact created | A new contact is created |
| Custom field changed | A custom field value changes |
| System field changed | A built-in contact field (name, email, ...) changes |
| Tag applied | A tag is applied to a contact |
| Tag removed | A tag is removed from a contact |
| Date/time occurred | A specific date/time is reached |
External: inbound webhook
The Inbound webhook trigger (category External) starts a workflow when another system POSTs to a private URL — an order tool, a form, your own backend. It fires whenever An external system POSTs to a unique URL to start this automation.
Open the trigger and click Generate webhook URL to mint the Endpoint. The token in that URL is the secret, so keep it private; Regenerate URL replaces it and instantly invalidates the old one. The JSON body you POST identifies (or creates) the contact, and its fields become {{rv_*}} run variables inside the flow.
AI: Clone handoff requested
The Clone handoff requested trigger (category AI) fires the moment your Clone asks to pass a live conversation to a human — The clone asks to hand the conversation to a human (can't answer, frustration, etc.). Use it to notify a teammate, open the inbox, or route the person somewhere specific.
You can scope it to one Reason — Low AI confidence, User requested human, Frustration detected, Matched a "requires human" topic or Conversation loop — or leave it on Any reason to run on every handoff. The reason and the conversation are available in the flow as {{rv_handoff_reason}} and {{rv_conversation_id}}.
Matching your trigger
Select a trigger node and the drawer shows only the match controls that fit its shape. Leave a match field blank and the trigger fires on any event of that kind.
Text triggers — direct messages, comments, story and live replies, all the Telegram triggers, and the email body and subject — share the Trigger matching group: Define keywords to match exactly, or describe the message intent for AI-based matching. Add words under Comments include these keywords and rule some out under Comments exclude these keywords (both case-insensitive), turn on Match misspelled keywords to forgive typos, or describe the goal under Message intent for AI-based matching.
Post and Reel comment triggers add a post selector — Any post, or a Specific post chosen from the last 30 days — so a workflow can watch every post or just one.
Facebook Post comments add three options Instagram does not have: First level comments only, Like the comment, and Auto-respond in public feed — the last opens an Auto-Response group with an AI-Generated Response toggle. Instagram Post or Reel comments match keywords and start the flow, but they have no public-reply options — those settings live on Facebook post comments only.
Ad and referral triggers match a code rather than text. Ad clicks match an Ad ID (blank = Any ad); QR and ref-link triggers match a Ref code (blank = Any link or QR code) and show Your link plus a Download QR button once a connected account is linked — until then you'll see Link a connected account to this automation to generate the shareable link and QR code.
WhatsApp link carries no hidden referral, so it matches the text of your link's Pre-filled message — keep that message distinctive. The WhatsApp number field only builds the wa.me link and QR; it isn't used to match.
The email envelope triggers match without keywords: From sender or domain takes a full address or a whole domain like @acme.com, Sent to address routes by recipient or alias, and Has attachment fires on any inbound email carrying at least one file, with no configuration at all.
Contact-event triggers show an Event matching subject instead of keywords: a tag (blank = Any tag), a system or custom field (blank = Any field), or — for Date/time occurred — a When to fire choice of Relative to a contact date field (with an Offset (days) and a Time of day) or At a specific date and time.
The last two triggers carry their own match. Clone handoff requested scopes by Reason, as described above; and the Inbound webhook's match is its private Endpoint URL — anything that POSTs there starts the flow.
Two switches on every trigger
Whatever its shape, almost every trigger carries the same two switches at the top of its drawer.
- Enabled — the on/off switch for the trigger. New triggers arrive enabled; turn it off to pause a trigger without deleting it.
- Fire every time — controls repeats. Off (the default) fires the trigger only the first time it matches for a given contact; on re-fires it on every match.
By default, a trigger fires only the first time it matches for a given contact — so an onboarding flow doesn't restart every time the user sends another message. Turn this on to let the trigger re-fire on every match (useful for catch-all triggers or "always-on" reply rules).
Frequently asked
Yes. A workflow can carry several triggers, and any Enabled one that matches will start it — handy for catching the same intent across, say, a comment and a DM. Add each with Add Trigger; remove one with Delete Trigger.
The picker only lists triggers for the account linked to that workflow, so a Facebook workflow won't show WhatsApp triggers. Link the connected account for the channel you want and its triggers appear. The platform-agnostic triggers — contact events, the inbound webhook and the Clone handoff — always show.
Keywords match the literal words in the message, with Match misspelled keywords to forgive typos. Message intent hands the message to the AI and matches on meaning — you describe the goal, e.g. Person wants to..., and it can fire even when the wording is different. Use either or both.
Not by default. A trigger fires only the first time it matches for a given contact, so an onboarding flow doesn't restart on their next message. Turn on Fire every time to re-fire on every match — the right choice for catch-all or always-on reply rules.
No. First level comments only, Like the comment and Auto-respond in public feed live on Facebook Post comments only. Instagram Post or Reel comments still match keywords and start your workflow — they just don't post a public reply.
Last updated July 9, 2026 · Automations