Message Nodes
Message nodes are one-way communication nodes which can be used when the bot has to display information to the user without expecting or taking any response. You can randomize the node text and add a delay to each node.
1. Common features across message nodes
Randomization
Randomization is a feature available in nodes that allows chatbots show different variation of greeting messages/ questions to users, making the conversation feel more natural and human-like.
- To add multiple texts, click Add multiple text for randomizing on the node.
- Enter variations of the text that you want your users to see.
Delay
You can set a delay in displaying each of these nodes.
Fetch from
A Fetch from field will be provided in most of the fields to render the dynamic data of that respective node.
Message nodes are used only for interactive purpose, you cannot do anything else apart from displaying text/video/image etc. (along with variables) You cannot use auto complete and other features from here and you cannot store the user responses because these nodes are not designed to fetch user responses.
Following are the different types of message nodes:
2. Text
This node is also available for voice bots.
Display a simple text with this node.
This node can be used to follow up with most of the prompt nodes. You can also display links in a text node.
Let's say a customer has paid for their order, you can use the text node to display a success message to the cutomer.
3. Image
Display any image (less than 10MB) with this node. For example, you can display welcome image to users when they open the bot.
Dynamic format for web
const imageVariable = [{
options: {
caption: {
type: 'text',
value: 'image caption here'
},
},
url: 'image_url_here'
}]
Dynamic format for WhatsApp
const imageVariable = [{
options: {
caption: {
type: 'text',
value: 'image caption here'
},
},
url: location.file.url
}]
4. Carousel
Display information using a carousel card with this node. Unlike the carousel in prompt nodes, these carousel buttons do not perform any action, nor the response can be stored in a variable.
Let's say that you own a travel website, you can display images of a specific tourist destination along with buttons to book accomodation and airport pickups.
To disable the carousel list after a button has been clicked:
Go to the Carousel node and click the settings icon.
Enable Disable action after click and click Save.
This setting will not apply to RingCentral.
5. Video
Display any MP4 video file with this node. For example, you can choose to show a demo video of how a customer can place an order on your e-commerce website.
To customize this node:
Click the tools option.
Choose the channel on the left pannel and enable the rest of the options based on your preference and click Save. By default, the video will be downloadable, and controls will be shown to users, allowing them to pause, fast forward, maximize and set playback speed.
Feature | Description |
---|---|
Hide Input | Hides the input field for the user, preventing responses to the video node. |
Hide Home Button | Hides the home button for the user. |
Thumbnail | Upload a thumbnail image for the video. |
AutoPlay | Video automatically plays without user intervention. |
Muted | Video will be muted while being played. |
Loop | Video will play in a loop. |
Show Controls | Display controls such as pause, fast forward, and mute for user interaction with the video. |
Downloadable | Allows users to download the video. |
- Video size should be lesser than 50 MB
- This node does not support Youtube links, but you can upload any commonly available video links. For example, http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4.
Dynamic format
const videoVar = {
"url": "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
"caption": {
"type": "text",
"value": "video caption"
}
}
or
const videoVar = "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
6. File
Display a file of the most common extension (JPG, JPEG, MP3, MP4, CSV, PDF, Doc, Docx, Txt, HTML, PPT, PPTX, etc.) with this node. You can display your company brochures through file node
File size limit is 15 MB.
Dynamic format
{
"file": {
"name": "Product_Manual.pdf",
"url": "https://www.antennahouse.com/hubfs/xsl-fo-sample/pdf/basic-link-1.pdf",
"urlEncoded": true/false
}
}
7. Quick Replies
Display a question along with quick reply buttons with this node. For example, the bot prompts the user with options like Technical Issue, Billing Inquiry, etc., enabling quick selection of the relevant category for their product-related query.
Unlike the Quick Replies Prompt node, a fallback message need not be configured to this nor this node is expected to follow another node.
You can send files, images and videos either by uploading them in the node or by fetching the link to it from a variable.
Variable format:
[
{
"url":"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQVRqBmDVlOF8jpQbmAcAglnp7Bxggt1JzZEw&usqp=CAU",
"options":
{
"caption":"kohli"
}
}
]
Click Fetch from and add a dynamic value - if required:
{
"title": [
"Select an option",
"Pick an option"
],
"options": [
{
"text": "cold drink",
"title": "Cold Drink",
"advancedSettings": true,
"aliases": [
"coke",
"soft drink"
],
"url": "https://www.tasty-food.com",
"postback": "post-back",
"image": "https://cdn.abc.com/coke-img.jpeg",
"textColor": "#4384f5",
"backgroundColor": "#FFFF",
"id": "quick_01d78e38b44e1915",
"analytics": {
"aevent": "test-analytics"
}
},
{
"text": "",
"title": "Btn #2",
"advancedSettings": false,
"id": "quick_d9eda393404266d4"
},
{
"text": "",
"title": "Btn #3",
"advancedSettings": false,
"id": "quick_39563a54f6889f4d"
}
]
}
8. WhatsApp List
This node does not expect any user reply, hence the fallback message need not be configured nor this node is expected to follow another node. It simply displays the list values. This node is used for interactive purposes only.
This node lets you configure the lists displayed on the WhatsApp channel. WhatsApp API provides a better UI for businesses to send List items (within a 24 hours window).
For example, a retail business can utilize this node to configure lists for WhatsApp users, showcasing new product arrivals, promotions, and featured items, leveraging WhatsApp's enhanced UI for effective engagement within the 24-hour window.
To create a WhatsApp List:
- Select WhatsApp List under Prompt Nodes.
- Populate the fields Message Body, Title and Row.
- To provide row details, click a row and populate the fields Title, Value and Description.
Click Fetch from and add a dynamic value - if required:
{
"title": "Please select your preferred slot for Appointment",
"optionText": "Appointment Slots",
"options": [
{
"section": "June 5, 2021",
"options": [
{
"title": "9am-11am",
"text": "5.9-5",
"description": "General Medicine"
},
{
"title": "12pm-2pm",
"text": "5.12-2",
"description": "Orthopedic"
},
{
"title": "2pm-4pm",
"text": "5.2-4",
"description": "Physiotherapy"
}
]
},
{
"section": "June 6, 2021",
"options": [
{
"title": "9am-11am",
"text": "6.9-5",
"description": "General Medicine"
},
{
"title": "12pm-2pm",
"text": "6.12-2",
"description": "Orthopedic"
},
{
"title": "2pm-4pm",
"text": "6.2-4",
"description": "Physiotherapy"
}
]
},
{
"section": "June 7, 2021",
"options": [
{
"title": "9am-11am",
"text": "7.9-5",
"description": "General Medicine"
},
{
"title": "12pm-2pm",
"text": "7.12-2",
"description": "Orthopedic"
},
{
"title": "2pm-4pm",
"text": "7.2-4",
"description": "Physiotherapy"
}
]
}
],
"footer": "Please follow Covid Guideline while consulting."
}
Limitations
- Maximum of 10 Buttons can be added. Multiple buttons cannot be selected in one go and are not supported in notifications.
- Character limit of Body is 1024.
- Character limit of Footer is 60.
- Character limit of Button Text and Response is 24.
- Section Title and List Headers are optional.
Click the tools icon and configure the node. For more details, see [Nodes](https://docs.yellow.ai/docs/platform_concepts/studio/build/nodes.
Configure text displayed on the bot
To beautify the text you enter in the field -bot says you can add the following.
1. Web (use HTML tags)
- Bold: <strong> baggage </strong>
- Italics: <i> italics </i>
- Hyperlink: <a href="google.com"> Google </a>
2. Whatsapp
- Bold: Message *-
- Italics: _ Message _
9. WhatsApp product message
This section helps you create a WhatsApp product messaging journey with a sample use case.
For example, craft personalized product messaging journeys on WhatsApp, such as sending automated order confirmations, shipment updates, and post-purchase feedback requests, enhancing customer experience and streamlining communication channels.
Prerequisites
The following are the prerequisites to create a catalog flow:
- Add the Catalog with required details.
- Connect the catalog to the WABA.
- Create a table and add the products from the Facebook catalogue to Yellow's database to use them while sending SPM/ MPM. Note that this step can be skipped. You can add the product IDs manually in the SPM/MPM node if your catalogue size is small.
To create a catalog journey, follow these steps -
- Use the same CSV used in the Catalog Manager to fill the bot DB. You can create a DB table with the same headers as the Data feed sheet and use it to upload all the products to the DB.
There is one limitation on Cloud DB Table creation which does not let you create a table column name with the header as ID due to the min character required for a header. You have to keep a copy of the original Feed sheet with the header as IDS and use it to upload to DB.
Here is the screenshot of a sample CSV file.
It appears in the Database as shown here.
Once the DB is ready, you can query products based on the Category/Title. Using the Variable node, you can dynamically fetch the product IDS and pass them to the SPM/MPM nodes by enabling the variable option and selecting the array of products.
Sample variable code:
[
{
"title": "Section 1",
"productIds": [
"Product 1",
"Product 2",
"Product 3"
]
},
{
"title": "Section 2",
"productIds": [
"Product 4",
"Product 5"
]
},
{
"title": "Section 3",
"productIds": [
"Product 6"
]
}
]
In the above step, you have seen how a product can be fetched based on different conditions and can be used in the SPM/MPM node. Alternatively, you can also pass the product IDs manually, as shown in the below screenshot:
To handle Cart events when a user decides to purchase a product, follow the above steps.
Purchase flow of an end-user:
- User receives the SPM on WhatsApp
- User views the products and decides to purchase it
- User clicks on Add to Cart button and selects the quantity to purchase
- The Product gets added with the quantity selected by the user
- User send the cart to the Business
Incase of invalid or rejected ProductID or ContentID passed on the node the message/product will not be sent to the user.
Once the user sends the cart, the products from the users Cart will be removed and will be sent to the Business as an events on the Bot. to recieve the Cart Event its required to enable it from the Event Hub
This event will contain the below Data in the backend which can be used for further information required on the bot to be processed.
{
"type": "event",
"event": {
"code": "whatsapp-cart",
"data": {
"order": {
"catalog_id": "619431863167996",
"product_items": [
{
"currency": "INR",
"item_price": 55,
"product_retailer_id": "YM012",
"quantity": 3
}
],
"text": "I want to buy this"
}
}
}
}
You can handle this event using a journey to carry out the next steps of the buying journey for the user as shown below.
- The Message Business option also allows for another event type to be configured. This event can be sent back to the bot as a normal message, or it can be fetched as an event to provide context about the product for which the message was sent.
Ideally, it is suggested to have a human agent routing available to help users with queries related to the product, which can be handled using NLP as well.
The Message Business will send both the message and the event to the bot if the event is active on the Event Hub. In case the event is disabled, the message can be handled using NLP, and no event will be sent to the bot for getting the context of the product query.
The event will be as below:
{
"type": "event",
"event": {
"code": "whatsapp-product-query",
"data": {
"context": {
"referred_product": {
"catalog_id": "619431863167996",
"product_retailer_id": "YM012"
}
},
"from": "919999999999",
"id": "ABEGkYcjBiJlAgo-sDGvi1C_TNRG",
"text": {
"body": "Whats the expiry date of the product?"
},
"timestamp": "1664561602",
"type": "text"
}
}
}
This completes the bot flow for the SPM/MPM feature to be handled for a basic Commerce flow.
These flows can also be created with other complex use cases with live agent support for a better user experience when the buyer wants to get a consultation or get more information on the product before purchasing.