# Question Step

To make a question step, you might need to create a variable accordingly to store the answer. You can create variables in 2 ways:

  • in Custom Fields section (user fields & bot fields)
  • in the question step (user fields only)

Go "Custom Fields" from the left sidebar:



there are 2 types of fields, user and bot. DO MAKE SURE you choose the correct field type for different variables.

# User Fields

User fields belong to users. For example, each user has their own name and email address. So "name" and "email" should definitely be created as user fields.

# Bot Fields

Bot fields belong to the bot. For example, a restaurant bot holds an address and contact number of the restaurant. So "restaurant_address" and "restaurant_contact" should be created as bot fields. Because you don't want to manage different addresses or contacts of your restaurant for different users.


"Field Name" is a must and no space allowed, you can use underline to separate words. Then pick a variable type. Add default value or description if needed. (default value is for bot fields only)

There are 6 types of variable in UChat:

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...

Folders can be used to organize variables. Trust me, you will need it when your flow goes big. 🧐

To create new fields in the question step:


Type in a new variable name and click it in the drop-down list:


# 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.

# Answer Type in Common


# Ask for Image / Audio / Video / File / Record



you will need text variables to save the URL links of these 5 types of answers

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.


# 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 "[email protected]". 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.

# No Input

Similarly, "No Input" helps you redirect the flow when user input expires.


# 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.

# Facebook - Question

Answer types for Facebook question step are all covered in Answer Type in Common.

# WhatsApp - Question

Answer types for WhatsApp question step are all covered in Answer Type in Common.

Note that

Unlike Facebook Messenger, WhatsApp doesn't have a date picker when user makes Date/Datetime input. So you might need to prompt users "please input the Datetime as format: YYYY-MM-DD hh:mm:ss".

# Voice - Question


# Ask for Speech

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.8, ask for re-input.

Use "Advanced Settings" to help improve the conversion:


Select a model and language. More importantly, provide the bot with some hints, keywords that might appear in speech (separated by commas and no space).

# Ask for DTMF (Keypad)

DTMF refers to keypad input, including number 0 to 9, * and #. This is what you might be familiar with like "Press 1 for xxx, press 2 for xxx..."


"Number of Digits" means how many digits to expect. For example, usually 16 digits are needed for a credit card number.

"Stop key" is usually "#" but it is also editable.


remember to adjust the "No Input" time out according to needs.

# Ask for Record


Again, same as asking for picture, audio, video and file, you will need a text variable to save the URL link of the record.

Check advanced settings for more details.

# Ask for Transfer

Transfer feature is more like an Action rather than a Question.


You can choose to record the conversation after transferring for training purpose, etc.

# Ask for Payment


  • Edit prompts

All prompts are already set in English. Feel free to change it if needed like changing to another language.

There are 3 pieces of information to gather for a card. No.1 credit card number, No.2 expiration date, No.3 CVV and postcode if needed. Each information has 3 speeches to set, asking, timeout and invalid:


  • Payment Connector

To get a "Unique connector ID", you will need to access your phone number provider.

Twilio, for example, go twilio.com (opens new window), follow step 1 to 4 in the following 2 pictures:

question question

Choose your payment service provider, let's take Stripe as an example.


Install, give a "UNIQUE NAME" yourself and click "Connect with Stripe". This "UNIQUE NAME" is then your "Unique connector ID", copy it back to UChat.


note that for "MODE", choose "test" when you are testing and choose "live" when you are ready to accept real payment.


  • Advanced Settings

Remember there is a postcode option in "Edit prompts"? "Collect postcode" is where you decide to use that option or not.

Inactivate the "One Time Token" for recurring payments. Otherwise, activate it.

"Description" is submitted along with the payment details. For example, you can provide “Payment of $20.52 submitted from Phone Number (xxx)-xxx-xxxx” to create a record to show which call created the payment.

# SMS - Question

Answer types for SMS question step are all covered in Answer Type in Common.

# WeChat - Question

Answer types for WeChat question step are almost covered in Answer Type in Common.

Note that

Unlike Facebook Messenger, WeChat doesn't have a date picker when user make Date/Datetime input. So you might need to prompt users "please input the Datetime as format: YYYY-MM-DD hh:mm:ss".

# Telegram - Question

Telegram flow is our newly added flow type. It is similar to Facebook flow except for some exclusive features with Facebook. Please check Facebook flow for guidance for now. Text tutorial about Telegram flow will be updated shortly.

Last Updated: 4/15/2021, 4:41:19 AM