Skip to main content

Trigger Blocks

Every chatbot flow starts with a Trigger Block. This is the starting point that tells the system when to begin the conversation. Each flow can have exactly one trigger.

πŸ“Έ
Screenshot: Trigger node on the flow builder canvas
trigger-node-on-canvas.png
1. Open any flow in the Flow Builder
2. Capture the trigger node at the start of the flow
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/trigger-node-on-canvas.png

Trigger types​

There are 10 trigger types available. Some triggers are channel-specific β€” they only appear when the flow is created for a particular channel.

#Trigger typeChannelsWhen the flow starts
1KeywordAllCustomer sends a specific word or phrase
2Button ClickAllCustomer clicks a button from a previous message
3WebhookAllAn external system sends a request
4ManualAllYou trigger it yourself from the Flow List
5Drip CampaignAllA drip campaign reaches a chatbot step
6Order ReceivedWhatsAppCustomer places an order via WhatsApp
7WhatsApp Flow SubmittedWhatsAppCustomer submits a WhatsApp Flow form
8Ad Click (CCTWA)WhatsAppCustomer clicks a Click-to-WhatsApp ad
9New Lead (Facebook Lead Ad)WhatsAppA new lead is submitted via a Facebook Lead Ad form
10Post CommentMessenger, InstagramCustomer comments on one of your posts

1. Keyword​

The flow starts when a customer sends a specific word or phrase.

SettingDescription
KeywordsOne or more words or phrases that will trigger the flow (e.g., "hi", "help", "menu")
Match ModeHow the incoming message is compared to your keywords (see below). Matching is always case-insensitive
Exclude KeywordsOptional. If the message matches any of these, the flow is skipped even when a keyword matched β€” useful to avoid false triggers
πŸ“Έ
Screenshot: Keyword trigger configuration showing keyword input and match mode
keyword-trigger-config.png
1. Add or select a Trigger node on the canvas
2. Select "Keyword" as the trigger type
3. Add a few keywords like "hi", "hello", "help"
4. Open the Match Mode dropdown to show the options
5. Capture the configuration panel
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/keyword-trigger-config.png

Match modes:

ModeMatches when the message…Example (keyword price)
Contains Word (default)contains the keyword as a whole word"what is the price?" βœ… Β  "pricey" ❌
Exactis exactly the keyword (nothing else)"price" βœ… Β  "price please" ❌
Containscontains the keyword anywhere, even inside another word"pricey", "price" βœ…
Starts Withbegins with the keyword"price list please" βœ…
Match Allcontains every keyword (as words) β€” use with multiple keywordskeywords order + status β†’ "order status" βœ…
Regexmatches the keyword treated as a regular expressionpattern ^(hi|hello)$ matches "hi" or "hello"

Exclude keywords: Add words that should block the trigger. Exclude keywords have their own match mode and are checked after a keyword match β€” if the message also matches an exclude keyword, the flow does not start. Example: keyword order with exclude cancel won't trigger on "cancel my order".

How it works:

  1. Customer sends a message like "Hi"
  2. System checks if the message matches any keyword (using your match mode) in any active flow
  3. If matched β€” and not blocked by an exclude keyword β€” the flow starts for that customer

Use cases:

  • FAQ menu β€” Keywords: menu, help, options β†’ Show a main menu with buttons
  • Language selection β€” Keywords: english, hindi, tamil β†’ Start conversation in that language
  • Product inquiry β€” Keywords: price, pricing, cost β†’ Show pricing information
No duplicate keywords

Two active flows cannot share the same keyword with the same match mode. If you try to activate a flow whose keyword conflicts with another active flow, you'll see an error message with the conflicting flow's name.


2. Button Click​

The flow starts when a customer clicks a button (or selects a list row) whose payload matches this trigger. The payload is the value sent back when the button is tapped β€” set it as a custom payload on the button, or use the auto-generated one.

SettingDescription
Match ModeHow the incoming payload is compared to your pattern: Exact, Starts With, Contains, or Regex
Payload PatternThe value to match against (e.g., approve_ for Starts With, or approve_REQ123 for Exact)
Extract to Variable (optional)For non-exact modes: saves the matched part of the payload into a session variable you name (see Dynamic payloads)
πŸ“Έ
Screenshot: Button Click trigger configuration showing match mode, payload pattern, and extract-to-variable fields
button-click-trigger-config.png
1. Select "Button Click" as the trigger type
2. Open the Match Mode dropdown to show Exact / Starts With / Contains / Regex
3. Choose "Starts With" and enter a pattern like "approve_"
4. Enter "approval_id" in Extract to Variable
5. Capture the configuration panel
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/button-click-trigger-config.png

