Cliq Bots - Let your bot welcome it's subscribers via the welcome handler

Cliq Bots - Let your bot welcome it's subscribers via the welcome handler

In this post, we're going to shed light on how important it is for a bot to greet subscribers with a welcome message. We'll also be looking at how to configure a simple yet effective welcome handler! 

A welcome message is the first and the most important action / interaction performed by your bot. But why is it so important? 
  • A message that explains the user what the bot does will provide them with a concrete understanding of how the bot can help them. 
  • Including a call to action, such an instant button in the message will show the user how easy it is to interact with the bot.
Working of the bot welcome handler 

The bot welcome handler will be triggered to send a message when a user subscribes to a bot. Another interesting fact is that, the handler can also send a message to a user if they unsubscribe and subscribe to the bot again! There are a list of attributes passed when a welcome handler is triggered. Take a look at them in our welcome handler help page. 

Sample Scenario

Let us try to build a conference bot with a welcome message explaining the user on what the bot does and a call to action. Assuming the conference has a hackathon event where participants are encouraged to build applications. The welcome handler should serve the following purposes : 

  • The welcome message will explain all the necessary details- about the verticals available, how to get started with their application, so on and so forth. 
  • A call to action for the user to select their choice of vertical under which they can submit the application. 
  • Each entry from the user will be added to the creator form to maintain a record.
Sample Welcome Handler Code

  1. response = Map();
  2. response = {"text":" Hey *" + user.get("first_name") + "* !​ \n Welcome to ZylCal Developers Conference -2017 and thank you for subscribing! I'm here to help you with the following : \n ​​  Session Timings \n ​  Session Overview \n ​​  Feedback \n ​​  ZylCal Hackathon \n Click on any of the buttons know more about the respective topics! [+Sessions](invoke.function|conference|li.jung@zylker.com|session-1)  [+Hackathon](invoke.function|conference|li.jung@zylker.com|hack-2)"};
  3. return response;

Sample Functions Execution Code

  1. response = Map();
  2. message = Map();
  3. button_name = target.get("name");
  4. key = arguments.get("key");
  5. // details = zoho.creator.getRecords("<app_creator_name>","<application_name>","<form_name>","<condition>",1,1,"<insert_connection_name> ", <user_access>);

  6. details = zoho.creator.getRecords("lijungdeveloper","test","Sessions_Report","ID1 == 100",1,1," <insert_connection_name> ",true);
  7. if(key.matches("session-1"))
  8. {
  9. overview = details.toMap().get("Session_Overview");
  10. feedback = details.toMap().get("Feedback");
  11. response = {"text":" Please refer the session information (Details, Timings) from here! \n Session Overview: " + overview + " \n Feedback: " + feedback,"bot":{"name":"ZylCal Conf Bot","image":" <insert_bot_image_url> "}};
  12. }
  13. else if(key.matches("hack-2"))
  14. {
  15. response = {"text":"The hackathon event involves developing applications under any of these categories. Select any category to register with your name and email ID. \n [+Productivity](invoke.function|conference|li.jung@zylker.com|101)  [+IT-Admin](invoke.function|conference|li.jung@zylker.com|102) [+Entertainment](invoke.function|conference|li.jung@zylker.com|103)","bot":{"name":"ZylCal Conf Bot","image":" <insert_bot_image_url> "}};
  16. }
  17. else if(key.matches("101"))
  18. {
  19. dataMap = {"Resp":target.get("name"),"zuid":user.get("email")};
  20. record = zoho.creator.createRecord("lijungdeveloper","test","Hackathon",dataMap,"zohocreator2",true);
  21. response = {"text":"Awesome! Your name has been registered under the *" + target.get("name") + "* category! All the best. :grinning:","bot":{"name":"ZylCal Conf Bot","image":" <insert_bot_image_url> "}};
  22. }
  23. else if(key.matches("102"))
  24. {
  25. dataMap = {"Resp":target.get("name"),"zuid":user.get("email")};
  26. record = zoho.creator.createRecord("lijungdeveloper","test","Hackathon",dataMap,"zohocreator2",true);
  27. response = {"text":"Awesome! Your name has been registered under the *" + target.get("name") + "* category! All the best. :grinning:","bot":{"name":"ZylCal Conf Bot","image":" <insert_bot_image_url> "}};
  28. }
  29. else if(key.matches("103"))
  30. {
  31. dataMap = {"Resp":target.get("name"),"zuid":user.get("email")};
  32. record = zoho.creator.createRecord("lijungdeveloper","test","Hackathon",dataMap,"zohocreator2",true);
  33. response = {"text":"Awesome! Your name has been registered under the *" + target.get("name") + "* category! All the best. :grinning:","bot":{"name":"ZylCal Conf Bot","image":" <insert_bot_image_url> "}};
  34. }
  35. else
  36. {
  37. response = {"text":"I can only help you with these right now! To know any other information please contact support@zylcal.com"};
  38. }
  39. post = zoho.cliq.postToChat(chat.get("id"),response);
  40. return message;


The slide show below will give a better understanding of the sample execution!




The welcome handler sets an opening tone to the bot and also establishes a connection between the user and the bot. Try using this sample code snippet and let us know what you think! Comments and suggestions are welcome. 


Few useful links:




Best,
Manasa
Cliq
    • Sticky Posts

    • Customer payment alerts in Zoho Cliq

      For businesses that depend on cash flow, payment updates are essential for operational decision-making and go beyond simple accounting entries. The sales team needs to be notified when invoices are cleared so that upcoming orders can be released. In contrast,
    • Automating Employee Birthday Notifications in Zoho Cliq

      Have you ever missed a birthday and felt like the office Grinch? Fear not, the Cliq Developer Platform has got your back! With Zoho Cliq's Schedulers, you can be the office party-cipant who never forgets a single cake, balloon, or awkward rendition of
    • Accelerate Github code reviews with Zoho Cliq Platform's link handlers

      Code reviews are critical, and they can get buried in conversations or lost when using multiple tools. With the Cliq Platform's link handlers, let's transform shared Github pull request links into interactive, real-time code reviews on channels. Share
    • App Spotlight : PagerDuty for Zoho Cliq

      App Spotlight brings you hand-picked apps to enhance the power of your Zoho apps and tools. Visit the Zoho Marketplace to explore all of our apps, integrations, and extensions. In today's fast-paced world, seizing every moment is essential for operational
    • Automate your status with Cliq Schedulers

      Imagine enjoying your favorite homemade meal during a peaceful lunch break, when suddenly there's a PING! A notification pops up and ruins your moment of zen. Even worse, you might be in a vital product development sprint, only to be derailed by a "quick