Skip to content
FlexiPedia logo

Question Step

Discover how Flexito's Question Step feature can enhance user interaction by offering diverse input options. Whether it's collecting quick responses, handling media uploads, or facilitating secure payments, this guide will show you how to effectively set up and manage these funct

Flexito OmniAI
Beginnerv4
Read in:

Listen to an audio overview

A short, AI-generated podcast-style summary of this article.

Discover how Flexito's Question Step feature can enhance user interaction by offering diverse input options. Whether it's collecting quick responses, handling media uploads, or facilitating secure payments, this guide will show you how to effectively set up and manage these functionalities to streamline user engagement and improve data collection.

Understanding the Basics of Question Step

Quick answers provide users with an easy way to respond without typing. When you configure quick answers:

Set Quick Answers

Quick answers are a user-friendly feature allowing users to click instead of typing. When you configure quick answers:

"Answer Text" is what users see, while "Answer Value" is what is stored in the variable.

Quick answers can be set for all channels. Some channels, like Facebook, display them as buttons, while others, like SMS, do not. In such cases, you should provide instructions on how to trigger the quick answers.

How to Prompt and Configure Quick Answers

In the question box, you might say "reply 1 for service A, reply 2 for service B," etc. Then, configure the quick answer by setting "Answer Text" to "1", "2", etc., for matching, and "Answer Value" to "service A", "service B", etc., to save the user's choice.

Channel

How to Provide Quick Answers

Facebook

quick answers will be displayed as buttons

Telegram

quick answers will be displayed as buttons

WeChat

use buttons instead of quick answer or give prompt

WhatsApp

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

Google

quick answers will be displayed as buttons

How Quick Answer Matching Works

When a user's input matches any "Answer Text," the quick answer is triggered (case-insensitive). The order of quick answers is crucial, as the bot checks them sequentially and stops once a match is found.

Skip Button

Include a skip button if the question can be skipped. The skip button label is customizable.

No Match

The "No Match" feature is useful because different answer types have specific patterns. For example, an email must be in the format "". You can set a retry message like "Wrong email, please try again" and redirect to another step after several failed attempts.

However, the "" format only filters out incorrect emails, not fake ones. To verify if an email is real, consider using a third-party verification tool via Mini-App.

No Input

The "No Input" feature allows you to redirect the flow when user input times out. By default, a question expires after 1 hour, but you can shorten this if necessary.

Different Types of Question Formats

Rich Media

Request Image / Audio / Video / File / Record

You'll need text variables to store the URLs of these five types of responses.