Match modes:

ModeTriggers when the payload…Example (pattern approve_)
Exactequals the pattern exactlyonly approve_
Starts Withbegins with the patternapprove_REQ123 βœ…
Containscontains the pattern anywhereorder_approve_x βœ…
Regexmatches the pattern as a regular expression (case-insensitive)pattern approve_(\d+) matches approve_789

How it works:

  1. A previous flow, broadcast, or template sends an interactive message with buttons
  2. Customer taps a button β€” WhatsApp sends back the button's payload
  3. The payload is matched against active Button Click triggers; the most specific match wins (Exact > Starts With > Contains > Regex)
  4. The flow starts

Dynamic payloads and extraction​

Buttons and list rows can carry a custom payload containing variables β€” for example a button payload of approve_{{request_id}} is sent as approve_REQ123. A Button Click trigger using Starts With approve_ will match it, and if you set Extract to Variable to approval_id, the part after the prefix (REQ123) is saved as {{approval_id}} for use in the rest of the flow.

ModePatternIncoming payloadExtracted value
Starts Withapprove_approve_REQ123REQ123
Contains_id_order_id_4242
Regexapprove_(\d+)approve_789789 (first capture group)

See Custom button payloads for how to set payloads on the sending side, and the Approval workflow use case for a complete example.

Use cases:

  • Approvals β€” A request message has an "Approve" button with payload approve_{{request_id}} β†’ each tap independently triggers an approval flow with the right ID extracted
  • Multi-level menus β€” Main menu flow sends buttons β†’ Each button triggers a specialized sub-flow
  • Department routing β€” "Sales", "Support", "Billing" buttons each trigger a different flow
info

Two active flows can't use the same pattern with the same match mode. Non-exact modes (Starts With / Contains / Regex) are allowed to overlap β€” when more than one matches, the most specific one runs.


3. Webhook​

The flow starts when an external system sends a request to the flow's unique web address.

SettingDescription
Webhook URLThe unique address external systems will call (auto-generated)
API KeyA security key to authenticate requests β€” create one with the chatbot-flows:webhook scope
πŸ“Έ
Screenshot: Webhook trigger configuration showing URL, authentication, and request example
webhook-trigger-config.png
1. Select "Webhook" as the trigger type
2. Capture the full configuration panel showing webhook URL, authentication section, and request body example
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/webhook-trigger-config.png

How it works:

  1. You share the webhook address with an external system (like your CRM, e-commerce platform, or custom app)
  2. The external system sends a request with a phone number and optional data
  3. The flow starts for that phone number, with the external data available as variables

Request body format:

The external system sends a request with this structure:

{
"phone_number": "+919876543210",
"data": {
"customer_name": "John Doe",
"order_id": "ORD-123",
"order_details": {
"product": "Premium Plan",
"price": 2999,
"billing": {
"address": "Mumbai",
"gst": "27AABCU9603R1ZM"
}
}
}
}

Available session variables:

Everything inside data becomes available as session variables. You define the variables yourself β€” whatever fields you include in the request are available in your flow. Access nested values using dot notation:

VariableValue from example above
{{customer_name}}John Doe
{{order_id}}ORD-123
{{order_details.product}}Premium Plan
{{order_details.price}}2999
{{order_details.billing.address}}Mumbai
{{order_details.billing.gst}}27AABCU9603R1ZM

Use cases:

  • Order status updates β€” Your e-commerce system triggers the flow when an order ships, sending tracking details
  • CRM integration β€” Your CRM triggers a follow-up flow when a deal reaches a certain stage
  • Form submissions β€” A website form triggers a flow with the submitted data
tip

The webhook trigger is the most technical trigger type. It requires the external system to send a properly formatted request. See Testing and Triggering for a complete example with a cURL command.


4. Manual​

The flow is triggered by you (or your team) from the Flow List page for specific contacts.

