Building blocks & steps
In our flow builder, if you right click anywhere in the flow builder, you will see the building blocks that we offer:
Send message
After creating your first flow, open it, click “Edit Flow”, have your bot side by side and here we go! 😆
Let’s take Facebook as an example. Other flows share similar processes where the main difference is message type.

A few simple steps to send out your first message:
- click the green start point
- in the edit panel, “Select Next Step”
- choose “Send Message” step
- click the “Send Message” step
- click text type message
- enter your message
- “Publish”

That’s it! Let’s test!

Click “Preview” from the navigation bar and “Open the flow in Messenger”. Click “Get Started” if it’s the fist time you talk to the bot.
💡 Preview Feature - Please note that “Preview” feature is not supported in all channels. Channels support “Preview”: Facebook, Telegram, WhatsApp, Line and Viber. For channels without Preview, search “talk to bot” in the documentation for guidance.
Congrats! Your bot is working now. 🤖🤖
Let me show you some more details about Send Message step. These are the message type in common for all/some of the Channels.
Send text / Variable

Messagingme.app has integrated with Grammarly to help you get your expression perfect.

Insert Custom Field Value and Emoji
Wherever you see ”</>”, you can insert emojis or variable values to the text.

Or simply type ”{{” to call the field list:

Send Image / Audio / Video / File
There are 4 ways in total:

• upload from your computer (size limited)
| Media Type | Maximum Upload Size |
|---|---|
| video | 10MB |
| audio | 5MB |
| file | 5MB |
| others(e.g. image) | 2MB |
-
From a URL link (recommended)
You can search pictures online and copy their direct URL links. But this direct link might change. Alternatively, you can upload photos to your server or other third-party photo storages like Imgur:, then get your direct URL links from that. Direct URL link means the link is pointing to a specific photo, not a website, ending with .jpg or .png, etc. Take the link in the above picture for an example.
-
search from GIFs gallery
UChat provides you with a GIFs gallery, you can search what you need here.
-
from Library
Library is the place you can see all the photos, GIFs, audios and videos you have uploaded before. So that you don’t need to re-upload the same media, just find them in your library.
Send Card

Card is used to display a serious of information nicely like product information. There are 4 factors in a card, picture, title, subtitle and button.
💡 Please note that to show a card, you must have a title and at least one other factor, picture, subtitle or button.
If you want to send card in WhatsApp channel, you will need to create “Carousel Template” and then use “Carousel template” instead.
Send “For Each”
This message type is also showing cards but in a more automatic way. With “For Each”, you don’t need to type in each card yourself. It automatically displays all items in a JSON variable. Check Action step / JSON operation if you have no idea about what is JSON variable.

- choose a JSON variable first
- click ”</>” or type ”{{” in the text box
- choose “ITEM” to get a sample item from the JSON variable
Value in the JSON variable:

Value in “ITEM”:

The “Sample data” is to quickly fill in the “JSON Path” field. For example, as shown in the picture, click the “price” row, and “$.price” appears in the “JSON Path” itself. This means that, we are displaying the price of each item here. If there is no sample data prompted, you can fill in the path yourself by typing ”$.”, which refers to each item in the JSON variable, followed by the key of a value.
Value Format
Moreover, for numbers like percentage and price, for date value and time value, UChat has different formats listed for you. For example, in the above picture, the price value is “5” and after choosing a “F03” format, the bot will display it as “$5”. While the value in the variable is still the number “5” so that you are able to use it in math calculation or condition comparison without malfunction.
Hidden Keys
Great! Now you see how to use the “For Each”. Apart from the keys in the JSON variable, there are 3 hidden key you might need:

| Key Name | Description |
|---|---|
| INDEX | index of the item started from 1 |
| KEY | key name of the item |
| VALUE | value of the item = the item itself |
INDEX Example
When you have a JSON with a list of JSONs in it, use INDEX for checking the sequence number of an item. Let’s add an index number before the item name:

Testing result:

KEY/VALUE Example
When you have a JSON as shown in the following picture instead of a JSON holding a list of JSONs,

These are what you will get by using the three keys:


Testing result:

Send SELECT after “For Each”
When you add a button to your “For Each”, the button is going to show with every card. Usually, you might want to put a “Buy” or “Select” button here in the case that you are listing some products or options.
How does the the bot know that which card did the user select?

When you select next step for the button, choose “Select”:

Then select a next step as you usually do, like a Send Message Step to show the selected item or Action Step to deal with the data. You can then access the selected item in “SELECT”:

For example, let’s add a Send Message step, find the system field “SELECT”:

- click the row “item” to get the path “$.item” or type in the path directly
- in the JSON path, add key name if needed. In this case, let’s show the name of the selected item. So add “.name” after the path.


You will see this when you test it:

Send Dynamic Content
Dynamic Content helps you send out an API request, to your server or a third-party server, in order to get a response to display. The server can reply differently each time. In this way, your bot is able to display dynamic content to your users.
This feature is practical when your bot logic is complex and rely heavily on other servers.
For example, you have your own AI algorithm to analyze users’ questions and calculate corresponding response on your server, in this case, you can send the question in the API request. And the server can generate a response based on the question. Finally, the server send the response back to UChat to display to your users.
A response message can contain several messages, buttons and quick replies with actions. You can even apply simple actions like add tag directly in the response JSON.
- Check Action Step - External Request for how to send an API request,
- and Response Format for message formatting guidance.
Send Location

To send a location, search it on a map, then right-click it to copy its latitude and longitude values:

Enter your location name, paste the data and add a label if needed. A label gives additional information like floor or room number.

Send Ecommerce Product
Check Ecommerce for how to setup and use built-in ecommerce system.
Send Message Debug Text
The Send Message Debug feature is designed to facilitate debugging for chatbot builders by providing an easy way to send debug messages specifically to testers.
Accessing Debug Text:
Navigate to the Send Message and select Debug Text

Adding testers
- Navigate to Tools -> Testers-> New Tester
- Identify the user(s) who will serve as testers for your chatbot.
- Add the user(s) to the testers list.

Sending Debug Messages:
- Once the testers are added, trigger the flow preview where you have incorporated the Send Message Debug Text.
- During the preview, the debug text will be visible to the added testers.
Facebook Channels
Send Message
Facebook allows the bot to send texts with 3 buttons and 10 quick replies at most.
Send Text with Button & Quick Reply

The difference between button and quick reply on Facebook Messenger:
| Type | Usage |
|---|---|
| button | once sent, always in the conversation to be pressed |
| quick reply | similar to button, but disappear when used |
Try to add some buttons, quick replies and test it. You will see their differences.
WeChat Channel
Send Message
WeChat allows the bot to send texts with 10 buttons at most. Message type with WeChat:

Send Article

This is how it looks like in the chat:

Send Mini Program
You can also send mini-programs that associates with your official account.

WhatsApp Channel
Send Message
Message types with WhatsApp:

Button in WhatsApp is a bit different from that in Facebook. A button in Facebook can be pressed for multiple times while in WhatsApp, only once.
Supported Message Types
Messagingme.app supports sending the following types of WhatsApp messages:
- Template Message: Pre-defined messages approved by WhatsApp. Users can create new templates directly in UChat or sync existing approved templates.
- Single Product Message: Showcases a single product from a Facebook Catalog. Requires a Facebook Catalog ID and Retail ID.
- Multiple Products Message: Showcases up to 30 products from a Facebook Catalog. Requires a Facebook Catalog ID and separates products with commas.
- Catalog Message: Displays a list of products from a Facebook Catalog. Requires a Retail ID, body text, and footer.
- List Message: Presents a list of options for users to choose from. Requires capturing the user’s selection and directing the flow based on the chosen option.
- WhatsApp Flow: Create a WhatsApp flow to automate the sending of messages and interactions with users.
Note: Linking your WhatsApp number with your Facebook Catalog is mandatory for sending product-related messages (Single Product, Multiple Products, and Catalog Message).
Sending a Template Message
- Create or Sync Template: In the Bot Content section of UChat, you can create a new template directly under “Message Templates” in UChat or sync existing approved templates by clicking the “Sync” button.

2 Use in Flow: In “Mensage node” select “Others” and the “(WhatsApp) Template Message” into your Messagingme.app flow.

3 Select Template: Choose the desired template from the dropdown menu.

- Personalize (Optional): If the template includes variables, you can personalize the message content.
Sending Single Product Messages
- Facebook Catalog Requirement: You need a Facebook Catalog for these message types.
- Use in Flow: In “Mensage node” select “Others” and the “(WhatsApp) Single Produtct” into your Messagingme.app flow.Catalog ID & Retail ID:

- Catalog ID & Retail ID:
- Locate your Facebook Catalog ID.
- Identify the Retail ID, which is the content ID for your product catalog feed.
- Insert your Message Informations: Provide the Retail ID, message body text, and footer text for your Catalog Message.

Note: You need link your WhatsApp number with your Facebook Catalog before sending product messages.
Sending Multiple Product Messages
- Facebook Catalog Requirement: You need a Facebook Catalog for these message types.
- Use in Flow: In “Mensage node” select “Others” and the “(WhatsApp) Multiple Products” into your UChat flow.

- Catalog ID & Retail ID:
- Locate your Facebook Catalog ID.
- Identify the Retail ID, which is the content ID for your product catalog feed.
- Insert your Message Informations: Provide the Retail ID, message body text, header and footer text for your Catalog Message.

Note: You need link your WhatsApp number with your Facebook Catalog before sending product messages.
Sending a Catalog Message
- Use in Flow: In “Mensage node” select “Others” and the “(WhatsApp) Catalog Message” into your Messagingme.app flow.]

- Catalog ID & Retail ID:
- Locate your Facebook Catalog ID.
- Identify the Retail ID, which is the content ID for your product catalog feed.
- Insert your Message Informations: Provide the Retail ID, message body text, and footer text for your Catalog Message.

Sending a List Message
- Use in Flow: In “Mensage node” select “Others” and the “(WhatsApp) List Message” into your Messagingme.app flow.

- Define List Items: Select the list items you want to include in your List Message.

- Capture User Selection: It’s crucial to capture the user’s chosen option from the list.

- Conditional Routing: Use a Condition Block to check the user’s selection and direct the flow accordingly.

Note: Steps 2-4 for List Messages are essential to ensure proper flow based on user interaction.
Sending a WhatsApp Flow Message
- Use in Flow: In “Mensage node” select “Others” and the “(WhatsApp Cloud) WhatsApp Flow” into your Messagingme.app flow.

- Set the WhatsApp flow to be sent.

Note: See the WhatsApp Flow creation documentation
Warning: Do not use the action node to send templates to bot users, this will generate a “forbidden action” error. To do this, use the message node.

SMS Channel
Send Message
SMS bot can send only text and image.

Voice Channel
Send Message
Send Text / Audio

You can have the bot read out the text with a specified language or record your own audio and upload it.
In the voice channel, you can also provide a audio url directly in the send message node.
You need to make sure the audio url is publicly accessible, it should start with https, and end with .mp3
You can also use the same audio url directly in the question node.
Support message types
Different social channels support different message types. here is a list of social channels and a list of message types they support.
| Messages | Question | |
|---|---|---|
| Facebook Messenger | Cards; image; Audio, Video, File, Location, product, shopping cart, dynamic content; delay; facebook feedback; One time notification, recurring daily; recurring weekly; recurring monthly | Text, number, email, URL, phone number, date, date time, multiple choice, image, audio, video, file. |
| Text, Cards, image, dynamic content, product, shopping cart, for each, delay | Text, number, email, URL, phone number, date, date time, multiple choice, image, audio, video, file. | |
| Telegram | Text, Cards, image, Sticker, audio, video, file, location, dynamic content, product, shopping cart, for each, delay | Text, number, email, URL, phone number, date, date time, multiple choice, image, audio, video, file, location |
| Google Business Messenger | Text, cards, image, audio, video, file, location, dynamic content, product, shopping cart, for each | Text, number, email, URL, phone number, date, date time, multiple choice |
| Slack | Text, cards, image, audio, video, file | Text, number, email, URL, phone number, date, date time, multiple choice, image, file |
| SMS | Text, image | Text, number, email, URL, phone number, date, date time, multiple choice |
| Voice | Text, audio | Speech, DTMF, record, transfer, payment |
| Text, image, audio, video, file, wx_news, mini card | Text, number, email, URL, phone number, date, date time, multiple choice, image, audio, video, file, location | |
| Text, cards, image, sticker, audio, video, file, location, dynamic content, product, shopping cart, for each, template message, product catalog message | Text, number, email, URL, phone number, date, date time, multiple choice, image, audio, video, file, location | |
| Intercom | Text, image, audio, video, file, location | Text, number, email, URL, phone number, date, date time, multiple choice, image, file |
| Jivo Chat | Text, image, audio, video, file, location | Text, number, email, URL, phone number, date, date time, multiple choice, image, file |
| Chatwoot | Text, cards, image, audio, video, file, location, dynamic content, product, shopping cart, for each | Text, number, email, URL, phone number, date, date time, multiple choice, image, file, audio, video |
| Line | Text, cards, image, audio, video, location, dynamic content, product, shopping cart, for each | Text, number, email, URL, phone number, date, date time, multiple choice, image, file, audio, video, location |
| Viber | Text, cards, image, audio, video, file, location, dynamic content, product, shopping cart, for each | Text, number, email, URL, phone number, date, date time, multiple choice, image, file, audio, video, location |
| Web Chat/Omni channel | Text, cards, image, sticker, audio, video, file, location, dynamic content, product, shopping cart, for each, template message, product catalog message, Facebook feedback; One time notification, recurring notification(daily, weekly, monthly) | Text, number, email, URL, phone number, date, date time, multiple choice, image, file, audio, video, location |
| VK | Text, cards, image, audio, video, file, location, dynamic content, product, shopping cart, for each | Text, number, email, URL, phone number, date, date time, multiple choice, image, file, audio, video, location |
Question step
Basic concept of Question Step

Set Quick Answers
Quick answers are convenient for users to click rather than typing. When you set quick answer:

“Answer Text” is shown to users while “Answer Value” is saved to the variable.
💡 You can set quick answers across all channels. However, some channels display the quick answers as buttons for pressing like Facebook, while some don’t such as SMS. For the latter case, you can still set quick answers but at the same time, you will need to prompt that how to trigger the quick answers.
How to give prompt and set quick answers?
In the question box, for example, put “reply 1 for service A, reply 2 for service B”, etc. Then in the quick answer, set “Answer Text” to be “1”, “2”, etc for matching, and “Answer Value” to be “service A”, “service B”, etc to save user’s option.
| Channel | How to Provide Quick Answers |
|---|---|
| quick answers will be displayed as buttons | |
| Telegram | quick answers will be displayed as buttons |
| use buttons instead of quick answer or give prompt | |
| quick answers will show in “Select Option” | |
| SMS | give prompt |
| Voice | give prompt and use Speech question or DTMF question to ask for keypad/voice input |
| quick answers will be displayed as buttons |
How does the matching work in quick answers?

Once the user’s input contains one of the “Answer Text”, the quick answer is matched (non case-sensitive). Plus, the order of those quick answers matters because the bot will check in order. Once a quick answer matched, it will stop the matching.


Skip Button
Add skip button if the question is ok to skip. Also, the label of the skip button is editable.
No Match

“No Match” is a very practical feature because different answer types have different specified patterns. Email address, for example, has to be “xxx@xx.xx”. You can put something like “Wrong email, please try again” as your retry message and jump to another step if no match on several times.
However, a “xxx@xx.xx” format just filters out wrong email but fake email. To check whether an email is real or not, try Mini-App for using a third-party verification tool.
No Input
Similarly, “No Input” helps you redirect the flow when user input expires. By default, a question expires in 1 hour. Make it shorter if needed.

Different type of question types
Rich Media
Ask for Image / Audio / Video / File / Record

When the user uploads a document, an URL link pointing to the document is saved in the variable rather than the document itself. Because media document can be very large. Later, if you want to send that document in send message step, you will need to choose “Send Media From URL” and type in the variable there.

Ask for Choice
This is a question type listing limited quick answers and user have to choose only from these quick answers. For example, when choosing property type, list only house, townhouse and apartment as quick answers. Therefore, if the user doesn’t click one of these three, a retry message appears.
Ask for Date / Datetime
💡 Except from Facebook Messenger and Google My Business, the rest channel doesn’t have a date picker when user makes Date/Datetime input. So you have to prompt users “Please input the Date / Datetime as exactly the format: YYYY-MM-DD / YYYY-MM-DD hh:mm:ss”. Any other format won’t be recognized successfully.
Ask for Phone
The basic validation for Phone number Question is:
- only these 11 characters are allowed: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +.
- ”+” sign is only allowed in the front of the phone
- more than 6 characters
Ask for Email
The basic validation for email is:
- the value need to have @
- the value need to have .
Ask for Location
This is the unique question format for WhatsApp channel. Currently it’s only support on-premise WhatsApp numbers.
Once this is triggered, WhatsApp will request access to the user’s current location, and if the user shared the current location, the latitude & longitude will save into the user custom field you have defined.

Voice Channel
Question Step in Voice Bot

💡 You can always put a URL link pointing to your mp3 file in the text box (started with “https://” and ended with “.mp3” or “.mav”) of a Send Message Step or Question Step. In that way, the bot will play the audio file instead of transferring the text to audio.
💡 You can put the link directly in the text box or store the link in a text variable. You can also combine audio URL with text when you use it. But remember that don’t let the URL and text connect to each other, because the system cannot recognize it as an audio URL link. See screenshot below.

Voice Bot - Ask for Speech
Speech is usually used to get short answers. When the bot asks for speech input, it will listen to what the user says and convert the speech to text with a confidence score. The score is between 0 and 1. The closer to 1, the more confident the speech analysis was.
💡 You might want to add a Condition step to discard any conversion with low confidence. For example, when the confidence score is less than 0.7, ask for re-input.
Use “Advanced Settings” to help improve the conversion:

Select correspond speech model and language. “Numbers and Commands” speech mode can help improve the recognition rate when the answer is a string of numbers, etc. Please note that, Twilio charges for using this mode. More importantly, provide the bot with some hints, keywords that might appear in speech (separated by commas and no space).
Voice Bot - Ask for DTMF (Keypad)
DTMF refers to keypad input, including number 0 to 9, * and #. Usually, it is used to make a main menu for your voice bot, just like what you might hear before “Hi, press 1 for xxx, press 2 for xxx, …”

“Number of Digits” means how many digits to expect. For example, a credit card number needs 14 or 16 digits while a postcode needs 4 or 6 digits.
“Stop Key” is set to ”#” by default, but it is also editable. You will need “Stop Key” when you don’t know how many digits to expect. Don’t forget to mention the “Stop Key” in the question box. 🤖🤖
💡 “No Input” timeout in Voice Question plays an important role. Often, it will be set to just few seconds while in other channels, the default timeout is 1 hours.
Voice Bot - Ask for Record

Again, same as asking for picture, audio, video or file, you will need a text variable to save the URL link of the record file. Check advanced settings for more details such as “Stop Key” and “Max Record Duration”.
You will be able to access the record file through the URL link or manually from the “Recordings” section shown as below:

Here you can see all your “Record Question” and “Transfer” recordings with a “Play” button to play the audio.
Voice Bot - Ask for Transfer
The transfer feature is more like an Action rather than a Question. Since actions in the Action step are shared across all the channels, we put transfers in Question steps.

💡 The transfer number should be in E164 format. e.g. +61412345678
You can record the conversation after transferring for training purposes, etc. Similarly, check the recording from the “Recordings” section from the left sidebar.
Hang up Calls
One thing to mention, if your clients need to come back to the bot after the transferred conversation. There are 2 ways to do so:
- the transferred party hang up first
- your clients press the star key (need to enable the option in advanced settings)
In either way, don’t forget to mention it to your clients before the transfer.
Add Extension to Phone Number
Add extension to a phone number by using a hash key. e.g. +61412345678#wwww1234. Each “w” will wait for half a second.
Let say I have a voice bot for the number +61412345678, and I put a DTMF question after the Start point of the main flow. The extension “1234” will be considered as the input for this DTMF question. In this way, you are routing the calls automatically.
Transfer to Multiple Numbers
You can put multiple numbers in the “Transfer To Phone Number” field, separated by ONLY commas. e.g. +61412345678,+61412345679#wwww1234,+61412345670
The bot will call these 3 numbers simultaneously, the first person who answers the call get this transfer, the rest call stops ringing. Your phone number provider will only charge you for one call because only one number is transferred successfully.
Voice Bot - Ask for Payment
The payment feature is more like an Action rather than a Question.


PCI Mode (Twilio)
For Twilio users, you will need to enable the PCI mode in your Twilio account to capture a payment either in test or live mode.
Search “Voice Settings” from your account,

click the “Enable” button:

Edit Prompts
All prompts are already set in English. Feel free to change it if needed like changing to another language. There are 4 pieces of information to gather for a card.
- credit card number
- expiration date
- CVV
- postcode (if needed, enable the option in advanced settings).
Each information has 3 speeches to set, asking, timeout and invalid:

Payment Connector
To get a “Payment Connector”, which is “Unique connector ID”, you will need to access your phone number provider and payment service provider. Twilio and Stripe, for example, go twilio.com, follow step 1 to 4 in the following 2 pictures:



Install, name a “UNIQUE NAME” yourself and click “Connect with Stripe”. This “UNIQUE NAME” is then your “Unique connector ID”, copy it back to Messagingme.app.

💡 Note that for “MODE”, choose “test” when you are testing the payment process and choose “live” when you are ready to accept real payment.
Charge Amount
Put direct number like “99.99” or a number variable here.
Response
You will need a JSON variable to hold the payment result. This is a response example including some card details, confirmation code and payment result.

Payment Fail
You can deal with the situation via the “Payment Fail” option. For example, send “Something went wrong” and goto the Payment Step again.
One Time Token
You can choose to capture a payment right now or later.
If you decide to charge right away:give a value more than 0 in the “Charge Amount” box
- If you wanted to get the payment later
put a “0” in the “Charge Amount” box. In this way, you will get a token for future capture.
💡 There are 2 types of token, one-time token and reusable token. With a one-time token, you can charge the client once. While with a reusable token, you can charge the client for multiple times.
Under the situation that you set the charge amount to “0”, if you enable the “One Time Token” option in advanced settings, you will get a one-time token. Otherwise you get a reusable token.
By different combinations of charge amount and “One Time Token” option, you will get different payment results
That means, whenever you set a charge amount greater than 0, it doesn’t matter whether you enable the One Time Token option or not, you will charge your client right away and get a payment confirmation code. The code starts with “ch_” if you are using Twilio.
On the other hand, an one-time token starts with “tok_” if you are using Twilio. And a reusable token refers to customer’s ID, starting with “cus_” if you are using Stripe.
How to Charge with Token
Check the documentation of how to create a charge with your payment service provider. Let’s take Stipe as an example, to make a payment with a reusable token.

In the example, a post request is sent to Stripe with a testing API key and a charge amount, currency and the reusable token, i.e. the customer ID.

After hitting the test button, this is the response if succeed:

In the response you can see there is an id started with “ch_”, which is the payment confirmation code. That means, you’ve successfully made a payment.
Description
“Description” is submitted along with the payment details. For example, you can put “Payment of $20.52 submitted from Phone Number (xxx)-xxx-xxxx” to create a record to show which call created the payment.
A Credit Card for Testing
Use the following card details for testing if needed:
Credit card number: 4242 4242 4242 4242
Expiry date (MM/YY): 12 25 (pick a date in the future)
Zip code: 94105
CVC security code: 333

Set Quick Answers
Quick answers are convenient for users to click rather than typing. When you set quick answer:

“Answer Text” is shown to users while “Answer Value” is saved to the variable.
💡 You can set quick answers across all channels. However, some channels display the quick answers as buttons for pressing like Facebook, while some don’t such as SMS. For the latter case, you can still set quick answers but at the same time, you will need to prompt that how to trigger the quick answers.
How to give prompt and set quick answers?
In the question box, for example, put “reply 1 for service A, reply 2 for service B”, etc. Then in the quick answer, set “Answer Text” to be “1”, “2”, etc for matching, and “Answer Value” to be “service A”, “service B”, etc to save user’s option.
| Channel | How to Provide Quick Answers |
|---|---|
| quick answers will be displayed as buttons | |
| Telegram | quick answers will be displayed as buttons |
| use buttons instead of quick answer or give prompt | |
| quick answers will show in “Select Option” | |
| SMS | give prompt |
| Voice | give prompt and use Speech question or DTMF question to ask for keypad/voice input |
| quick answers will be displayed as buttons |
How does the matching work in quick answers?

Once the user’s input contains one of the “Answer Text”, the quick answer is matched (non case-sensitive). Plus, the order of those quick answers matters because the bot will check in order. Once a quick answer matched, it will stop the matching.


Skip Button
Add skip button if the question is ok to skip. Also, the label of the skip button is editable.
No Match

“No Match” is a very practical feature because different answer types have different specified patterns. Email address, for example, has to be “xxx@xx.xx”. You can put something like “Wrong email, please try again” as your retry message and jump to another step if no match on several times.
However, a “xxx@xx.xx” format just filters out wrong email but fake email. To check whether an email is real or not, try Mini-App for using a third-party verification tool.
No Input
Similarly, “No Input” helps you redirect the flow when user input expires. By default, a question expires in 1 hour. Make it shorter if needed.

Different type of question types
Rich Media
Ask for Image / Audio / Video / File / Record

When the user uploads a document, an URL link pointing to the document is saved in the variable rather than the document itself. Because media document can be very large. Later, if you want to send that document in send message step, you will need to choose “Send Media From URL” and type in the variable there.

Ask for Choice
This is a question type listing limited quick answers and user have to choose only from these quick answers. For example, when choosing property type, list only house, townhouse and apartment as quick answers. Therefore, if the user doesn’t click one of these three, a retry message appears.
Ask for Date / Datetime
💡 Except from Facebook Messenger and Google My Business, the rest channel doesn’t have a date picker when user makes Date/Datetime input. So you have to prompt users “Please input the Date / Datetime as exactly the format: YYYY-MM-DD / YYYY-MM-DD hh:mm:ss”. Any other format won’t be recognized successfully.
Ask for Phone
The basic validation for Phone number Question is:
- only these 11 characters are allowed: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +.
- ”+” sign is only allowed in the front of the phone
- more than 6 characters
Ask for Email
The basic validation for email is:
- the value need to have @
- the value need to have .
Ask for Location
This is the unique question format for WhatsApp channel. Currently it’s only support on-premise WhatsApp numbers.
Once this is triggered, WhatsApp will request access to the user’s current location, and if the user shared the current location, the latitude & longitude will save into the user custom field you have defined.

Voice Channel
Question Step in Voice Bot

💡 You can always put a URL link pointing to your mp3 file in the text box (started with “https://” and ended with “.mp3” or “.mav”) of a Send Message Step or Question Step. In that way, the bot will play the audio file instead of transferring the text to audio.
💡 You can put the link directly in the text box or store the link in a text variable. You can also combine audio URL with text when you use it. But remember that don’t let the URL and text connect to each other, because the system cannot recognize it as an audio URL link. See screenshot below.

Voice Bot - Ask for Speech
Speech is usually used to get short answers. When the bot asks for speech input, it will listen to what the user says and convert the speech to text with a confidence score. The score is between 0 and 1. The closer to 1, the more confident the speech analysis was.
💡 You might want to add a Condition step to discard any conversion with low confidence. For example, when the confidence score is less than 0.7, ask for re-input.
Use “Advanced Settings” to help improve the conversion:

Select correspond speech model and language. “Numbers and Commands” speech mode can help improve the recognition rate when the answer is a string of numbers, etc. Please note that, Twilio charges for using this mode. More importantly, provide the bot with some hints, keywords that might appear in speech (separated by commas and no space).
Voice Bot - Ask for DTMF (Keypad)
DTMF refers to keypad input, including number 0 to 9, * and #. Usually, it is used to make a main menu for your voice bot, just like what you might hear before “Hi, press 1 for xxx, press 2 for xxx, …”

“Number of Digits” means how many digits to expect. For example, a credit card number needs 14 or 16 digits while a postcode needs 4 or 6 digits.
“Stop Key” is set to ”#” by default, but it is also editable. You will need “Stop Key” when you don’t know how many digits to expect. Don’t forget to mention the “Stop Key” in the question box. 🤖🤖
💡 “No Input” timeout in Voice Question plays an important role. Often, it will be set to just few seconds while in other channels, the default timeout is 1 hours.
Voice Bot - Ask for Record

Again, same as asking for picture, audio, video or file, you will need a text variable to save the URL link of the record file. Check advanced settings for more details such as “Stop Key” and “Max Record Duration”.
You will be able to access the record file through the URL link or manually from the “Recordings” section shown as below:

Here you can see all your “Record Question” and “Transfer” recordings with a “Play” button to play the audio.
Voice Bot - Ask for Transfer
The transfer feature is more like an Action rather than a Question. Since actions in the Action step are shared across all the channels, we put transfers in Question steps.

💡 The transfer number should be in E164 format. e.g. +61412345678
You can record the conversation after transferring for training purposes, etc. Similarly, check the recording from the “Recordings” section from the left sidebar.
Hang up Calls
One thing to mention, if your clients need to come back to the bot after the transferred conversation. There are 2 ways to do so:
- the transferred party hang up first
- your clients press the star key (need to enable the option in advanced settings)
In either way, don’t forget to mention it to your clients before the transfer.
Add Extension to Phone Number
Add extension to a phone number by using a hash key. e.g. +61412345678#wwww1234. Each “w” will wait for half a second.
Let say I have a voice bot for the number +61412345678, and I put a DTMF question after the Start point of the main flow. The extension “1234” will be considered as the input for this DTMF question. In this way, you are routing the calls automatically.
Transfer to Multiple Numbers
You can put multiple numbers in the “Transfer To Phone Number” field, separated by ONLY commas. e.g. +61412345678,+61412345679#wwww1234,+61412345670
The bot will call these 3 numbers simultaneously, the first person who answers the call get this transfer, the rest call stops ringing. Your phone number provider will only charge you for one call because only one number is transferred successfully.
Voice Bot - Ask for Payment
The payment feature is more like an Action rather than a Question.


PCI Mode (Twilio)
For Twilio users, you will need to enable the PCI mode in your Twilio account to capture a payment either in test or live mode.
Search “Voice Settings” from your account,

click the “Enable” button:

Edit Prompts
All prompts are already set in English. Feel free to change it if needed like changing to another language. There are 4 pieces of information to gather for a card.
- credit card number
- expiration date
- CVV
- postcode (if needed, enable the option in advanced settings).
Each information has 3 speeches to set, asking, timeout and invalid:

Payment Connector
To get a “Payment Connector”, which is “Unique connector ID”, you will need to access your phone number provider and payment service provider. Twilio and Stripe, for example, go twilio.com, follow step 1 to 4 in the following 2 pictures:



Install, name a “UNIQUE NAME” yourself and click “Connect with Stripe”. This “UNIQUE NAME” is then your “Unique connector ID”, copy it back to Messagingme.app.

💡 Note that for “MODE”, choose “test” when you are testing the payment process and choose “live” when you are ready to accept real payment.
Charge Amount
Put direct number like “99.99” or a number variable here.
Response
You will need a JSON variable to hold the payment result. This is a response example including some card details, confirmation code and payment result.

Payment Fail
You can deal with the situation via the “Payment Fail” option. For example, send “Something went wrong” and goto the Payment Step again.
One Time Token
You can choose to capture a payment right now or later.
If you decide to charge right away:give a value more than 0 in the “Charge Amount” box
- If you wanted to get the payment later
put a “0” in the “Charge Amount” box. In this way, you will get a token for future capture.
💡 There are 2 types of token, one-time token and reusable token. With a one-time token, you can charge the client once. While with a reusable token, you can charge the client for multiple times.
Under the situation that you set the charge amount to “0”, if you enable the “One Time Token” option in advanced settings, you will get a one-time token. Otherwise you get a reusable token.
By different combinations of charge amount and “One Time Token” option, you will get different payment results
That means, whenever you set a charge amount greater than 0, it doesn’t matter whether you enable the One Time Token option or not, you will charge your client right away and get a payment confirmation code. The code starts with “ch_” if you are using Twilio.
On the other hand, an one-time token starts with “tok_” if you are using Twilio. And a reusable token refers to customer’s ID, starting with “cus_” if you are using Stripe.
How to Charge with Token
Check the documentation of how to create a charge with your payment service provider. Let’s take Stipe as an example, to make a payment with a reusable token.

In the example, a post request is sent to Stripe with a testing API key and a charge amount, currency and the reusable token, i.e. the customer ID.

After hitting the test button, this is the response if succeed:

In the response you can see there is an id started with “ch_”, which is the payment confirmation code. That means, you’ve successfully made a payment.
Description
“Description” is submitted along with the payment details. For example, you can put “Payment of $20.52 submitted from Phone Number (xxx)-xxx-xxxx” to create a record to show which call created the payment.
A Credit Card for Testing
Use the following card details for testing if needed:
Credit card number: 4242 4242 4242 4242
Expiry date (MM/YY): 12 25 (pick a date in the future)
Zip code: 94105
CVC security code: 333
Basic actions
Add & Remove Tag
Tags would help you to identify and segregate your chat information for an informed decision.
Let’s Assume you have a flow of asking users whether they are interested in a trip to Europe or Asia. Then we will tag the users accordingly.
We will cover the following action in the Tags options.
- How to Create a Tag.
- Use Tags in flow.
- Watch Tags on Live Chat
How to Create a Tag
Click on Contents and here select the Tags option, In order to create or delete any tag we will use this window. Now choose the new Tag button.

Now create an asia_lead tag for those users who select Asia for the tour option. The same goes for the Europ lead as well.

These Tags can be deleted from the rightmost option of the Grid.

Use Tags in flow
Go to the Flow choose Basic Action and select Add Tag option.

Here select the appropriate tag for all the users who select Europ as a holiday destination and the same goes for Asia destinations.

Watch Tags on Live Chat
Now Run this flow and check its impact on the Live Chat section.
Here Chat agent can see the user Tags, as well as manually add or delete the tags according to the situation.

Remove Tag
Remove Tags can be utilized via the Basic Action option. Let’s assume a scenario where the user is not interested in contacting a chat representative.
What we did we add a primary action and by selecting a Button we will trigger this action which will remove the tags that we previously selected in our chat.


Add Multiple Tags
This option allows the chat builder to add multiple tags in one go, So Whenever a user adds a destination of Europe/Asia we will add more than one tag. Just go to the basic option and select the “Add Multiple Tags” option.

Here you can select the already created Tags from the Contents section.

Remove Multiple Tags
This option allows the chat builder to remove multiple tags in one go, So Whenever the user adds a destination of Europe/Asia, but at the end of the chat if he presses the button not interested in the chat. We will remove the tags from the Remove Multiple Tags option.


JSON Operation
JSON is also a type of variable. It is used to store and manage a series of variables including normal varialbe and JSON variable.
For example, this is a JSON storing a customer’s detail:


The “JSON Operation” is sitting in the “Basic Actions” list of the Action step.
💡 TIP - Various examples have been already embedded in the operation. Select an operation and use the “Examples” button to explore it!

For example, how to insert an item to a JSON variable:

Set Variable Value
This action allows you to store a value inside a variable or a custom field. This is very useful when you want to collect data from your users.

The Different Types of Value
Once you click on the set custom field action, you’ll be able to choose which custom field needs some to update in terms of value.

You can either put in some data or even another custom field as a value as well.

Should you need to create a new custom field, just type in the name and choose the type of custom field you’d like to create.
Variable Operations
Messagingme.app provides you with various built-in operations for variable modification.
There are 6 types of variable in Messagingme.app:
| Type | Storage | Example | Operation |
|---|---|---|---|
| Text | letters, words, sentences… | Hi, UChat. | cutting, change case, encode, decode… |
| Number | number | 123.45 | + - x ÷, mod, power, log, root, round… |
| Boolean | either “yes” or “no” | yes | assign |
| Date | date | 2021-03-30 | format, add months/weeks/days |
| DateTime | date and time | 2021-03-30 16:52:00 | format, add months/weeks/days/hours/minutes |
| JSON | a series of variables | {“name”:“jack”, “age”:“10”} | load, get, update, remove, count, sum, average, sort, shuffle, reverse… |

Click “Basic Actions” in the Action step and here are the “Set Variable Value” and “Clear Variable Value”.
Clear Custom Field / Clear JSON
To clear text, number, boolean, date, datetime variable, please use the Clear Custom Field action.
To clear JSON variable, please use the Remove All Items operation in the JSON Operation.
input value
“input value” operation is used to assign value to a variable. This operation works for any variable type.
💡 TIP - “input value” for text variable can be used to connect several text variables. See the below picture for where to put original value and operated value.

Math Formula

With this operation, you can now do formula calculation directly in the Action Step - “Set Variable Value” and Condition Step - “Value”.
Math operations and function supported:
+, -, *, e, pi, PI, abs(), min(), max(), ceil(), floor(), log(), pow(), round(), sqrt(), sin(), cos(), tan()
Please note that If the formula is invalid, the system will return 0 to number variable and empty to text variable.
Set Text Variable
trim text

sub string

💡 Note - Index starts from 0. Every character counts including space and punctuation.
replace string / replace string case sensitive
to lower / upper case

generate random text
| Description | e.g. Before | e.g. After |
|---|---|---|
| as the name | ”code: XXXX-####-xxxx" | "code: UBWT-3657-lkzb” |

This feature is useful when you need to generate one-time verification code or reference code.
url encode / decode
| Type | e.g. Before | e.g. After |
|---|---|---|
| encode | ”Hi, UChat!" | "Hi%2C%20UChat!“ |
| decode | ”Hi%2C%MM!" | "Hi, MM!“ |
base64 encode / decode
| Description | e.g. Before | e.g. After |
|---|---|---|
| encode | ”Hi, MM!" | "SGksIFVDaGF0IQ==“ |
| decode | ”SGksIFVDaGF0IQ==" | "Hi, MM!” |

to URL friendly slug
| Description | e.g. Before | e.g. After |
|---|---|---|
| replace spaces with hyphens and remove the rest signs | ”it’s a good day" | "its-a-good-day” |

get text before/after
Description: get part of the text.
| Type | e.g. Before | e.g. After |
|---|---|---|
| get text before another text | name: MM, city: Dubai | name |
| get text before last occur of another text | name: MM, city: Dubai | name: MM, city |
| get text after another text | name: MM, city: Dubai | MM, city: Dubai |
| get text after last occur of another text | name: MM, city: Dubai | Dubai |

Set Number Variable
get text length
| Description | e.g. Before | e.g. After |
|---|---|---|
| as the name | 500.59 | 6 |

generate random number
| Description | e.g. Before | e.g. After |
|---|---|---|
| as the name | n/a | 56 |

add / subtract / multiply / divide / modulus / power / natural logarithm / square root
| Description | e.g. Before | e.g. After |
|---|---|---|
| as the name | 7 | 8 |
TIP - in “natural logarithm”, when you are calculating log2(8) = ? put 8 as “Value” and 2 as “Number”.
round
| Description | e.g. Before | e.g. After |
|---|---|---|
| as the name | 7.8693 | 7.87 |

floor / ceil
Description: get approximate integer.
| Type | e.g. Before | e.g. After |
|---|---|---|
| floor | 6.55 | 6 |
| ceil | 6.55 | 7 |

Set DateTime Variable
from formatted text
| Description | e.g. Before | e.g. After |
|---|---|---|
| get DataTime value from formatted text | 00:00:00 30th Aug, 2020 | 2020-08-30 00:00:00 |

add minutes / hours / days / weeks / months
| Description | e.g. Before | e.g. After |
|---|---|---|
| as the name | 2021-01-01 00:00:00 | 2021-01-01 00:01:00 |
Clear Variable Value
Clear Variable Value
This function allows the user to literally clear a value of a single custom field.

You just have to choose a specific custom field you want to clear out.
Clear Multiple Variable Value
This action allows the user to clear multiple custom field values.

Make sure to choose all custom fields whose values you want to clear out.
Clear All Custom User Fields
If you are looking for a way to clear all custom field values of a user, use this action.

Subscribe/Unsubscribe to sequence
Subscribe to Sequence
Sequence automatically sends a list of messages to users. This is a good way to provide more value through scheduled messages.

First you will have to set up your sequence by going to Automation, click Sequence, then + New Sequence.

Label your sequence and choose a flow and a time interval as to when it would be delivered. Don’t forget to click SAVE.
💡 Please do note of the message-sending limitations of the channel you are using.
Unsubscribe from Sequence
This literally unsubscribes a user from a sequence.

Subscribe and Unsubscribe to Bot
Users can subscribe to or unsubscribe from the bot via the Flow Builder or Live Chat. You can also set triggers for both actions.
From Flow Builder
In Flow Builder, you’ll find the subscribe and unsubscribe options under Action Step → Basic Actions.

- Subscribe: When a user subscribes to a bot, they will start receiving automated responses from the bot.
- Unsubscribe: When a user is unsubscribed, they will no longer receive automated responses from the bot. Messages from the user will still be visible in Live Chat, but agents won’t be able to send replies to that user.
From Live Chat:
Users can also subscribe or unsubscribe directly from Live Chat.
If the user is already subscribed, only the Unsubscribe option will be available.

When unsubscribed, you will not be able to send any messages, even from Live Chat, and an error will be displayed indicating that the user is unsubscribed from the bot.

However, you can subscribe the user again directly from Live Chat.

From Bot Users:
You can also subscribe or unsubscribe users through the Bot Users section. This action can be performed for:
- Individual Users: Select and apply the action to a specific user.
- Bulk Users: You can perform subscription or unsubscription actions for multiple users at once

Triggers:
You can set triggers for when a user subscribes or unsubscribes from the bot.

Note: When a user sends a message to your bot for the first time, they are automatically subscribed. If a trigger is set on the subscription, this could result in duplication during the first message exchange.
Unsubscribed Users: Once a user is unsubscribed, messages cannot be sent via the flow. However, you can still:
- Send an email, Use an action node to add tags, Update the Custom User Field (CUF) value, and run an external request.

Set Email Opt-in & Opt-Out
Setting Email Opt-ins
This feature allows you to send emails to users. Action must be placed before an email node.

Setting Email Opt-outs
This feature is useful when you want to prevent a user from receiving an email. This is very good when you do email blasts.

💡 The email or SMS will not send out if the user isn’t opt-on for SMS & Email.
Bulk Actions
To configure Email Opt-in or Opt-out for users in bulk, follow these steps:
- Navigate to Bot -> Bot Users.
- Select the user(s) by checking the box next to their name.
- Click on Bulk Action in the upper right corner.
- Choose Set Email Opt-In or Set Email Opt-Out as needed.

This action ensures that the user is either subscribed or unsubscribed to receive email communications. If the user is not opted in, the system will not send emails to them.
Set SMS Opt-in & Opt-Out
Set SMS Opt-in
If you need to send an SMS to a user using the chatbot, be sure to set up this action before the Send SMS node.

Set SMS Opt-out
To make sure a user doesn’t receive any SMS from the bot, use this action.

💡 The email or SMS will not send out if the user isn’t opt-on for SMS & Email.
Bulk Action
To configure SMS Opt-in or Opt-out for users in bulk, follow these steps:
- Go to Bot -> Bot Users.
- Check the box next to the user(s) you want to configure.
- Click on Bulk Action.
- Select Set SMS Opt-In or Set SMS Opt-Out.

This configuration will include or exclude the user from SMS notifications sent by the bot. If SMS Opt-in is not enabled, the system will avoid sending SMS to that user.
Mark Conversation Open/Pending/Spam/Done/Invalid
Mark Conversation Open
This option can be utilized when you open the conversation in any situation, Please note that by default all the conversations would be Open unless we don’t set up any function inside it.

Mark Conversation Pending
This option will automatically set the status of the chat as Pending, A use case might be like if a Shop has three categories.
- Shipping
- Payment
- Refund
So if the user selects Refund, the bot will mark this chat status as Pending for emphasizing this chat information to the chat agent.


Watch on the Live chat Screen:
Here you can see that the chat status is set to Pending status when the user selects the Refund option in the chat section.
Mark Conversation Spam
Chat can be marked spam, We need to ensure that the chatbot provides accurate and reliable information, while building bot we can mark users’ chat to Spam to avoid distraction.
Mark Conversation Done
Chat can be marked done on certain cases, What if your flow has success and the user got what he desired? You can set this in a particular action set Done. So in that way, your Chat Agent will not opt for the Done status chat.

So Let’s say Whenever the user selects the Rating option we will mark the conversation status Done.

Mark Conversation Invalid
A conversation can be marked invalid based on certain criteria, a lead that is not fulfilling the business case of an agent/bot may marked invalid.

Add note to teammates
A note to teammates can be used as a reminder, Just in case in the below case whenever the User selects the Refund option the agent will receive the notes from the bot about the instruction/caution. Note these notes will not be visible to bot users.

Live Chat Screen
The note can be seen on the Live Chat screen plus an agent also make some notes by clicking on the bottom of the screen on Note.

Delete Bot User
A new feature that allows you to set a user limit for your chatbot and automatically delete excessive users. This update streamlines the process of managing and maintaining your chatbot’s user base.
Method 1: Action Step
The first method involves using an action step within your chatbot flow. Simply locate the “Delete Bot User” action step under the Basic Actions category. When the flow reaches this step, it will automatically delete the user, ensuring that subsequent messages or conditions are not processed.

Method 2: Set Bot User Limits
Another way to automatically delete users is by setting bot user limits in the UChat settings. Under the General section, you’ll find the “Bot User Limit” option. By specifying a value greater than zero, the system will periodically check the total number of users and delete the oldest users if the limit is exceeded.

Monitoring User Count:
To keep track of the number of users, head over to the Analytics section. Here, you’ll find insights into the total number of bot users. This information will help you determine the appropriate user limit for your chatbot.

Additional Options:

Assign to agent/agent group
Assign to Agent & Assign to Agent Group
You can streamline chat management by assigning interactions directly to specific agents or agent groups within the flow. Here’s how:
- Navigate to the Action Node:
- Go to the Action node in your flow editor.
- Select the basic action options available for chat management.

Assign to Agent
Assigning to an Individual Agent:
- From the list of agents, select the specific agent you want to handle the chat.
- This ensures the chat is directed to the chosen agent, allowing for personalized and efficient user support.

Assigning to an Agent Group:
- Select an agent group from your list of agent groups.
- This allows the chat to be handled by any available agent within the group,

In the agent group, we have some default groups,
Default Agent Groups
Default Group 1 - All Users (Random)
This group includes all workspace members, such as the Owner, Admin, members, and agents. Tasks or chats are assigned randomly to any member of this group.
Useful when you want to distribute tasks without considering the current workload or specific roles.
Default Group 2 - All Users (Least Assigned)
This group includes all workspace members. Tasks or chats are assigned to the member with the fewest assignments, balancing the workload evenly.
Ideal for ensuring an even distribution of tasks across all users in the workspace.
Default Group 3 - All Users (Round Robin)
This group includes all workspace members. Tasks or chats are assigned in circular order, ensuring each member gets a turn sequentially.
Suitable for evenly distributing tasks predictably and fairly.
Default Group 4 - Only Agents (Random)
This group includes only the agents in the workspace. Tasks or chats are assigned randomly to any agent in this group.
Useful when you want to distribute tasks among agents without considering their current workload.
Default Group 5 - Only Agents (Least Assigned)
This group includes only the agents in the workspace. Tasks or chats are assigned to the agent with the fewest assignments, balancing the workload evenly.
Ideal for ensuring an even distribution of tasks, specifically among agents.
Default Group 6 - Only Agents (Round Robin)
This group includes only the agents in the workspace. Tasks or chats are assigned in circular order, ensuring each agent gets a turn sequentially.
Suitable for evenly distributing tasks among agents predictably and fairly.
Resume Bot Automation
If a bot stops responding, user messages can go unanswered unless an agent intervenes. To prevent this, we’ve implemented several ways to resume bot automation seamlessly. Let’s explore these methods in detail.
Basic Action Resume Bot
Simple and Effective
You can resume automation at any point in your flow using the action node. Here’s how:
- Navigate to the Action Node: Find the point in your flow where automation needs to resume.
- Select Basic Actions -> Resume Automation: This will instantly reactivate the bot, allowing it to continue its tasks and respond to users.
This straightforward method ensures the bot gets back on track without missing a beat.

Resume in Live Chat
In live chat, agents often work within a timed framework. To ensure automation resumes smoothly:
- Monitor the Timer: A timer usually manages the duration of agent responses.
- Click the ‘X’ Sign: This action closes the timer and resumes the bot’s automation.

Talk to human/Pause automation
This doc will guide you on how to allow users to talk with your agent and pause automation when needed.
Talk to Human & Pause Automation in the Flow
- Pause Automation in the Flow:
- At any point in the flow, you can provide users the option to talk to a human agent.
- This feature pauses the automation temporarily, allowing real-time human interaction.
- In Action node -> Basic actions -> Talk to Human/Pause Automation

- Adding Pause from Live Chat:
- You can also initiate a pause directly from the live chat interface.

Advanced actions
External Request
With external requests, you can call APIs from other third parties or your own server to request data, submit data and etc.

In an Action step, find “External Request” in “Advance Actions” and click “Add your request” then start editing it:

- choose a request type such as GET, POST, etc
- paste your request URL / endpoint
- adjust “URL parameters”, “Headers”, “Body” or “Authorization” section if needed. e.g. setup API key
- click “Test” and area 5 will show in the “Response” section with a response code
- click on “Response Headers” to expand the header for more details and the received data is in blue
- choose which part of the data you need by clicking the circle on the left-side accordingly
- after clicking area 6, the JSON path for the selected data is automatically shown here. $ means the whole JSON.
- choose which custom field to store the data. You can create a new field here by typing in a field name and clicking it in the drop-down. Click the “Add” button to add to the mapping list
- finally, the mapping shows in area 9. Add as many mapping as needed and click “Save”.
💡 Testing Value - Make sure you provide testing data for any one of the fields/variables in the settings before you use the Test button.
URL Params

In the above screenshot, we can see that there is a URL parameter in the endpoint called “user_name”. Remember to copy the endpoint down and provide a testing value.
Alternatively, you can use the URL Params sections for the same result.
Headers

Same as URL Params, put your key name first, then insert the variable and provide a testing value.
Authorization

Alternatively, put the token in the Authorization section. It’s going to be less error-prone (sometimes people just forgot the “Bear ” in front of the token).
Moreover, for Basic Auth, simply put your username and password value and the system will do the base64 encoding for you.
Body
To include a file itself in the parameters, use multipart/form-data:

x-www-for-urlencoded works just like URL Params or Headers section.
Instead of listing all the payloads in x-www-form-urlencoded, you can also paste the example payload in raw JSON:

On the left-hand side, Body Content, paste or write your JSON first, when you insert a variable, the Test body content shows on the right side immediately. It’s to specify a testing JSON value.
Click on Copy from body content to copy the whole JSON structure. All the variables will be replaced by {{variable_name}}. Remove the placeholder and put your testing values.
Testing
Once you are ready, click on the Test button next to the URL endpoint or in the Response section.

Besides the tips about how to map data above, you might also want to save the values in the response header for later use. Simply expand the header, click on a value in the header and the JSON path to it shows automatically there.
Smart Delay
documentation still in progress
JavaScript Function
Messagingme.app now allows its users to carry out complex flow logic using Javascript action. The users will be able to write javascript code to carry out various complex flows and formulae which are not natively supported by Messagingme.app yet.
Selecting Javascript Action Node
Create an Action node block, Click on Advanced Actions and select Javascript Function node.

Javascript Function Node
A javascript function acts exactly like a function. All parameters are first parsed into the javascript block before they can be used. The top part of the action is used for input.

Parameters Name: Add the name of the variable you are parsing
Parameters Value: Add the userfield you want to parse into the javascript function
Test Value: Add a testing value which can be used here to run tests

These javascript libraries extent the functionality of the native function block.
In the function block, you can write your javascript code.

After writing the code, you will always have to return your value since the function block acts as a regular function.
Note: Native javascript methods such as console log that require a browser does not work with the Javascript Function node

You can map the results of your code to update certain user fields.

Note: When handling JSONs, all JSONs have to be first parsed and then be able to used inside the code.
SSO Actions
Messagingme.app now allows its users to further expand on its SSO login with SSO actions. You will now be able to link, delink channels, and other actions which you were not be able to do previously using automations in flow builder.
Using SSO Actions
Inside the flowbuilder, right click and then select “Action” block

Click on “Advance Actions”

Scroll down and select “SSO Actions”

Click on “Edit Action” to start exploring different SSO actions.
SSO Actions
Following SSO actions are currently available with Messgaingme.app.

Find SSO User
This action is used to find SSO user using their attached email which they used to login using SSO.

💡 SSO User NS and Bot User NS are two different entities, the former one is for the master user while the later one is for individual users of the respective channels that are linked with the user
Send Flow To Linked Channel User
This flow is used to send a linked user a subflow in its linked Channel. For example, sending a flow to your linked whatsapp user from SSO user.

💡 All restrictions of channels such as 24 hour window for Meta channels still applies
Get SSO User Info
This action is used to fetch user info for SSO master user.

Get Linked Channel Users
This action is used to get information regarding all the linked channels using the SSO user NS.

Link To SSO User
This action is used to link and individual channel bot user to the SSO master user using SSO user NS.

💡 This action can only be used inside the channel you want to delink from SSO user
SSO Actions

Create SSO User by Email
The newly added action enables the creation or linking of an SSO profile through an existing email, reducing the need for social media logins.
How to Use SSO Action
Go to the Flow builder, Select Action Node and choose Advanced Actions.
Then select SSO Actions

Here you have multiple actions to choose from.

Steps to Implement SSO via Email
Create SSO Profile Using Email
To create a new user you can select ‘Create SSO User**’**
The SSO channel will be based on user email
(Note: Ensure the email exists by adding a condition to check for it beforehand)


This setup ensures that users with the same email across different channels are recognized, avoiding repeated SSO login requests.
Find SSO Profile User
To Search SSO Profile user you can use an Action ‘Find SSO User’

You can Search SSO Profile User through Email

Send Flow to SSO Profile User
You can also send a bot flow to SSO Profile user

You can also send the flow tailored to the specific channel.


You can set the configuration and send the flow.

Similarly You can use other Actions as well according to your Requirements.
Check for Existing SSO Profile
You can also check if the user is Already a SSO Profile User
Select a condition node and choose add condition.

Now use a condition either “Is user SSO” or “Has SSO user connected” or you can use both of these conditions and check them if they both are true.



If the user has an existing SSO profile, proceed with the flow as usual. Otherwise, continue to the next step.

Benefits of SSO via Email
- User-Friendly: Reduces the need for Google or Facebook logins.
- Seamless Integration: Links existing emails to SSO profiles.
- Consistency Across Channels: Ensures a unified experience when users interact via different platforms.
Facebook Page API with Messagingme.app
This comprehensive guide clarifies the functionality of Messagingme.app’s Facebook Page Actions, empowering you to manage your Facebook page content directly through Messagingme.app.
Connecting with Facebook
- Connect your Facebook Business Manager account in Integrations
- Connect your Facebook account in the Facebook channel and link it to a bot
Inserting the Action Node into your flow
Insert an Action Node into your flow and go to Advanced Actions

Select Facebook API

Facebook Page API Features through Uchat’s Action Node
This guide clarifies the functionality of Facebook Page API Actions on UChat Platform, providing a clear understanding of each action’s purpose.

List Page Posts:
• Obtain a list of posts currently published on your Facebook page.

Get Page Post:
• Obtain a specific Facebook page post details.

Create Page Post:
• Publish new content to your Facebook page directly from Uchat.

Update Page Post:
• Update an existing post from your Facebook Page.

Delete Page Post:
• Delete an existing post from your Facebook page.

List Page Post Comments:
• Retrieves a list of comments for a specific post on your Facebook page.

Get Comment:
• Get details of a specific comment from your Facebook Page.

Reply to Comment:
• Reply to a comment on a post on your Facebook page.

Update Comment:
• Edit an existing comment left on your Facebook page post.

Hide Comment:
• Hide a comment on an post on your Facebook page.

Like Comment:
• Like a comment on an post on your Facebook page.

Delete Comment:
• Deletes a comment on an post on your Facebook page.

Page API
Create Image Post
Create an image post on your Facebook page. Enter the Photo URL in the placeholder to upload and post an image.

Facebook Page Ads
List Ads Posts
Retrieve a list of all ads posts. To find something specific, search by the ad ID or name.

Ads Post List Comments
Get a list of all comments on a specific ad post. Provide the ad post ID to retrieve its comments.

Ads Post Comment Reply
Reply to a comment on your ad post or add a new comment to the post.
- To reply, provide the comment ID and your message.
- To add a new comment, provide the post ID and your message.

List Lead Forms
Retrieve a list of all lead forms linked to your page.

Get Lead Form Questions
View the questions in a lead form. Provide the lead form ID to get the list of questions.

List Lead Form Leads
Retrieve a list of all leads from a specific lead form. Provide the lead form ID to get the leads.

Get Lead Gen
Get the details of a specific lead. Provide the lead generation ID.

Reply to Comment on Facebook
This action allows you to reply to a comment on a Facebook post. Additionally, it includes an option to save the comment reply as a bot message, making it visible in the chat history.
Parameters/Fields:
- comment_id: Comment ID (required).
- message: Message of the comment reply (required).
- Save as Bot Message: When enabled, the comment will be added to the chat history but not trigger previous training.
Step-by-Step Guide
Step 1: Configure the Reply to Comment Action
- Open the flow editor and add an Action node.
- Select Facebook API > Reply to Comment.

- Connect the flow with your Comment Keyword Automation. (additional documentation: Comment Keywords )
Step 2: Set Up the Parameters
- In the action settings, enter the Comment ID of the comment you want to reply to.
- Type the Message that will be sent as a reply.
- Enable Save as Bot Message if you want the reply to appear in the chat history.

Step 3: View the Reply in Chat History
- After executing the action, the reply will be visible in the chat history.
- If Save as Bot Message was enabled, the reply will be logged but won’t retrigger previous messages.

This ensures that bot-generated replies to Instagram comments are logged within the chat history for better visibility and tracking.
Bot user API
Accessing bot user information or using UChat API through coding can be difficult for many users. But with our simple method, you can use API endpoints effortlessly, no coding required.
Accessing API Endpoints
Navigate to the Flow Builder. Select an action block and choose “Advanced actions.” Explore the “Bot User API” options.

Available Actions
- List all tags
- Check if the user has a certain tag
- Add or remove tags
- List subscribed sequences
- Retrieve shopping cart details
- List shop orders
- List chat text messages

List Tags
For testing purposes, you can retrieve the list of all tags using the User_NS. For permanent storage, you can utilise the Username, First Name, and Last Name system fields.

Check has Tag
You can check whether a user has a tag or not by entering the User NS and Tag Ns.
Where to Find Tag Ns:

Navigate to Contents -> Tag -> Move the Cursor to the Tag you will see the Tag Ns.

Add Tag

Remove Tags
The process for removing tags is similar to adding tags. Simply insert the Tag NS to remove the tags.
Remove All tags
It’s also the same. You don’t need to input any value; it will automatically remove all the tags from the user.
List Subscribed Sequences
By inserting the user’s username or first name, you can retrieve the list of subscribed sequences for testing purposes.
List of Cart Items
You will receive a list of all items currently in the cart.
List Shop Order
You will receive a list of all Orders placed by the user.
List Chat Messages
You can access the chat history of the last 50 messages. You have the option to include agent messages, and bot messages, and choose the format (default, text, or text with time) according to your preference.
Remove All Smart Delays
Description
The Remove All Smart Delays action clears all smart delay actions associated with a specific bot user. This feature is useful for instantly removing any queued delays, allowing for immediate bot responses.
How to Remove All Smart Delays
Go to the Flow, Select Action Node and choose Advance Action. Then select the Bot User API option

Now Select the option Remove All Smart Delays action.

Now you have to add User NS of the User you want to remove all smart delays or You can use a System Fields which contains User Ns.

In the Sample Data you will see status: “ok” and delete: “0” which means all smart delay have been removed Successfully.
Use Cases
- Instant Reset: Instantly remove all pending delays for a user to improve response times.
Response
- Success: Returns a
200 OKstatus with a message confirming all smart delays have been removed.
Error: Returns an appropriate error code if the user Ns is not found or if the request fails.
Remove All Scheduled Messages
Description
The Remove All Scheduled Messages action allows for the deletion of all scheduled messages queued for a particular bot user. This action ensures that no further scheduled messages are sent to the user, enabling quick modifications in user interaction plans.
How to Remove All Scheduled Messages
Go to the Flow, Select Action Node and choose Advance Action. Then select the Bot User API option.

Now Select the option Remove All Scheduled Messages action

Now you have to add UserNS of the User you want to remove all Scheduled Messages.

In the Sample Data you will see status: “ok” and delete: “0” which means all Scheduled Messages have been removed Successfully
Use Cases
- Bulk Message Removal: Quickly clear all pending messages to prevent redundant or outdated information from being sent.
- Precise Flow Adjustment: Modify scheduled messaging plans by removing all queued messages for immediate updates to user interaction.
Response
- Success: Returns a
200 OKstatus with a message confirming all scheduled messages have been removed. - Error: Returns an appropriate error code if the user Ns is not found or if the request fails.
Find Bot Users by Phone
Search users via bot or workspace. Input the user’s phone number to locate their profile.

Find Bot Users by Email
Search users via bot or workspace using their email address.

Find Bot Users by User ID
Locate a user across the bot or workspace using their unique user ID.

Merge Bot User
Merge a secondary bot user into a primary (current) bot user.
- All relevant data from the secondary user will be transferred to the primary user.
- You can delete the secondary user after merging or retain their profile.

List Labels
Retrieve all labels assigned to a specific user.

Check Has Label
Check whether a specific label is assigned to a user. Enter the label name to verify if it is associated with the user.

Add Label
Provide the label name and assign it to the target user.

Remove Label
Remove a specific label from a user. Input the label name to disassociate it from the user.

Remove All Labels
Remove all labels assigned to a user.

Get Chat Message
Retrieve a specific chat message using its message ID (MID).

List Closing Notes
Retrieve all closing notes associated with a user.

Append Assistant Message to AI Agent Messages
Whenever an AI response is generated outside the AI agent, they do not automatically get stored in the AI agent’s message history. To address this, a new action has been added under the Bot User API section, allowing developers to manually insert these responses into the AI message history. Use the new Append Assistant Message to AI Agent Messages action to add it to the relevant chat history.

Here you can see how it looks as an example:

Instagram API Action
This document provides comprehensive details on the available actions in the UChat Instagram integration, enabling you to automate tasks, interact with your followers, and efficiently manage your account.
Prerequisites
- Messagingme.app account
- Instagram Business account
Configuring the Integration in Messagingme.app
Log in to your UChat account.
Access “Settings” and then “Channels”.
Click on “Add Channel” and select “Instagram”.
Inserting the Action Node into your flow
Insert an Action Node into your flow and go to Advanced Actions

Select Instagram API

Available Actions
UChat offers a variety of actions to automate tasks and interact with Instagram.

1. Get Instagram User
- Description: Retrieves information about a specific Instagram user.
- Response:
- name: User’s name.
- username: Instagram username.
- profile_pic: URL of the profile picture.
- is_verified_user: Indicates if the user is verified.
- follower_count: Number of followers.
- is_user_follow_business: Indicates if the user follows the business account.
- is_business_follow_user: Indicates if the business account follows the user.
- id: Instagram account ID.

2. Get Instagram Account
- Description: Retrieves information about an Instagram account.
- Parameters/Fields:
- fields (optional): Comma-separated list of fields to return (e.g., media_count,followers_count).
- Response:
- id: Instagram account ID.
- username: Instagram username.
- name: Instagram account name.
- media_count: Number of media posts.
- follows_count: Number of users followed by the account.
- followers_count: Number of followers of the account.
- profile_picture_url: URL of the profile picture.

3. List Instagram Account Media
- Description: Retrieves a list of media posts from an Instagram account.
- Parameters/Fields:
- fields (optional): Comma-separated list of fields to return (e.g., media_url,like_count).
- limit: Limit the number of media posts to return.
- Response:
- data: List of media posts. Each media post includes information such as:
- id: Media post ID.
- caption: Post caption.
- comments_count: Number of comments.
- like_count: Number of likes.
- media_product_type: Type of media (e.g., FEED).
- media_type: Media type (e.g., IMAGE).
- permalink: Permanent URL of the post.
- shortcode: Shortcode of the post.
- timestamp: Post timestamp.
- username: Instagram username.
- media_url: Media URL.
- paging: Pagination information to retrieve more media posts.

4. List Live Media from Instagram Account
- Description: Retrieves information about live media (live broadcasts) from an Instagram account.
- Parameters/Fields ::
- fields (optional): Comma-separated list of fields to return (e.g., media_url,like_count).
- Response:
- id: Live media ID.
- media_url: URL of the live broadcast.
- viewer_count: Number of viewers of the live broadcast.
- comments_count: Number of comments on the live broadcast.
- like_count: Number of likes on the live broadcast.
- timestamp: Live timestamp.
5. Get Instagram Media Details
- Description: Retrieves detailed information about a specific media post from an Instagram account.
- Parameters/Fields:
- id: Media post ID (required).
- fields (optional): Comma-separated list of fields to return (e.g., comments_count,like_count).
- Response:
- Detailed information of the media post, including:
- id: Media post ID.
- caption: Post caption.
- comments_count: Number of comments.
- like_count: Number of likes.
- media_product_type: Type of media (e.g., FEED).
- media_type: Media type (e.g., IMAGE).
- permalink: Permanent URL of the post.
- shortcode: Shortcode of the post.
- timestamp: Post timestamp.
- username: Instagram username.
- media_url: Media URL.

6. List Comment Replies on Instagram
- Description: Retrieves a list of comment replies for a specific comment on an Instagram post.
- Parameters/Fields:
- comment_id: Comment ID (required).
- fields (optional): Comma-separated list of fields to return (e.g., time_stamp,text).
- Response:
- id: Comment reply ID.
- text: Text of the comment reply.
- time_stamp: Timestamp of the comment reply.
- like_count: Number of likes.
- from: Information about the user who replied to the comment (includes id, username).

7. Reply to Comment on Instagram
- Description: Replies to a comment on an Instagram post.
- Parameters/Fields:
- comment_id: Comment ID (required).
- message: Message of the comment reply (required).
- Response:
- id: Comment reply ID.

8. Hide Comment on Instagram
- Description: Hides a comment on an Instagram post.
- Parameters/Fields:
- comment_id: Comment ID (required).
- Response:
- Success or error message.

9. Delete Comment on Instagram
- Description: Deletes a comment on an Instagram post.
- Parameters/Fields:
- comment_id: Comment ID (required).
- Response:
- Success or error message.

Reply to Comment on Instagram
This action allows you to reply to a comment on an Instagram post. Additionally, it includes an option to save the comment reply as a bot message, making it visible in the chat history.
Parameters/Fields
- comment_id: Comment ID (required).
- message: Message of the comment reply (required).
- Save as Bot Message: When enabled, the comment will be added to chat messages but not for previous training.
Step-by-Step Guide
Step 1: Adding the Reply to Comment Action
- Navigate to the flow editor and select the Instagram API.
- Choose the “Reply to Comment” action.

3.Connect the flow with your Comment Keyword Automation
Step 2: Configuring the Action
- In the action settings, enter the Comment ID.
- Input the Message that will be sent as a reply.
- Enable the “Save as Bot Message” option if you want the reply to appear in chat history.
(Refer to Image 2: Action Configuration Panel)
Step 2: Configuring the Action
- In the action settings, enter the Comment ID.
- Input the Message that will be sent as a reply.
- Enable the “Save as Bot Message” option if you want the reply to appear in chat history.
(Refer to Image 2: Action Configuration Panel)

Step 3: Viewing the Comment in Chat History
- Once the bot replies, navigate to the chat history.
- The bot’s reply will be displayed in the conversation thread.
- This allows for better tracking and reference of bot responses.

This ensures that bot-generated replies to Instagram comments are logged within the chat history for better visibility and tracking.
Set Persona
Setting a persona is basically allowing your chatbot to have different characters. Imagine having talking to a different person for your billing flow, another for the sales, then another for support. This allows a lot more personalization in your chatbot.

Step 1
Go to Contents > Personas > Click “+New Persona” then enter a name and an avatar (optional).


Step 2
Set it up on your flow builder

Result
If you noticed, the avatar has changed and your conversation is handled by the persona “Sarah”.

Set User Menu
Set User Menu is a good way to provide shortcuts to your chatbot. So instead of having the user go through each flow, we can use this function to have the user go straight to whatever flow they want to go.

How do you set this up?
Go to Contents >> Menus >> + New Menu

Create your Menu name and click “+Add Menu Item”

Add your menu title and make sure to choose a subflow then click Save. This is where your user will be sent once the menu is pressed.

Back at your flow, choose the menu you want to appear.


Set Timezone
You can set up the user timezone by using this action.

Log Custom Event
Messagingme.app now allows its users to track various events that happen within the bot automations and let users visualize these event via analytics in form of custom events and custom reports.
You will now be able to track custom events of your choosing and then make collaborative analytical reports out of them, giving you more insight of data and provide you with metric on which to track the performance of your bot and automations.
Creating and Using Custom Events In UChat
On your dashboard, click on the bot and go inside the flow builder.

Inside the flow builder, select Content tab, and then select custom events.

When creating a new event, following parameters you have to provide.
Event Name : This is used to naming that custom event
Event Description : This is used for describing what the custom event do and track.
Parameter Names : These are the name of the parameters you want to track for, for example product, sales category, name of the person etc

💡 You don’t have to fill each of the parameter in order for the event to work but you need to be able to provide at least one parameter for tracking

After creating an event, Go inside your flowbuilder and add the “Custom Event” action from Action block to start integrating the event and tracking it.


Click on Edit action and start setting up the event.

Here the event will track the Channel from which the users are coming and then the count will add one count to the total number of event happening.

The event is now ready to be tracked.
Visualizing Analytics For Custom Events
Click on the analytics tab, select custom events to view the analytics for that particular event.

Click on the event to further view the analytics of that particular event.


Creating and Using Custom Reports In Messagingme.app
In order to create a custom report, click on the tools tab and select custom reporting.

Enter the name of the report and the type of the report.

Click on the gear icon to start modelling your reports.

Modelling Funnel Report
Click on the “Funnel Steps” to start adding custom events to your report

Click on “Add step”

Select which type of event do you want to track

After adding the event, click on the three dots icon to start customizing it.
Set up the proper events you want to track in this event. Click on the Done button

You can add more steps to your funnel report, if you want to build a collaborative report or comparison report on multiple events and track the performance on multiple fronts.

If you want to change the colors of the trendline graphs and bar charts, click on the palette icon on the tope left corner and then choose the chart you want to change the color of.

You can also edit the graphs and charts themselves, changing their labels, axes, enabling or disabling them to show on the report itself or not

Modelling Percentage Report
In percentage reports, you can compare two events and find out how they perform w.r.t to each other.
In order to add the events, click on Field A and Field B.

In order to edit the charts and graphs, click here to modify them as per your needs.

Formulae
Percentage reports allow you to add formulae to calculate the percentage and proper event.

Formula #1
This formula compares the two fields and calculate the relative percentage between them. For example
- Field A can be No of students in Class A and Field B can be the total number of students in a school, this formula will help you calculate the percentage of students of Class A compared with total student population of the school
- Field A can be can be the no of sales of product A and field B can be the total number of sales, this formula will help you calculate the percentage of sales of product A.
Formula #2
This formula compares the two fields and just like the formula 1 give the relative percentage. Here Field A and Field B can be the two parts. The denominator here gives the sum of the constituents.
Field A can be the no of users passing through Flow A. Field B can be the no of users passing through Flow B. This formula will gives us how many people passed through which flow, This is import for A/B testing
Formula #3 & 4
This formulae compares the two fields and give a value which is not directly derived. For example consider a marketing SMS campaign. We can track the total number of the people targetted and the people replied to be put in DNC or Do not Contact list. Using this formula we can derive the actual number of people that responded back to the campaign or the actual response rate.
Visualizing Analytics For Custom Reports
In order to visualize the custom reports, you can click on the analytics tab and select custom reports

Move to board
We are just creating the Action Block and adding the Board function to it to test its functionality.
In the Action Block -> go to Advanced Actions -> Move to Board function

Next step -> Click on Edit Action in the Board Function.

You need to select the Topic to position the User at the end of a Process.

Now let’s say, we are getting the user to the platform for the first time, so we are selecting the Topic New Lead.
You can also add a Note to the Action taken out of the 3 Options provided in the drop-down menu:
- No Change
- Update Note
- Clear Note
Now let’s select Update Note under the Note Action. and Info under Note Type
Since we are adding the User as New Lead, let the note be as - {{First Name}} is our new Sales Lead

Now we can save the above Note Details in the Board.
Now let’s preview this Action Block with Board Function on the Pop-up Web Page.
We don’t see any action on the Web Page, as we are testing only the Action Block.
Now we close the testing Web page and open the Board and refresh the Page, you can see the Magic:
Under the New Leads Column in the Board, the Guest user has been added. Also you can see the Note: Guest is our New Sales Lead.

Now, You can have a look inside by clicking on the Guest User and you will be able to directly communicate with this User from within the Messagingme.appPlatform.

Now you can also drag them to the several stages manually from left to right and right to left.
We can also do Automation, where each time a user takes a certain action, you can move to the required Board. You can move them through all stages of the Board.
Now we have manually moved the Guest User from New Lead to Demo Scheduled.

For example, when we want to do Automation on this, if a Product demo has been scheduled with the Guest User, using the Calendly integration, we can also call an Action with the Board Function, where the following activity is done:
- Topic or Stage - Sales Pipeline / Demo_Scheduled is selected.
- Note Action: Update Note
- Note Type: Info
- Topic: Calendly booking is scheduled for Product demo with {{First Name}}
In this way, the Board parameters can be set when a Calendly Appointment is done.

Calendar File Generator
In this tutorial, we will learn how you can generate ICS files to enable users to add meetings directly to their calendars, whether on desktop, mobile, iOS, or Android devices.
Generating Calendar Files in Live Chat:
One powerful use case for calendar integration is enabling live chat agents to generate appointments within chat conversations. By utilizing the calendar file generator, agents can seamlessly create a meeting event that users can add to their calendars. Here’s how it works:
Within the live chat conversation, locate the “Calendar File Generator” option at the bottom.

Click on it to open a new window where you can customize the meeting details.

- Provide a name for the meeting, such as “Follow-up meeting”
- Set the start and end dates and times for the meeting.
- Specify the location, whether it’s a physical address or a virtual meeting platform like Zoom.
- Add a description, such as “Weekly Follow-up meeting.”
- Optionally, include a URL related to the meeting, like your website.
- Save the generated ICS file, which will appear in the lower-left corner of the live chat conversation.
When you’re ready, send the file to the user, who can download and add it to their calendar.
Adding the Meeting to Calendars:

Once the user receives the ICS file, they can seamlessly add the meeting to their calendars. Here’s a step-by-step guide:
When the user opens the file, it will open a browser tab displaying an overview of the meeting details.
- They will see the meeting information, including the meeting name, date, time, and description.
- To add it to their calendar, they can click the “Add to Calendar” option.
- They will be prompted to choose a calendar application or service (e.g., Google Calendar).
- Once selected, the event will be added to their calendar, allowing them to access all the details and even set reminders.

Calendar Integration in Flows:
Calendar integration is not limited to live chat conversations. You can also incorporate it into flows for further automation. Here’s how to use it within a flow:
- In the flow, add an action block and select “Advanced Actions.”
- Choose the “Calendar File Generator” option and edit the action.
- Customize the meeting details as required, including dynamic variables for start and end times.
- Save the meeting link to a custom field for future use.
- Display the meeting link within a text block or use a button to provide easy access.

Send the link to users via SMS, email, or any preferred communication channel.
When users click the link, they can add the meeting to their calendars, just like in the live chat scenario.
Update user profile
This option is utilised to update user data from the source organization, in many cases where we need to update a user profile, along with other information can be updated in the 24-hour time frame.
This will pull the most recent user’s profile image, and also update the user’s timezone.
Rate limit Setting
Rate Limit is a valuable addition to the chatbot system, providing administrators with a streamlined approach to managing user interactions.

Use Cases for Rate Limit
Limiting API Calls:
Ensures compliance with third-party platform restrictions.
Controls the number of API calls per user within a specified time frame.

Preventing Fake Orders
Helps to mitigate fraudulent orders in e-commerce settings.
Restricts the number of orders a user can place within a specific time frame.

Controlling Notifications
Manages the frequency of notifications sent to users.
Ensures users are not overwhelmed with excessive notifications, particularly in e-commerce order

In summary, Rate Limit is a valuable addition to the chatbot system, providing administrators with a streamlined approach to managing user interactions while ensuring compliance with external platform restrictions and preventing abuse of system resources.