When a user uploads a document, the URL link to the document is saved in the variable, rather than the document itself, due to potential large file sizes. To send the document later, choose "Send Media From URL" and enter the variable.

  • Rich Media (#QuestionStep-RichMedia)

  • Request Image / Audio / Video / File / Record (#QuestionStep-AskforImage/Audio/Video/File/Record)

Request Choice

This question type presents a list of limited quick answers, and users must select from these options. For instance, when selecting a property type, you might list house, townhouse, and apartment as quick answers. If the user does not select one of these, a retry message will appear.

Request Date / Datetime

Except for Facebook Messenger and Google My Business, other channels lack a date picker for Date/Datetime input. Prompt users to "Please input the Date / Datetime in the format: YYYY-MM-DD / YYYY-MM-DD hh:mm:ss." Other formats will not be recognized.

Request Phone Number

The basic validation for Phone Number Questions includes:

  • 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

Request Email

The basic validation for email includes:

  • the value need to have @

  • the value need to have .

Request Location

This unique question format is available for the WhatsApp channel and currently supports only on-premise WhatsApp numbers.

When triggered, WhatsApp will request access to the user’s current location. If shared, the latitude and longitude are saved into the user-defined custom field.

Silent Input

Silent Input captures multiple user inputs over a set duration and combines them into one response. Unlike other question nodes, it doesn't require asking a question to capture responses.

You can adjust the input duration in the “Advanced Settings.”

Voice Channel Question Step in Voice Bot

You can insert a URL link to an mp3 file in the text box (beginning with "https://" and ending with ".mp3" or ".mav") in a Send Message Step or Question Step. This allows the bot to play the audio file instead of converting text to audio.

You can directly place the link in the text box or store it in a text variable. You can also combine the audio URL with text, but ensure they are not connected, as the system won't recognize it as an audio URL link. Refer to the screenshot below.

Voice Bot - Request Speech

Speech input is typically used for short responses. When the bot requests speech input, it listens to the user and converts the speech to text, providing a confidence score between 0 and 1. The closer the score is to 1, the more accurate the speech analysis.

Consider adding a Condition step to disregard conversions with low confidence. For instance, if the confidence score is below 0.7, prompt the user to re-input.

Use "Advanced Settings" to enhance conversion:

Select the appropriate speech model and language. The "Numbers and Commands" speech mode improves recognition for number strings, etc. Be aware that Twilio charges for this mode. Provide the bot with hints or keywords that might appear in speech, separated by commas without spaces.

  • Question Step in Voice Bot (#QuestionStep-QuestionStepinVoiceBot)

  • Voice Bot - Request Speech Input (#QuestionStep-VoiceBot-AskforSpeech)

  • Voice Bot - Request DTMF (Keypad) Input (#QuestionStep-VoiceBot-AskforDTMF(Keypad))

  • Voice Bot - Request Recording (#QuestionStep-VoiceBot-AskforRecord)

  • Voice Bot - Request Call Transfer (#QuestionStep-VoiceBot-AskforTransfer)

  • End Calls (#QuestionStep-HangupCalls)

  • Add Phone Number Extension (#QuestionStep-AddExtensiontoPhoneNumber)

  • Transfer to Multiple Numbers (#QuestionStep-TransfertoMultipleNumbers)

Voice Bot - Request DTMF (Keypad)

DTMF refers to keypad input, including numbers 0 to 9, * and #. It is often used to create a main menu for your voice bot, similar to "Hi, press 1 for xxx, press 2 for xxx, ..."

"Number of Digits" specifies the expected digit count. For example, a credit card number requires 14 or 16 digits, while a postcode requires 4 or 6 digits.

The "Stop Key" is set to "#" by default but can be changed. It's needed when the digit count is unknown. Remember to mention the "Stop Key" in the question box. 🤖🤖

The "No Input" timeout in Voice Questions is crucial. It's often set to a few seconds, whereas other channels have a default timeout of 1 hour.

Voice Bot - Request Record

Similar to requesting an image, audio, video, or file, you need a text variable to store the URL link of the recorded file. Check advanced settings for details like "Stop Key" and "Max Record Duration."

You can access the recorded file via the URL link or manually from the "Recordings" section shown below:

Here, you can view all your "Record Question" and "Transfer" recordings with a "Play" button to listen to the audio.

Voice Bot - Request Transfer

The transfer feature functions more like an Action than a Question. Since actions in the Action step are shared across all channels, transfers are included in Question steps.

The transfer number must be in E164 format, e.g. (tel:).

You can record the conversation post-transfer for training purposes, etc. Similarly, check the recording from the "Recordings" section in the left sidebar.

Hang up Calls

If clients need to return to the bot after a transferred conversation, there are two options:

  • the transferred party hangs up first

  • your clients press the star key (enable this option in advanced settings)

In either case, inform your clients about this before the transfer.

Add Extension to Phone Number

Add an extension to a phone number using a hash key, e.g. (tel:)#wwww1234. Each "w" represents a half-second pause.

Suppose you have a voice bot for the number (tel:), and you place a DTMF question after the start point of the main flow. The extension "1234" will be treated as input for this DTMF question, effectively routing the calls automatically.

Transfer to Multiple Numbers

You can enter multiple numbers in the "Transfer To Phone Number" field, separated by commas only, e.g. (tel:), (tel:)#wwww1234, (tel:).

The bot will call these numbers simultaneously. The first person to answer receives the transfer, and the other calls stop ringing. Your phone number provider charges for only one call, as only one number is successfully transferred.

Voice Bot - Request Payment

The payment feature functions more like an Action than a Question.

  • PCI Mode (Twilio) (#QuestionStep-PCIMode(Twilio))

  • Modify Prompts (#QuestionStep-EditPrompts)

  • Payment Connector (#QuestionStep-PaymentConnector)

  • Specify Charge Amount (#QuestionStep-ChargeAmount)

  • Capture Response (#QuestionStep-Response)

  • Handle Payment Failures (#QuestionStep-PaymentFail)

  • Generate One Time Token (#QuestionStep-OneTimeToken)

  • Instructions to Charge with Token (#QuestionStep-HowtoChargewithToken)

  • Add Description (#QuestionStep-Description)

  • Test with a Credit Card (#QuestionStep-ACreditCardforTesting)

PCI Mode (Twilio)

Twilio users need to enable PCI mode in their Twilio account to process payments, whether in test or live mode.

Search for "Voice Settings" in your account,

click the "Enable" button:

Edit Prompts

Prompts are preset in English but can be changed to another language if needed. You need to gather four pieces of information for a card.

  1. credit card number

  2. expiration date

  3. CVV

  4. postcode (if needed, enable this option in advanced settings).

Each piece of information requires three speech settings: asking, timeout, and invalid:

Payment Connector

To obtain a "Payment Connector," which is a "Unique connector ID," you need access to your phone number and payment service providers. For example, with Twilio and Stripe, visit twilio.com () and follow steps 1 to 4 in the next two images:

Install and name a "UNIQUE NAME" yourself, then click "Connect with Stripe." This "UNIQUE NAME" becomes your "Unique connector ID," which you should copy to Flexito OmniAI.

For "MODE," select "test" during the payment process testing and "live" when ready to accept real payments.

Specify Charge Amount

Enter a direct number like "99.99" or use a number variable here.

Response

You need a JSON variable to store the payment result. Here's an example response including card details, confirmation code, and payment result.

Payment Fail

Use the "Payment Fail" option to handle failures. For example, send "Something went wrong" and return to the Payment Step.

One Time Token

You can choose to process a payment immediately or later.

  • If you opt to charge immediately:

enter a value greater than 0 in the "Charge Amount" box

  • If you plan to charge later

enter "0" in the "Charge Amount" box. This generates a token for future use.

There are two token types: one-time and reusable. A one-time token allows a single charge, while a reusable token permits multiple charges.

If you set the charge amount to "0" and enable the "One Time Token" option in advanced settings, you receive a one-time token. Otherwise, you receive a reusable token.

Different combinations of charge amount and "One Time Token" option yield different payment results:

Charge Amount

One Time Token

What Will Happen

Payment Result


0


Enabled


get one-time token


> 0, e.g. 5


Enabled


charge

0

Disabled

get reusable token


> 0, e.g. 5


Disabled


charge

This means that whenever you set a charge amount greater than 0, enabling the One Time Token option is irrelevant; you will charge your client immediately and receive a payment confirmation code. The code starts with "ch_" if using Twilio.

Conversely, a one-time token starts with "tok_" if using Twilio, while a reusable token is the customer's ID, starting with "cus_" if using Stripe.

How to Charge with Token

Refer to your payment service provider's documentation on creating a charge. For example, to make a payment with a reusable token using Stripe.

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

After clicking the test button, this is the response if successful:

The response includes an ID starting with "ch_", which is the payment confirmation code, indicating a successful payment.

Description

"Description" is submitted with payment details. For instance, you might include “Payment of (#) submitted from Phone Number (xxx)-xxx-xxxx” to document which call initiated the payment.

A Credit Card for Testing

Use these card details for testing purposes if necessary:

Credit card number: 4242 4242 4242 4242 Expiry date (MM/YY): 12 25 (choose a future date) Zip code: 94105 CVC security code: 333