SettingDescription
No additional configuration neededThe flow is ready to trigger manually
πŸ“Έ
Screenshot: Manual trigger configuration showing info card
manual-trigger-config.png
1. Select "Manual" as the trigger type
2. Capture the configuration panel showing the info card
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/manual-trigger-config.png

How it works:

  1. Go to the Flow List
  2. Click the Trigger Flow action on the flow
  3. Select one or more contacts (up to 5 at a time)
  4. Click Trigger
  5. The flow runs for each selected contact

Use cases:

  • One-time outreach β€” Send a personalized message sequence to selected contacts
  • Testing β€” Test your flow with a specific contact before going live
  • VIP follow-up β€” Manually trigger a follow-up flow for high-value contacts

5. Drip Campaign​

The flow starts automatically when a contact reaches a Chatbot step in a drip campaign.

SettingDescription
No additional configuration neededThe drip campaign handles the triggering
πŸ“Έ
Screenshot: Drip Campaign trigger configuration showing info card and session variables
drip-campaign-trigger-config.png
1. Select "Drip Campaign" as the trigger type
2. Capture the configuration panel showing the info card and available session variables
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/drip-campaign-trigger-config.png

How it works:

  1. You create a drip campaign with a Chatbot node
  2. When an enrolled contact reaches that step, the system triggers this chatbot flow
  3. The chatbot takes over the conversation for that contact

Available session variables:

The drip campaign automatically passes context to your flow:

VariableDescription
{{session.drip_campaign_id}}The campaign's unique identifier
{{session.drip_campaign_name}}The campaign's name
{{session.drip_enrollment_id}}The contact's enrollment identifier
{{session.drip_step_number}}Which step in the campaign triggered the chatbot
{{session.drip_step_name}}The name of the step that triggered the chatbot
{{session.lead_id}}The contact's lead identifier

Use cases:

  • Interactive follow-up β€” A 7-day onboarding campaign hands off to a chatbot on day 4 for an interactive product tour
  • Qualification check β€” A lead nurturing campaign uses a chatbot to ask qualifying questions mid-sequence
  • Support handoff β€” A post-purchase campaign triggers a support chatbot for customers who need help
How to connect

To use this trigger, add a Chatbot node to your drip campaign and select this flow. The drip campaign will trigger the flow automatically when a contact reaches that step.


6. Order Received​

WhatsApp Only

This trigger is only available for WhatsApp flows.

The flow starts automatically when a customer places an order through WhatsApp.

SettingDescription
No additional configuration neededTriggers on every WhatsApp order
πŸ“Έ
Screenshot: Order Received trigger configuration showing info card and session variables
order-trigger-config.png
1. Select "Order Received" as the trigger type
2. Capture the configuration panel showing the info card, session variables list, and View All Variables button
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/order-trigger-config.png

How it works:

  1. A customer opens your WhatsApp catalog and places an order
  2. The system detects the order and triggers this flow
  3. All order details are available as session variables

Available session variables:

The system provides order details that you can use in your messages and conditions:

VariableDescription
{{order.catalog_id}}The WhatsApp catalog identifier
{{order.text}}Order notes or text from the customer
{{order.product_items.0.product_retailer_id}}First item β€” Product ID
{{order.product_items.0.quantity}}First item β€” Quantity ordered
{{order.product_items.0.item_price}}First item β€” Price
{{order.product_items.0.currency}}First item β€” Currency

Click the View All Variables button in the configuration panel to see the complete list.

Use cases:

  • Order confirmation β€” Send an instant confirmation with order details and estimated delivery
  • Upselling β€” After an order, suggest related products based on what the customer bought
  • Payment collection β€” Guide the customer through payment after they place an order
tip

Use a Condition node after the trigger to handle different order scenarios β€” for example, route high-value orders to a human agent while smaller orders get an automated confirmation.


7. WhatsApp Flow Submitted​

WhatsApp Only

This trigger is only available for WhatsApp flows.

The flow starts automatically when a customer submits a specific WhatsApp Flow form.

SettingDescription
WhatsApp FlowSelect which WhatsApp Flow form should trigger this automation
πŸ“Έ
Screenshot: WhatsApp Flow Submitted trigger showing flow selection dropdown and session variables
whatsapp-flow-trigger-config.png
1. Select "WhatsApp Flow Submitted" as the trigger type
2. Select a published WhatsApp Flow from the dropdown
3. Capture the configuration panel showing the flow selection and available session variables
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/whatsapp-flow-trigger-config.png

