Bot Message Handler
Messages handlers can be triggered when a bot receives a message. They can also be used by the bot creator to post messages through the bot. The creator can either choose to post the message to all the users subscribed to the bot or only to a few selected users. The attributes passed when a message handler is triggered are listed below:
Attribute Name | Description |
message | Details of the message sent to the bot, upon which the message handler is triggered. |
attachments | Attachments passed in the message. |
mentions | Details of the user/chat/bot mentioned. |
links | List of links, if any that is present in the message. |
user | Details of the user sending a message to the bot. |
chat | Details of the chat in which the message handler is triggered. |
location | Details of the current location of the user. |
Example:
An example here is the Cliq Help Bot, that can assist you with questions you might have. A simple sample syntax for the Cliq Help Bot's message handler is shown below.
//Sample Syntax for Bot Message Handler
response = Map();
contact = "[Contacts](https://www.zoho.com/cliq/help/contacts/)";
if(message.containsIgnoreCase("contacts"))
{
response.put("text","That's a really good question. Why don't you take a look at our help guide on " + contact + " !");
}
else if(message.containsIgnoreCase("Hi") || message.containsIgnoreCase("Hey"))
{
response.put("text","Hey *" + user.get("first_name") + "* ! How can I help you today?");
}
else
{
response.put("text","I'm sorry, I am not able to help you with this question. :sad: ");
}
return response;
Using suggestions in the bot message handler
Bot suggestions can be triggered by using the suggestions object in the bot message handler. These suggestions are prompted when a user enters a message corresponding to the text defined in your handler code. The suggestions are displayed as options, and on click from the user, the button option text is returned as a response.
Note: A bot suggestions list can show a maximum of 10 suggestions.
Sample structure of the suggestions object in bot message handler :
The entry map can have two parameters :
Parameter | Description |
text | String. Use this param to give the option text. |
icon | Image URL. This param can be used to give an icon/image to the option. |
list = List();
entry = Map();
entry.put("text","");
entry.put("icon","");
list.add(entry);
Example
The above-given use case can be simplified using the suggestions object in the bot message handler.
response = Map();
if(message.containsIgnoreCase("Help"))
{
suggestions = Map();
list = List();
entry = Map();
entry.put("text","Contacts");
list.add(entry);
entry1 = Map();
entry1.put("text","Channels");
list.add(entry1);
response.put("text","Hey " + user.get("first_name") + " ,choose one option from the list! I can help you with these. :smile:");
suggestions.put("list",list);
response.put("suggestions",suggestions);
}
else if(message.containsIgnoreCase("Contacts"))
{
response.put("text","Contacts are users who accept your invites and vice versa. Learn more about contacts [here](https://www.zoho.com/cliq/help/contacts/)");
}
else if(message.containsIgnoreCase("Channels"))
{
response.put("text","Channels is a platform for groups to share information! See our help page on [Channels](https://www.zoho.com/cliq/help/channels/)");
}
else
{
response.put("text","I'm sorry. I can't help you with this. Try typing *Help* :upset:");
}
return response;
When a user selects an option from the bot suggestions, the selected entity will be return as a message input.
Articles:
Cliq Bots - How to make a bot respond to your messages?
Read this form post on how to use bot suggestions and configure the bot message handler!