All three types react to inbound messages the same way — they look at what the customer sent, match it against a trigger, and run. The difference is what happens next.
The three types
Message Bots
One keyword in, one reply out. Plain text plus up to three quick-reply buttons.
Template Bots
A keyword triggers an approved WhatsApp template with filled-in parameters.
Bot Flows
Full visual builder — branching conversations with media, list pickers, API calls, and more.
Quick comparison
| Message Bot | Template Bot | Bot Flow | |
|---|---|---|---|
| What it sends | Plain text + up to 3 buttons | One approved WhatsApp template | Any combination of text, media, lists, buttons, API calls, AI replies |
| Conversation length | Single reply — stateless | Single template — stateless | Multi-step — branches follow button choices |
| Storage shape | Flat database row | Flat database row | JSON graph of nodes and edges |
| Can send outside the 24-hour window? | No — plain messages only | Yes — templates bypass the session window | Only if the flow sends a template node (future) |
| Complexity to build | Very low — one form | Low — pick a template, fill in parameters | Higher — visual builder with up to 10 node types |
| Best for | ”Hours”, “Address”, “Price list” | Welcome or re-engagement template sent on a keyword | Menus, lead qualification, multi-question flows |
All three share the same trigger rules
Every bot — Message, Template, or Flow — asks the same two questions at setup:-
Who does this apply to? (
rel_type)lead— only fires for contacts marked as leadscustomer— only fires for contacts marked as customers
-
When does it fire? (
reply_type)- 1 — On exact match — the incoming message text equals a keyword exactly
- 2 — When message contains — the incoming message contains a keyword as a substring
- 3 — On first message — the contact is messaging you for the first time
- 4 — If no keyword matches — fallback when nothing else caught the message
How to choose
Use a Message Bot when...
Use a Message Bot when...
- The question always has the same answer — “What are your hours?”, “Where are you based?”, “What’s your phone number?”
- You want a quick acknowledgement like “Thanks, we’ll get back to you shortly” while an agent is being paged.
- You’re happy with plain text and at most three buttons.
Use a Template Bot when...
Use a Template Bot when...
- You need to send a pre-approved WhatsApp template (for example to reopen a conversation that’s outside the 24-hour session window).
- The content is longer than a Message Bot allows, or needs header media or structured buttons.
- You want to send a branded welcome template when a contact messages for the first time.
Use a Bot Flow when...
Use a Bot Flow when...
- The conversation has more than one step — “Ask the customer for their order number, then look it up, then route them.”
- You need buttons that lead to different outcomes.
- You want to send media (images, video, documents), share a location, or collect data via an external API.
- You want to hand over to an AI Assistant (if that module is enabled).
Can I use them together?
Yes, and most workspaces do.A Message Bot handles the greeting
Customer types “Hi” — a Message Bot replies with a friendly welcome and a hint: “Type MENU to see options”.
A Bot Flow handles the menu
Customer types “MENU” — a Bot Flow takes over with a list of options, branches on the button they press, and routes them.
What controls whether a bot runs?
Each bot has a feature flag on the workspace subscription:| Bot type | Feature slug |
|---|---|
| Message Bots | message_bots |
| Template Bots | template_bots |
| Bot Flows | bot_flows |
Variables
All three bot types let you personalise replies with merge fields like{contact_first_name}. These use single curly braces and are different from template variables (which use {{1}}, {{2}}, etc.).
The available merge fields are:
Custom fields are not currently available as merge fields inside automations — only the predefined fields above are substituted.
Activity logging
Every time a bot is created, edited, enabled, disabled, or deleted, an entry lands in the Activity Log. Use that log when a bot’s behaviour changes unexpectedly and you need to see who touched it.Permissions
Each automation has its own permission group. Hand them out through Roles & Permissions:| Permission prefix | What it unlocks |
|---|---|
tenant.message_bot.* | Message Bots — view, create, edit, delete, clone |
tenant.template_bot.* | Template Bots — view, create, edit, delete, clone |
tenant.bot_flow.* | Bot Flows — view, create, edit, delete |
What to read next
Message Bots
Keyword → reply in under two minutes.
Template Bots
Keyword → approved WhatsApp template.
Bot Flows
Visual builder for multi-step conversations.