How it works:

  1. You select which WhatsApp Flow form to monitor
  2. A customer opens and fills out that form on WhatsApp
  3. When they submit the form, this chatbot flow is triggered
  4. All submitted form data is available as session variables

Available session variables:

The system dynamically loads variables based on the WhatsApp Flow you select. These correspond to the form fields the customer filled out β€” for example, if your form has fields like full_name, email, and phone, you can access them as:

VariableDescription
{{full_name}}The value the customer entered in the "Full Name" field
{{email}}The value from the "Email" field
{{phone}}The value from the "Phone" field

The exact variables depend on your WhatsApp Flow form design. Click the View All Variables button to see the complete list for your selected flow.

Use cases:

  • Registration processing β€” Customer fills out a registration form β†’ Chatbot confirms details and creates their account
  • Appointment booking β€” Customer selects a date and time in a form β†’ Chatbot confirms the booking and sends a reminder
  • Lead capture β€” Customer fills in their contact info and requirements β†’ Chatbot qualifies the lead and routes to the right team
warning

Only published WhatsApp Flows appear in the dropdown. If your flow isn't showing up, make sure it's been published first.


8. Ad Click (CCTWA)​

WhatsApp Only

This trigger is only available for WhatsApp flows.

The flow starts automatically when a customer clicks on your Click-to-WhatsApp (CCTWA) ad on Facebook or Instagram.

SettingDescription
No additional configuration neededTriggers on any WhatsApp ad click
πŸ“Έ
Screenshot: Ad Click trigger configuration showing info card, session variables, and filtering tip
ad-click-trigger-config.png
1. Select "Ad Click (CCTWA)" as the trigger type
2. Capture the full configuration panel showing the info card, ad variables grid, and filtering tip
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/ad-click-trigger-config.png

How it works:

  1. You run a Click-to-WhatsApp ad campaign on Facebook or Instagram
  2. A customer clicks the ad and is redirected to WhatsApp
  3. The system detects the ad click and triggers this flow
  4. Ad campaign details are available as session variables

Available session variables:

VariableDescription
{{trigger.ad.headline}}Ad headline text
{{trigger.ad.body}}Ad primary text
{{trigger.ad.source_id}}Facebook ad ID
{{trigger.ad.source_url}}Ad source URL
{{trigger.ad.source_type}}Ad source type
{{trigger.ad.media_type}}Media type (image or video)
{{trigger.ad.image_url}}Image URL (if the ad has an image)
{{trigger.ad.video_url}}Video URL (if the ad has a video)
{{trigger.ad.thumbnail_url}}Thumbnail URL
{{trigger.ad.ctwa_clid}}Ad click ID

Use cases:

  • Campaign-specific welcome β€” Greet customers with a message that matches the ad they clicked (e.g., "Thanks for your interest in our Summer Sale!")
  • Lead capture β€” Automatically collect contact details from customers who clicked your ad
  • Product showcase β€” Show the product catalog or demo based on which ad campaign brought the customer
Filtering by campaign

Since this trigger fires for any Click-to-WhatsApp ad, use a Condition node after the trigger to filter by specific campaigns. For example, check if {{trigger.ad.headline}} contains "Summer Sale" to run a different flow for that campaign.


9. New Lead (Facebook Lead Ad)​

WhatsApp Only

This trigger is only available for WhatsApp flows.

The flow starts automatically when a new lead is submitted via a Facebook Lead Ad form. The lead's phone number is used to initiate a WhatsApp conversation.

SettingDescription
No additional configuration neededTriggers on every new lead from Facebook Lead Ads
πŸ“Έ
Screenshot: New Lead trigger configuration showing info card and available lead variables
leadgen-trigger-config.png
1. Create a WhatsApp flow
2. Select "New Lead (Facebook Lead Ad)" as the trigger type
3. Capture the full configuration panel showing the info card, available lead variables, and custom fields tip
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/leadgen-trigger-config.png

How it works:

  1. A customer fills out a lead form on your Facebook ad
  2. The system receives the lead data and looks up the phone number
  3. The flow starts a WhatsApp conversation with that phone number
  4. Lead form data is available as session variables
