> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.wanotifier.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# WhatsApp Chatbot Components Glossary

In this article, we’ll be exploring the main components of our WhatsApp chatbot builder to help you understand how each part contributes to the overall flow and functionality.

### Table of Contents

[Understanding Chatbot Components](#3-understanding-chatbot-components)
[Chatbot Nodes](#3-chatbot-nodes)
[Start Node](#3-1-start-node)
[Trigger Nodes](#3-2-trigger-nodes)
* [New message received](#6-1-new-message-received)
* [User message text matches](#6-2-user-message-text-matches)
* [New order received](#6-3-new-order-received)
* [New flow response](#6-4-new-flow-response)
* [New CTWA lead message](#6-5-new-ctwa-lead-message)
[Action Nodes](#3-3-action-nodes)
* [Send Message](#6-1-send-message)
* [Send message template](#6-2-send-message-template)
* [Send interactive message](#6-3-send-interactive-message)
* [Add/remove contact lists](#6-4-addremove-contact-lists)
* [Add/remove contact tags](#6-5-addremove-contact-tags)
* [Set Contact Attribute](#6-6-set-contact-attribute)
* [Wait for Some Time](#6-7-wait-for-some-time)
* [Send API Request](#6-8-send-api-request)
* [Assign Team Member](#6-9-assign-team-member)
[Conditional Nodes](#3-4-conditional-nodes)
* [Check contact data](#6-1-check-contact-data)
* [Check reply message](#6-2-check-reply-message)
* [Check reply message text](#6-3-check-reply-message-text)
[End Node](#3-5-end-node)

### Understanding Chatbot Components

To build a WhatsApp chatbot in WANotifier, you’ll be working with three types of components:

* **Nodes**: These are the building blocks of your bot’s logic and represent different actions or decisions that your bot can make.
* **Edges**: These are the connecting lines that you use to connect various nodes.
* **Handles**: These are the connection points where edges connect to nodes, determining the flow’s direction.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/chatbot-components_6gbr8i.png)

Now let’s go over the different Nodes you can use to assemble a chatbot.

### Chatbot Nodes

There are five types of nodes in the chatbot builder:

1. **Start Node**
2. **Trigger Nodes**
3. **Action Nodes**
4. **Conditional Nodes**
5. **End Node**

We’ll go over each one below, along with instructions on how to configure them.

### 1. Start Node

This marks the beginning of your chatbot flow. Every bot begins with a **Start node,** which is added by default and cannot be removed.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/start-node_k4zj24.png)

To begin creating a chatbot, you’ll **first connect the Start node to a Trigger nod**e.

### 2. Trigger Nodes

Trigger Nodes define how and when your chatbot should start interacting with a user. Note that you can **only add one trigger node per bot**.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/trigger-node-options_1ijuc6k.png)

Here are the available trigger node types:

###### 1. New message received

This node triggers the bot when a user sends a new message to you outside of an active [__conversation window__](https://developers.facebook.com/docs/whatsapp/cloud-api/guides/send-messages/#customer-service-windows).

###### 2. User message text matches

This node triggers the bot when the text in a user’s message or a clicked template button matches one of your configured trigger keywords or phrases.

To set this up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, enter the trigger words or phrases (e.g., “hello”, “hi”, etc.).
* Next, select a\*\* MESSAGE TEXT MATCH TYPE **option**. **Choose** Exact match\*\* if you want to trigger the bot only when the incoming message exactly matches one of your texts. Choose **Phrase match** if you want to trigger the bot when the incoming message contains one of your texts.

Click **Save Changes** when done.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/user-message-text-matches-node_ryhcop.png)

###### 3. New order received

This node triggers the bot when a new order is received from a user.

###### 4. New flow response

This node triggers the bot when a user submits a response through one of your WhatsApp Flow forms.

###### 5. New CTWA lead message

This node triggers the bot when a user messages you after clicking on your Click-to-WhatsApp ad.

Note that you can delete a trigger node by clicking the **trash icon** located at the top right of the node.

### 3. Action Nodes

These nodes perform specific actions such as sending messages, updating contact info, or making API requests. You **can add multiple action nodes to a chatbot flow**.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/action-node-options_14rojp2.png)

Here’s a list of available Action node types:

###### 1. Send Message

This node enables your bot to\*\* \*\*send a message to the user. Note that instead of a plain text message, you can also send an image or video with a caption, an audio file, or a document with a caption.

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, select a message type (**Text, Image, Video, Audio, or Document)**. 
* Add the message content. If it’s Text, enter the message you want to send. If it’s an image, video, or document, then upload a file and add a caption.
* If you’re using a **Text** message, you can personalize the message using **Merge Tags** by clicking on the \*\*${} \*\*button on the right. These dynamic placeholders let you insert contact details (First name, Last name, WhatsApp number), user interaction data (Last user message), and other types of custom attributes (like city, order ID, product name, or amount) into your message.
* Click on \*\*Save Changes \*\*to save your node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/send-message-node_116qhhm.png)

###### 2. Send message template

This node enables your bot to send a WhatsApp message template to the user.

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up
* In the pop-up, select the message template you want to send to the users.
* If the selected template contains variables, you’ll need to provide a \*\*Value \*\*and a **Fallback value** for each variable that you want to pass when the message is triggered.
* Finally, click on **Save Changes** to save your node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/send-message-template-node_eepn1.png)

###### 3. Send interactive message

This node enables your bot to send an interactive message with buttons, lists, location requests, or flows.

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, select the type of interactive message you want to send. You can choose from **Flow**, **Reply buttons**, **List message**, and **Request Location**.
* Once you’ve selected the message type, configure its content (header, body, and optional footer) for Flows, Reply Buttons, or List Messages. If you are sending an interactive message with a Flow or Reply buttons, you can add an image, video, or document to the header in addition to text.
* After configuring the message content, set up the\*\* message action\*\* for your selected message type.
* For the \*\*Flow \*\*option, select the Flow, choose the Flow Screen you want to display first, and enter the text for the button that will trigger the Flow.
* For the\*\* Reply buttons\*\* option, enter the text for the Reply Button. To add more Reply Buttons, click the **Add Button** option. 
* Similarly, for an interactive\*\* List Message\*\*, enter a title or button text for the list. Then, set up each section by adding a Section Title, along with Row Titles and Row Descriptions. To add more rows to a section, click the Add Row button within that section. To add more sections to your list, click the Add Section button.
* If you’re sending a **Request Location** message, enter the message text for the request.
* Once you’ve configured the message actions, click on the \*\*Save Changes \*\*button to save the node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/send-interactive-message_1tshz70.png)

###### 4. Add/remove contact lists

This node enables your bot to add or remove a contact from a list.

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, use the **Add To Lists** dropdown to select the list you want to add the contact to. 
* Similarly, use the **Remove From Lists** dropdown to select the list you want to remove the contact from.
* Once done, click the \*\*Save Changes \*\*button to save the node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/add-or-remove-contact-list_4k8n7d.png)

###### 5. Add/remove contact tags

This node enables your bot to add or remove a tag (e.g., “new lead”) from a contact.

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, use the\*\* Add Tags\*\* dropdown to select the tags you want to add to the contact. 
* Similarly, use the **Remove Tags** dropdown to select the tags you want to remove.
* Once done, click on \*\*Save Changes \*\*to save the node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/add-or-remove-contact-tags_30mzih.png)

###### 6. Set Contact Attribute

This node enables your bot to update a custom attribute in the contact profile (e.g., “Plan = premium”, “City = New Delhi”).

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, select the attribute you want to add to the contact from the **Attribute** dropdown. Then, enter the value you want to assign to that attribute in the **Value** field.
* To assign dynamic values, you can use merge tags by clicking on the ${} button on the right side of the field. Merge tags help you pull actual contact, message, or API data within a bot session to assign as an attribute value.
* Once done, click on \*\*Save Changes \*\*to save the node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/set-contact-attribute-node_v6axu.png)

###### 7. Wait for Some Time

This node lets you set a wait timer for the bot. This is helpful for conversation flows where you need to wait for some time before executing the next connected node.

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, set a value in the **WAIT FOR…** field to specify how long you want the bot to wait. Then, use the **UNIT** dropdown to select whether the time should be in seconds, minutes, hours, or days.
* Finally, click on \*\*Save Changes \*\*to save the node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/wait-for-some-time-node-2_18acjad.png)

###### 8. Send API Request

This node enables your bot to send an API request to third-party apps, like your CRM, Google Sheets, webhook endpoints, and other external systems.

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* Select your API **Request Type** from GET, POST, PUT, PATCH, and DELETE. 
* Enter your endpoint **Request URL** to which you want to send the API request
* Then, enable the **Add headers** option to add custom headers to the API request. After enabling, you'll get the option to add your custom header key and value pairs.
* Then, enable the **Add params** option to add query parameters to your request. After enabling, to get the option to add key-value pairs of params below. 
* Then, enable the **Add body** option to add body to your API request. After enabling this, you'll see a text area field to enter your body content. It's important to note that we support JSON by default. If you want to add any other Content-type, make sure to add that in the Headers option above. 

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/send-api-request-node_19i818p.png)

* After entering all the API request details above, you then need to **send a test API request** to make sure the request is getting sent correctly. Before that, if you added merge tags in any of the fields above, you'll see a new option called **Enter Dummy Data for Test Request** to add dummy values for the merge tags. This is used for sending test API requests to help you set up this API node. Note that this data is not used during actual bot execution.
* After entering your dummy data for merge tags, click on the \*\*Test API Request\*\* button to send the test request. Note that we only accept JSON responses at the moment. The response will look something like this:

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/1000162541_1ard44t.jpg)

* You can then use the response to configure custom **Data Keys** to map the data from your response to specific keys that can then be used further in the bot flow. You can add multiple such key-value pairs, and they’ll be available in the merge tags of the subsequent bot nodes.
* Finally, when you’re happy with the setup, click on the Save \*\*Changes\*\* button to save the node settings.

###### 9. Assign Team Member

This node enables your bot to **assign the current conversation to a team member** or unassign an existing team member from a conversation.

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, select the team member you want to assign the conversation to. If you haven’t added any team members to your account yet, you’ll need to do that first using the [**__Manage Team__**](https://app.wanotifier.com/settings/team/) option in the settings. To unassign an existing team member from a conversation, select the **Unassigned** option.
* Click on \*\*Save Changes \*\*to save your node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/assign-a-team-member_712je1.png)

Note that you can delete any Action Node using the **trash icon** or duplicate it using the **copy icon** in the top-right corner of the node.

### 4. Conditional Nodes

Conditional nodes allow you to **direct the flow of your chatbot based on user input or contact information**. These are helpful when you want your bot to make decisions and follow different paths depending on the data it receives.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/conditional-node-options_1imq6kk.png)

Note that you can \*\*add multiple conditional nodes\*\* to a chatbot flow.

Here’s a list of available conditional nodes:

###### 1. Check contact data

This node enables your bot to conditionally route the \*\*conversation flow based on contact data\*\* such as lists, tags, or attributes.

If the conditions set in this node are met, the nodes connected to the **True** handle will be triggered; otherwise, the ones connected to the **False** handle will be triggered.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/check-contact-data-node_1ldiar7.png)

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, select a **Condition Type**. You can choose from a Contact List, Contact Tag, or Contact Attribute. 
* Next, select the action for your selected Condition Type. Note that **Contact List** and **Contact Tag** can be set to “Is Equal” or “Is Not Equal” to a specific value (e.g., Contact List is equal to “Website lead”). **Contact Attribute**, on the other hand, can be set to “Is Equal,” “Is Not Equal,” “Contains,” “Starts with,” or “Ends with.”
* You can combine multiple **AND**/**OR** logic checks
* When you’re done, click on **Save Changes** to save the node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/check-contact-data-node-settin_1dzj439.png)

###### 2. Check reply message

This node lets your bot conditionally route the conversation flow based on the user's last reply message data.

If the conditions set in this node are met, the nodes connected to the **True** handle will be triggered; otherwise, the ones connected to the **False** handle will be triggered.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/check-reply-message-node_h6xmdp.png)

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, select a **Condition Type**. You can choose either **Message Type** or **Message Text**.
* If you select Message Type, you can set the condition to either \*\*“Is” \*\*or **“Is not”** action and **specify a message type** like Text, Template, Image, Video, Audio, Document, Location, Flow Response, Button Reply, or List Reply (e.g., Message Type Is Video).
* If you select **Message Text**, you can set the condition to “Is Equal,” “Is Not Equal,” “Contains,” “Starts with,” or “Ends with” action types and enter a specific value to compare against (e.g., Message Text contains “pricing”).
* When you’re done, click on **Save Changes** to save the node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/check-reply-message-node-setti_700n4p.png)

###### 3. Check reply message text

This node allows your bot to check whether the plain text message received from the user matches any of the predefined keywords or phrases you’ve set . It creates a **separate handle for each keyword or phrase you configure**. It also adds a **default handle** for cases where the\*\* user’s message doesn’t match\*\* any of the configured texts.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/check-reply-message-text-node_q9o5rk.png)

To set it up:

* Click on the edit icon in the top-right corner of the node. This will trigger a pop-up.
* In the pop-up, enter a keyword or phrase in the **REPLY MESSAGE TEXT** field. Your bot will use this to check if the user’s message contains the specified text. You can add up to 10 such texts.
* When you’re done, click on **Save Changes** to save the node settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/check-reply-message-text-node-_hvnxd5.png)

Note that you can delete any Conditional node using the **trash icon** or duplicate it using the **copy icon** in the top-right corner of the node.

### 5. End Node

This node marks the end of your chatbot’s conversation flow. You should connect all open handles that don’t lead to another node to an End node to ensure that your bot has a stopping point.

![](https://storage.crisp.chat/users/helpdesk/website/-/6/6/d/6/66d63a5129ae5000/end-node_1r7hf97.png)

Now that you’re familiar with different components used to build a chatbot, you’re ready to start setting up one on your own. For step-by-step instructions, refer to this [this detailed guide](https://help.wanotifier.com/en/article/whatsapp-chatbot-creation-guide-1tfxdaz/?bust=1752145024672).

If you’d like to explore other ways to use WhatsApp automation, check out the article below on setting up drip sequences to nurture leads and engage (or re-engage) customers:

» [Learn how to set up drip sequences](https://help.wanotifier.com/en/article/whatsapp-drip-sequences-setup-guide-a42xbo/)






