The Chatbot Builder lets you design automated WhatsApp conversations using a visual flow canvas. You can send messages, ask questions, route contacts based on replies, update contact records, assign agents, call external APIs, and publish the final chatbot for live use.
This article explains how to use the builder and what every available node does.
β Before You Begin #
Before creating or editing a chatbot flow, make sure you have:
- β A WhatsApp Business account connected.
- β At least one chatbot created from the Chatbots page.
- β Required templates approved if you plan to use template messages.
- β Media uploaded if you want to send images, videos, or documents.
- β Contact groups, labels, branches, or agents will be created if your flow uses them.
- β Auto-reply trigger connected to the chatbot if the bot should start from a customer keyword.
π Where to Find the Chatbot Builder #
Go to:
Chatbot Builder β Chatbots β Open Builder
When you open a chatbot, the page displays:
- π€ The chatbot name at the top.
- β¬ οΈ A back button to return to the Chatbots list.
- π§± A visual canvas for building the flow.
- π§© A node list for adding actions.
- βοΈ A properties panel for editing selected nodes.
- πΎ Save as draft, validate, and publish controls.
π§ How Chatbot Flows Work #
A chatbot flow is built from connected nodes.
- βΆοΈ The Start node begins the flow.
- π§© Each node performs one action or waits for customer input.
- π Lines connect one node to the next step.
- π Some nodes have multiple output paths, such as True/False, Yes/No, branch paths, or custom reply paths.
- π The flow should end with either an End node or a Handover to Agents node.
When the chatbot is published, the system runs the published version of the flow. Draft changes do not affect customers until you publish them.
πΎ Save, Validate, and Publish #
π Save as Draft #
Use Save as draft when you want to keep your progress without making the bot live.
- Saves the current canvas.
- Does not affect the active published chatbot.
- Useful while building or testing internally.
β Validate Flow #
Use Validate Flow before publishing.
Validation checks for common issues such as:
- Start node not connected.
- Missing End or Handover node.
- Nodes without incoming connections.
- Missing required text, media, template, API, group, label, or agent settings.
- Invalid interactive message setup.
- Missing required paths or fields.
π Publish #
Use Publish when the chatbot is ready.
Publishing:
- Saves the current version.
- Validates the flow first.
- Makes the chatbot available for live conversations.
- Replaces the previously published version.
π§© Chatbot Builder Nodes #
βΆοΈ Start Node #
The Start node is the beginning of every chatbot flow.
Use it to:
- Begin the conversation flow.
- Connect to the first real action node.
- Define what happens immediately after the chatbot is triggered.
Important notes:
- The Start node is created automatically.
- It cannot be deleted.
- It must be connected to another node.
π End Node #
The End node stops the chatbot session.
Use it when:
- The conversation is complete.
- No further automated messages are needed.
- You do not want to hand the chat to an agent.
Example use cases:
- Customer successfully received information.
- Customer selected βNo, thank youβ.
- A confirmation message has already been sent.
π¬ Text Message Node #
The Text Message node sends a normal WhatsApp text message.
Use it to send:
- Greetings.
- Instructions.
- Follow-up questions.
- Confirmation messages.
- Short explanations.
You can include runtime placeholders:
{{last_message_received}}{{last_path_result}}
Example:
Thank you. You selected {{last_path_result}}.
Best practices:
- Keep messages short and clear.
- Ask one question at a time.
- Place a decision node after the message if you expect a reply.
πΌοΈ Media Message Node #
The Media Message node sends uploaded media to the customer.
Supported media types:
- πΌοΈ Image
- π₯ Video
- π Document
You can configure:
- Media type.
- Uploaded media file.
- Optional caption.
The caption can also use placeholders such as:
Hi, here is the document for {{last_path_result}}.
Use this node for:
- Product images.
- Brochures.
- PDFs.
- Instruction videos.
- Visual confirmations.
π Template Message Node #
The Template Message node sends an approved WhatsApp template.
Use it when:
- You need to send a structured approved message.
- The conversation may be outside the normal messaging window.
- You want to use Meta-approved marketing, utility, or authentication templates.
Template settings include:
- Template category.
- Template header type.
- Template name.
- Template language.
- Media header, if required.
- Body placeholders.
- Button parameters.
- Flow button JSON, if the template uses a flow button.
Supported template categories:
- Marketing
- Utility
- Authentication
Available contact placeholder options include:
- Customer name
- Mobile number
- Address
- Contact label
- Language
- Gender
Best practices:
- Make sure the template is approved before using it.
- Match the language to the customer audience.
- Fill all required variables.
- For media templates, select the required media file.
π§ Interactive Message Node #
The Interactive Message node sends rich WhatsApp interactive content.
Supported interactive types:
- π§Ύ WhatsApp Flow
- π Reply Buttons
- π List Message
- π Request Location
π§Ύ Interactive Type: WhatsApp Flow #
Use this option to send a WhatsApp Flow inside the chatbot.
Configure:
- Header type: text, image, video, or document.
- Header content or media.
- Body text.
- Footer text.
- Flow ID.
- Flow screen.
- Button text.
Use it for:
- Forms.
- Booking steps.
- Applications.
- Surveys.
- Structured customer data collection.
Required fields:
- Header type.
- Header text or media.
- Body.
- Flow ID.
- Flow screen.
- Button text.
π Interactive Type: Reply Buttons #
Use reply buttons when the customer should choose from quick options.
Configure:
- Header type.
- Header text or media.
- Body text.
- Footer text.
- Button labels.
Use it for:
- Yes/No choices.
- Simple menus.
- Confirmation questions.
- Quick routing.
After sending reply buttons, place a Check Received Message or Conditional Path node to process the customerβs response.
π Interactive Type: List Message #
Use a list message when you have more options than simple buttons.
Configure:
- Optional header.
- Body.
- Footer.
- Button text.
- Sections.
- Rows inside each section.
Validation limits include:
- Header up to 60 characters.
- Body up to 1024 characters.
- Footer up to 60 characters.
- Button text up to 20 characters.
- Up to 10 sections.
- Section title up to 24 characters.
- Row title up to 24 characters.
- Row description up to 72 characters.
- Row ID up to 200 characters.
Use it for:
- Service menus.
- Product categories.
- Branch choices.
- Support topics.
π Interactive Type: Request Location #
Use this option to ask the customer to share their WhatsApp location.
The chatbot will:
- Send the location request message.
- Wait on the same node until the customer sends a location.
- Continue only after valid latitude and longitude are received.
This is commonly used before the Send Nearest Branch node.
π’ Send Nearest Branch Node #
The Send Nearest Branch node finds and sends the closest branch based on the customerβs shared location.
Use it after a Request Location interactive message.
Configure:
- One or more branch paths.
- Each selected branch creates its own output path.
- An Otherwise path is always available.
When the customer sends their location, the system:
- Reads the customer’s latitude and longitude.
- Searches for the nearest branch within the configured branch logic.
- Sends the nearest branch location to the customer.
- Stores branch data in session variables.
- Routes the flow by matched branch.
- Uses Otherwise, if no selected branch path matches.
Stored values can include:
- Customer latitude
- Customer longitude
- Nearest branch found status
- Nearest branch ID
- Nearest branch name
- Nearest branch address
- Nearest branch latitude
- Nearest branch longitude
Use this node for:
- Store locator flows.
- Clinic or branch routing.
- Delivery support.
- Location-based service assignment.
π Conditional Path Node #
The Conditional Path node routes the conversation based on the exact text the customer sends.
Use it when you want to create custom paths, such as:
- Sales
- Support
- Pricing
- Booking
- Cancel
- Yes
- No
How it works:
- You add free-text path labels.
- Each label becomes a separate output path.
- The customer reply is normalized before matching.
- Matching is case-insensitive.
- The customer reply must match the path value exactly.
- If nothing matches, the Otherwise path is used if connected.
Example:
- Path:
pricing - Customer replies:
Pricing - Result: pricing path is matched.
The matched path value is saved as:
{{last_path_result}}
You can reuse that value later in text, media captions, API calls, comments, or contact updates.
π¨ Check Received Message Node #
The Check Received Message node checks the customerβs latest reply and routes to either True or False.
You can check by:
- Message type
- Message text
Supported message types:
- Text
- Image
- Video
- Audio
- Document
- Location
- Flow
- Button reply
- List reply
Message type operators:
- Is
- Is not
Message text operators:
- Is equal to
- Is not equal to
- Contains
- Not contains
- Starts with
- Ends with
Conditions inside the same group use AND logic. Multiple groups use OR logic.
Example:
- Group 1: Message type is text AND message text contains βsupportβ
- Group 2: Message type is button reply
If any group matches, the True path runs. Otherwise, the False path runs.
π Check Is Rewarded Node #
The Check Is Rewarded node checks whether the contact is marked as rewarded.
It has two paths:
- Yes
- No
The result is also stored as:
{{last_path_result}}
Use it for:
- Loyalty programs.
- Referral rewards.
- Promo eligibility.
- Preventing duplicate rewards.
Example flow:
- Check Is Rewarded
- If Yes: send βYou already received your reward.β
- If No: continue reward process
β±οΈ Wait For Time Node #
The Wait For Time node pauses the chatbot before continuing.
Supported units:
- Seconds
- Minutes
- Hours
- Days
Use it for:
- Delayed follow-ups.
- Reminder messages.
- Giving the customer time before the next step.
- Sending staged onboarding messages.
Important behavior:
- The session waits on this node.
- The system resumes automatically after the delay.
- The next connected node runs after the wait is complete.
π₯ Manage Contact Groups Node #
The Manage Contact Groups node adds the contact to selected groups.
You can select multiple groups.
Use it for:
- Segmenting leads.
- Adding contacts to campaign audiences.
- Organizing contacts by interest.
- Creating follow-up groups automatically.
Example:
- Customer selects βProduct A.β
- The bot adds them to the βProduct A Leadsβ group
- Later, you can target that group in broadcasts
π·οΈ Update Contact Label Node #
The Update Contact Label node sets a single label for the contact.
Use it to classify contacts automatically, such as:
- New lead
- VIP
- Support request
- Interested customer
- Not interested
- Existing client
Important note:
- This node updates the contact label/type.
- It does not delete the contact.
- It replaces the contactβs selected label with the configured one.
π€ Update Contact Details Node #
The Update Contact Details node updates one field on the contact profile.
Supported fields include:
- Full Name
- Address
- Customer Source
- Contact Language
- Gender
- Contact Label
- Subscription Status
- Reward Status
Value sources:
- Set manually
- Use the last message received
- Use the last conditional path result
Use it for:
- Saving customer answers.
- Updating email addresses.
- Marking subscription status.
- Marking reward status.
- Updating lead source.
- Saving customer preferences.
Example:
- Bot asks: βPlease enter your email.β
- Customer replies with email
- Update Contact Details saves
{{last_message_received}}into the Email field
Some fields must be selected manually, such as language, gender, subscription status, reward status, and contact label.
π Add Comment Node #
The Add Comment node adds an internal comment to the customer record.
Use it to leave notes for agents or admins.
The comment can include placeholders:
Customer selected {{last_path_result}} during chatbot flow.
Use it for:
- Recording chatbot decisions.
- Saving customer preferences.
- Adding context before agent handover.
- Creating an internal audit trail.
Comments are internal and are not sent to the customer.
π API Request Node #
The API Request node sends a request to an external API endpoint.
Supported methods:
- GET
- POST
- PUT
- PATCH
- DELETE
You can configure:
- Request URL
- Request body
- Headers
- Query parameters
Supported placeholders:
{{last_message_received}}
{{last_path_result}}
Placeholders can be used in:
- URL
- Body
- Parameter values
For POST, PUT, and PATCH requests, the body is required by validation.
Use this node for:
- Sending lead data to a CRM.
- Triggering external workflows.
- Checking customer status.
- Calling booking systems.
- Sending webhook events.
Important notes:
- API response is logged by the system.
- The flow continues to the next connected node after the request.
- The current builder does not branch based on the API response.
π Handover to Agents Node #
The Handover to Agents node ends the chatbot automation and transfers the conversation to a human agent.
Assignment options:
- Specific agent
- Round-robin assignment
When this node runs, the system:
- Assigns the contact to the selected agent or next round-robin agent.
- Sends a notification to the agent.
- Ends the chatbot session as handed over.
- Marks the conversation as agent-owned.
- Stops chatbot automation for that conversation.
Use it for:
- Sales follow-up.
- Support escalation.
- Complex customer requests.
- Human review after qualification.
Important note:
- This node is a terminal node.
- It should not have an outgoing connection.
π§ͺ Recommended Test Flow #
Before publishing a production chatbot, test it with a small internal flow:
- βΆοΈ Start
- π¬ Text Message: βWelcome. Reply to sales or support.β
- π Conditional Path: sales, support, otherwise
- π·οΈ Update Contact Label based on the selected path
- π Add Comment with
{{last_path_result}} - π Handover to Agents or π End
Then test:
- Exact keyword matching.
- Button replies.
- List replies.
- Location sharing.
- Template sending.
- Contact updates.
- Agent handover.
- Draft save and publish.
β οΈ Common Issues #
Flow will not publish #
Check that:
- Start is connected.
- The flow has an End or Handover node.
- All nodes have incoming connections.
- Required fields are completed.
- Interactive messages are valid.
- Template settings are complete.
- API URL and required body are filled.
Customer reply does not route correctly #
Check that:
- Conditional Path values match the expected customer reply.
- Button/list replies are handled with Check Received Message if needed.
- The Otherwise path is connected.
- The customer sent the correct message type.
The nearest branch does not work #
Check that:
- The bot asks for the location first.
- The customer shares a real WhatsApp location.
- Branch records have valid latitude and longitude.
- At least one branch path is selected.
- Otherwise, the path is connected for fallback.
The agent did not receive the handover #
Check that:
- A specific agent is selected, or round-robin is enabled.
- The contact exists in the system.
- Agent assignment is allowed.
- Notifications are enabled.
β Best Practices #
- Keep each node focused on one action.
- Use short customer messages.
- Always connect an Otherwise path for decision nodes.
- Save contact labels and groups for future broadcasts.
- Use Add Comment before handover to give agents context.
- Validate before every publish.
- Test the published version using a real WhatsApp conversation.
- Use Wait nodes carefully so customers are not left waiting too long.
- Use API Request nodes only with reliable endpoints.
π§ Summary #
The Chatbot Builder is a full visual automation tool for WhatsApp conversations. You can build simple welcome flows, advanced qualification journeys, location-based branch routing, contact updates, CRM webhooks, and human handover workflows.
For larger documentation, this can also be split into two BetterDocs articles:
- How to Build and Publish a Chatbot Flow
- Chatbot Builder Node Reference