First node must be a Template Message

Since the lead hasn't messaged you on WhatsApp, you're outside the 24-hour messaging window. The first node after the trigger must be a Template Message β€” regular text or media messages will fail.

Available session variables:

VariableDescription
{{lead.full_name}}Lead's full name
{{lead.phone}}Lead's phone number
{{lead.email}}Lead's email address
{{lead.ad_name}}Name of the ad that generated the lead
{{lead.ad_id}}Facebook ad ID
{{lead.form_id}}Lead form ID
Custom form fields

All extra fields from the lead form (e.g., city, job title) are also available as {{lead.<field_name>}}. Use a Condition node to branch based on any lead field.

Available nodes:

When using the New Lead trigger, only outbound-compatible nodes are available in the builder β€” interactive nodes like Buttons, List, Question, SPM, and MPM are hidden since the customer hasn't initiated a conversation. Available nodes include:

  • Template Message (required as the first node)
  • Carousel (for Messenger/Instagram flows)
  • Condition, Router, HTTP Call, Script

Use cases:

  • Instant follow-up β€” Lead fills out a form β†’ Flow sends a WhatsApp template confirming receipt and asking if they'd like to schedule a call
  • Lead qualification β€” Use lead form fields in Condition nodes to route high-value leads to a sales agent
  • CRM integration β€” Use an HTTP Call to push the lead data to your CRM, then send a personalized template based on their interest

10. Post Comment​

Messenger / Instagram Only

This trigger is only available for Messenger and Instagram flows.

The flow starts automatically when a customer comments on one of your Facebook or Instagram posts.

SettingDescription
PageSelect which Facebook Page or Instagram account to monitor for comments
PostsOptionally select specific posts to monitor β€” leave empty to trigger on any post
Comment KeywordsOptionally filter by keywords in the comment text β€” leave empty to trigger on any comment
Keyword MatchHow to match keywords: Exact Match (comment must match the keyword exactly) or Contains (comment contains the keyword anywhere)
Comment TypeFilter by comment type: All Comments, Top-Level Comments Only, or Reply Comments Only
πŸ“Έ
Screenshot: Post Comment trigger configuration showing page selector, post filter, keyword filter, and comment type options
post-comment-trigger-config.png
1. Create a flow for Messenger or Instagram
2. Select "Post Comment" as the trigger type
3. Select a page, optionally pick specific posts, add comment keywords
4. Capture the full configuration panel
Save to: static/img/screenshots/chatbot-flows/trigger-blocks/post-comment-trigger-config.png

How it works:

  1. A customer comments on one of your Facebook or Instagram posts
  2. The system checks if the comment matches your filter criteria (page, post, keywords, comment type)
  3. If matched, the flow starts β€” the customer receives a direct message in response
  4. Comment details are available as session variables

Use cases:

  • Contest automation β€” Customers comment a keyword like "WIN" on your contest post β†’ Flow sends them a DM with contest details
  • Lead capture β€” Customers comment on a product post β†’ Flow sends a DM asking for their contact details
  • Auto-reply to comments β€” Any comment on a specific post triggers a thank-you DM with more information
  • Keyword-based offers β€” Customers comment "DEAL" β†’ Flow sends them a discount code via DM
Reply Comment node

When using the Post Comment trigger, you also get access to the Reply Comment node in the message blocks. This lets your flow reply directly to the customer's comment on the post (in addition to sending a DM). See Reply Comment.


Choosing the right trigger​

ScenarioBest triggerChannel
Customers start the conversation by messaging youKeywordAll
Flow is part of a multi-step menu systemButton ClickAll
External systems (CRM, e-commerce) need to start the flowWebhookAll
You want to start the flow for specific peopleManualAll
Flow should run mid-way through a drip campaignDrip CampaignAll
Customer places an order via WhatsApp catalogOrder ReceivedWhatsApp
Customer submits a WhatsApp Flow formWhatsApp Flow SubmittedWhatsApp
Customer clicks a Facebook/Instagram WhatsApp adAd Click (CCTWA)WhatsApp
A new lead comes in from a Facebook Lead AdNew Lead (Facebook Lead Ad)WhatsApp
Customer comments on your Facebook/Instagram postPost CommentMessenger, Instagram
You're testing a new flowManualAll