Table of Contents

Flow Builder Overview

This section will give you an overall idea about how to use the Botbuz flow builder. You can open a flow and try side by side when you learn it.


💁 Please make sure you go through every detail on this page before you start building bots.

Flow, Sub Flow and Step

Flow Type

To begin with, you need to create a flow. Currently, Botbuz provides you with 11 types of flow:

Sub Flow Type

Flow consists of sub flows. There are 3 types of sub flow:

Step Type

Sub Flow consists of steps. There are 8 types of steps:


The differences among different types of flow are Flow Setup, Send Message Step and Question Step. Each channel has its own limitation of message types. For example, you can display a product gallery in Facebook Messenger while the SMS channel doesn't support that.

Publish Version & Draft Version

In BotBuz, each flow has a Publish Version and a Draft Version.

  • Publish Version your bot talk to clients using the publish version.
  • Draft Version any editing of steps will be saved automatically to the draft version. you can edit your flow without influencing the bot and test the draft version before you "Publish".

From Publish Version to Draft Version, 1 way:

  • click “Edit Flow” on the upper left/right corner of the flow to enter the draft version


You must enter Draft Version before you edit a flow.

From Draft Version to Publish Version, 3 ways:

  • click “Publish” to save your draft to a new Publish Version
  • discard changes and revert to the newest Publish Version
  • keep draft and switch to Publish Version (by doing this, you can have a look at your publish version and when you click edit and come back, your draft is still here)


Don't worry if you accidentally quit during your editing, the system will keep all your modifications in Draft Version. So when you come back, simply enter Draft Version again and you can see your modifications remain intact.


You might want to create a flow first, then open the flow side by side when you read the following instruction (Facebook flow used as an example).

After entering a flow, this is what you will see:

On the top, there is a navigation bar. From left to right there are:

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.

On the left-hand side, there is a sidebar. From top to bottom there are:


Features in Automation, Contents, Tools and Settings can be different from channel to channel. In Settings, usually owner can see all the settings like bot user limit while admin and member only see part of them.

Flow Builder

Apart from those in the above screenshot, there are a couple of more tips for using the flow builder:

Change Themes

Before you start, you can pick your favourite theme by clicking “Change Theme”:

choose one of them and “Apply Change”.

Hide Mini-map or Tooltips

Mini-map is useful when you need to move your workspace in some situations. For example, when you click and drag inside a canvas, you are moving the canvas as a whole instead of everything in the builder:

You can hide the mini-map by clicking the “Hide Flow Overview” option.

With tooltip, you can see description for every feature you see in the flow builder like this:

The tooltip includes a title, description, image, video link and documentation link. It is friendly to new users. For users who are already familiar with the system, you can choose to disable the tooltip by clicking the “Hide Flow Tooltips” option.

Basic Operations to Build Flows

Edit Step:

Click on a step to edit it, “Edit Panel” will show next to the sidebar.

Click step name to edit it. You can choose the next step at the bottom of the edit panel or drag connectors from the circle to the tile of another step.

Connect Steps:

Create a new step or choose an existing one to be the next step. For dragging connectors, see below:


When you choose an existing next step, a line will be connected from the current step to the next. Too many lines can be messy, get a Goto step to help you organize! In a Goto step, you can nominate the next step without creating a line connector.

Select Multiple Steps (Move to Canvas/Sub Flow)

We've just learned how to move the builder by clicking and dragging. For selecting multiple steps, it's a bit similar. Hold the Shift key then click and drag to cover the steps you would like to select:

Alternatively, ctrl + click them one by one:

The selected step has a green border. After selecting multiple steps, click “Create New Canvas” to organize these steps in a canvas box, or move them to an existing sub flow. To delete multiple steps, hit the “delete” button on your keyboard after choosing several steps:

Delete on Mac

On Mac OS computer, hold fn and hit Delete to remove steps. Or use the "Delete Selected button in the editing panel.


The green start point is the entrance of a sub flow. It can't be moved to other sub flows or deleted even you include it in a group of steps.

Copy and Paste Steps

After you select a step or multiple steps, use Ctrl + C to copy and Ctrl + V to paste it to:

  • the same subflow
  • different subflows in the same bot/flow
  • different bots/flows but the same channels (associate custom fields will be created automatically)
  • different channels (unsupported features will be removed)


Please note that you can only paste ONCE. Copy again for another paste. This is to prevent bulk pasting which can quickly blow up the flow.

That's all about it for Flow Builder Overview!! 🎉 Try building your first flow now. 😎

Field (Variable)


Before the detailed introduction of each step, let's take a look at what is field(variable) in Botbuz. It might take you a moment but this is essential to know more about the system.

Field, aka variable, is a container to hold a value.

User Field

User field belongs to users. For example, each user has their own name and email address. So “name” and “email” are user fields.

Bot Field

Bot field belongs 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 every user.

System Field

System field is created by the system with pre-defined variable name and variable type. There are system bot field and system user field:

Some system fields only exist in the specific channel. Check the table below for how to edit system field:


If the channel doesn't support timezone in user's profile, or, the channel supports but the user don't have a timezone value, workspace timezone will be used instead.

User Id in Different Channels:


The unique id from the channel is only unique in your Facebook page, Telegram bot, Slack workspace or WeChat account, not the unique id in the whole Facebook, Slack, etc.

Variable Type

There are 6 types of variable in Botbuz:

Boolean Value

When these values stored in the field, the boolean return false, otherwise it goes true:

  • empty
  • null
  • 'false'
  • false
  • 'no'
  • 0

Create Custom Field

Wow, now you are a master 👨‍🎓 of field! Let's try it out! 😎😎

You can create variables in 2 ways:

Create Custom Field in Contents Section

  1. go “Contents” from the left sidebar
  2. select User Fields or Bot Fields
  3. use folder to organize your fields if needed

Click the blue “+ New User/Bot Field” button on the right side to create a field. “Field Name” is a must. You can use any character to separate words like underline or space. We suggest you keep the field name as concise as possible, to avoid any possible display issue.

After that, pick a variable type. Add default value or description if needed. (default value is for bot fields only) Folders can be used to organize variables. Trust me, you will need it when your flow goes big. 🧐

Create Custom Field in Question and Action Step

To create new fields in for example, the question step:

Type in a new variable name in the “Enter Field Name” box and click it in the drop-down list. Select correspond variable type and here you go.

Another example, create in an integration:

Send Message Step

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:

  1. click the green start point
  2. in the edit panel, “Select Next Step”
  3. choose “Send Message” step
  4. click the “Send Message” step
  5. click text type message
  6. enter your message
  7. “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. Check by type below:

Send Text / Variable

Botbuz 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)
  • from an 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, 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 Botbuz 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.

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

  1. choose a JSON variable first
  2. click “</>” or type "{{" in the text box
  3. 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, Botbuz 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:

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:


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”:

  1. click the row “item” to get the path “$.item” or type in the path directly
  2. 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 Botbuz 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.

Facebook - 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:

Try to add some buttons, quick replies and test it. You will see their differences.

Telegram - Send Message

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.

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

SMS - Send Message

SMS bot can send only text and image.

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


For voice bot, you can set a default language at the Green Start Point or set it separately for each send message/question step.

Botbuz has built a Mini-App called “VoiceMaker” using a third party API which provides you with a better quality of text-to-voice conversion! Download the Mini-App in integration section. The documentation about “VoiceMaker” is in progress.

Google My Business - Send Message

Message types with Google my business flow:

All types are covered above, please check message type in common for all/some of the channels. Find location type in “Rich Media”.

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

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

However, a “[email protected]” 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.

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.

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

Note that

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

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.

  1. credit card number
  2. expiration date
  3. CVV
  4. 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 (opens new window), 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 Botbuz.


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.


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

Action Step - Variable Operation

Botbuz provides you with various built-in operations for variable modification.

There are 6 types of variable in Botbuz:

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.


"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


Index starts from 0. Every character counts including space and punctuation.

replace string / replace string case sensitive


In case sensitive situation, you have to put exactly "Hi" rather than "hi", "HI" or "hI".

to lower / upper case

generate random text

This feature is useful when you need to generate one-time verification code or reference code.

url encode / decode

base64 encode / decode

to URL friendly slug

get text before/after ...

Description: get part of the text.

Set Number Variable

get text length

generate random number

add / subtract / multiply / divide / modulus / power / natural logarithm / square root


in "natural logarithm", when you are calculating log2(8) = ? put 8 as "Value" and 2 as "Number".


floor / ceil

Description: get approximate integer.

Set DateTime Variable

from formatted text

add minutes / hours / days / weeks / months

Action Step - JSON Operation

JSON is also a type of variable. It is used to store and manage a series of variables including normal variable 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.


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:

Action Step - 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:

  1. choose a request type such as GET, POST, etc
  2. paste your request URL / endpoint
  3. adjust “URL parameters”, “Headers”, “Body” or “Authorization” section if needed. e.g. setup API key
  4. click “Test” and area 5 will show in the “Response” section with a response code
  5. click on “Response Headers” to expand the header for more details and the received data is in blue
  6. choose which part of the data you need by clicking the circle on the left-side accordingly
  7. after clicking area 6, the JSON path for the selected data is automatically shown here. $ means the whole JSON.
  8. 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
  9. 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.


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


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.


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.


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.

Action Step - Send Notification

This action allows your bot to send notification through various channels, including

  • Email
  • Slack
  • SMS
  • Phone Call

It's all in the “Notification” of your Action step.

Email Notification

To send an email notification, you will need to setup your email integration first. Check how to setup email integration?

Unlike “Send Email” step, email notification only supports text message type. Check “Send Email” step in “Email Integration” page if you need more message types like images, buttons, files, etc.

Put the sender's address at “Email Profile” and the receiver's address at “To Email”.

Slack Notification

Similarly, to send a slack notification, you will need to setup your slack integration first. Check how to setup slack ingegration?

In the pop-up window,

  • choose a Webhook
  • choose a default channel or name another one
  • pick a message type, add as many as needed
  • for example, “Section” type, put your message at area 4 and add photo or field value if needed
  • use the “Test” button to send the message for test and adjust accordingly
  • once finished, click “Save”.

SMS Notification

Setup a sender number before you make a SMS notification. Check how to add phone number?

You can use the “generate random text” operation with text variable to get a random security code and send out for verification purpose shown in the pictures.

Make Phone Call

Same as SMS notification, a phone number is needed to make a phone call. Check how to add phone number?

Moreover, you must make a voice flow connected to this phone number otherwise your voice bot don't know what to say.

Ref Payload

Ref payload is used to passing on a message to the voice bot.

For example, set the payload to “support” here in the notification action and in your voice flow:

Goto the Start Step in your Main Flow and save the ref payload in a custom field.


You are allow to pass on a JSON variable in the ref payload but base64 encode and decode are needed before and after this. See base64 operations in Set Custom Field.

Action Step - Smart Delay

In Progress ...

The documentation is still in progress. Should you have any query, please feel free to contact us via the bot buz support bot in the bottom right corner on

Action Step - JavaScript Function

In Progress ...

The documentation is still in progress. Should you have any query, please feel free to contact us via the Botbuz support bot in the bottom right corner on (opens new window)

Condition Step

With Condition step, you can go to different steps/sub flows depends on conditions.

In your Condition step, click on ”+ Add Condition Group“ to set at least one condition group. “Otherwise” group is always there.

You can make as many condition groups as you need. The matching start from the top to the bottom, once a group matched, the system goes to a named step. When it fails to match all condition group, the “Otherwise” group will take over it. So it's always a good practice to name a step in the “Otherwise” group even it is very unlikely to be used.

Another important thing to know is the difference between “All conditions” and “Any conditions”. It is sitting at the upper right corner of each condition group.

You can list more than 1 condition in a condition group. When you do, it matters whether you choose “All” or “Any”.

“All Condition” means to get this group matched, you will need to have all the conditions matched in the group.

However, to get a group with “Any Condition” matched, you only need to have one of the conditions matched.

Tag & Sequence Condition

For tag and sequence condition, you can choose “in” or “not in” from the “Operator”. Choosing multiple tags/sequences is allowed.

Text Variable Condition

These are all the operators for text condition.

For “has any value” and “is empty” of all variable types, when you clear a variable, the variable becomes empty. Thus, “has any value” is false and “is empty” is true for this variable.

Number Variable Condition

These are all the operators for number condition.

DataTime Variable Condition

These are all the operators for DateTime condition.

Note that you will need to put “value” always as the correct format “yyyy-MM-dd HH:mm:ss” no matter which displayed format you choose for that variable.

Please note that

"before/after" is different from "time before/after". The former compare the whole datetime value while the latter only compare the time value.

JSON Variable Condition

These are all the operators for JSON condition.


The very last 3 operators, "has item matched with ...", require the JSON to be a list of variables, not a list of JSON. In other words, if your JSON is storing a list of normal variables, these 3 operators work. They won't work for a JSON storing a list of JSON.

Custom Input

Custom input is built for compare values in JSON variable. Search “custom input” in the if field:

Pick a value from a JSON, then you can compare it as you use the text variable condition.

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.

Split Step

With Split step, you can go to different steps/flows depends on probability.

Split step can be used to build many interesting functions, like

  • changing speeches rather than same responses all the time
  • testing your new functions with just a small group of clients to get feedback
  • or making a fun lottery!

In your Split step,

  1. click ”+ New Variation“, add more than 2 variations
  2. change variation title if needed
  3. adjust weights as you want
    • directly put percentage numbers like 30 and 70 then you will get 30% and 70%
    • alternatively, put weights like 1 and 2 and let the system calculates the percentages 33% and 67% for you
  4. select next steps for each variation
  5. save the picked variation for later use if needed

Usage Examples

Changing Speeches:

Testing new Functions & Get Feedback:

Fun Lottery:

Goto Step

“Goto Step” helps you jump to another step in the current subflow or jump to the start point of another subflow.

Create new subflow directly, or choose an existing one. You can only jump to a step in the current subflow.

Goto Step is going to make your flow look more organized and clear to understand.

Before using Goto:

After using Goto:


Canvas helps with step organization.

We've learned that to move the workspace, click and drag the workspace. For selecting multiple steps, it's a bit similar. Hold the Shift key then click and drag to cover the steps you would like to select:

Alternatively, ctrl + click them one by one:


If the edit panel didn't show, ctrl + click one of the green steps twice to de-select it and re-select it again. The panel should show.

After selecting multiple steps, click “Create New Canvas” to organize these steps in a canvas box.

Click the title of the canvas to edit canvas's title or add a description. Minimize the canvas by clicking the ”-“ button on the left side of the canvas title.


You will need to select at least 2 steps to create a canvas or move them to other sub flows. So if you have only 1 step to move or put in a canvas, try adding a temporary step to help and discard it after that.

Finally, to add and remove steps from an existing canvas, simply select a step or multiple steps, then drag them into or out of the canvas:

When you move steps into the canvas, the background color of the canvas changes, release steps when it turns grey from white.

Sub Flow

Same as “Canvas”, “Sub Flow” can also help with step organization. “Canvas” organizes steps in a specific subflow while “Sub Flow” organizes steps in the whole chatbot/flow.

Create Sub Flow

IGo “Flows” from the sidebar, click ”+ New Sub Flow“, choose a flow type, give a name and save.

Click on the subflow to enter and start editing it. For more operations, click on the 3-dots icon. The Sub Flow Ns is a unique subflow ID in the chatbot.

Folders are used to organize subflows.

Move Steps to Sub Flow

To move a step or multiple steps to another subflow, select the steps first, then you can either

  • use the Move to Subflow button in the editing pannel, or
  • copy and paste them

To select multiple steps, hold the Shift key, click and drag to cover the steps

Alternatively, hold ctrl key and click steps one by one:

After selecting multiple steps, editing panel shows. “Select sub flow”, then click “Move to sub flow”.


You will need to select at least 2 steps to create a canvas or move them to other sub flows. So if you have only 1 step to move or put in a canvas, try adding a temporary step to help and discard it after that


If you find yourself unable to click "Move to sub flow" after choosing a sub flow, perhaps you included the green Start Step in your selection. Because the green start point of any subflow can't be moved to other subflows. You can solve this issue by de-selecting the green start point.

To copy and paste, use Ctrl + C to copy the selected steps, then go to the destination subflow, use Ctrl + V to paste there.

Call Sub Flow

After creating subflows, you can then call a subflow via:

  • Goto Step
  • Keyword
  • Sequence
  • Broadcast
  • Facebook Widget
  • Comment Growth Tool
  • Triggers
  • Live Chat
  • Menu Items
  • Inbound Webhooks
  • API call


A workflow can be considered as a backend flow where you can automate tasks such as adding or removing tags, set custom field variables, do external API calls.

This way the conversation you have with the subscriber will not be affected by needing to wait to apply all those actions and the experience is as smooth as possible for that end-user.

Create Workflow

To create a workflow just go to the flow overview by selecting Flows from the left-hand menu.

Then press the button + New Sub Flow

Select the workflow flow type then give it a name. Once done press the button Create to start creating your workflow.

Once you create your flow and you end up in the flow builder you will notice that you will have access to fewer blocks than when selecting a regular or function flow.

Available blocks are:

  • Action
  • Condition
  • Split
  • Send Email

As mentioned this flow is meant to create a backend flow that you can trigger from any other flow inside your chatbot to handle system tasks like adding tags, set custom fields, but also sending emails.

Workflow Example

Let’s take an example of how a workflow can be used.

A user signs up with an email and or phone number and you want to sync this information with your CRM platform of choice.

So soon as you grabbed the credentials from the user you can make an API call using the external request block inside of the action module.

You would also want to tag the user inside the chatbot for completing the onboarding step. After done we send an email notification to an admin that a new lead has been created to follow up on.

A workflow can then look something like this;

If you were to incorporate this into the flow that has the actual conversation it might become an issue as the conversation could be on hold for several seconds or more to finish all these system processes. And you might lose the user as he or she thinks the conversation is done.

Trigger Workflow

It is very simple to trigger the above workflow inside of any other flow that you build.

Just insert an action block, go to advanced actions, then choose trigger workflow at the bottom

You can then select any workflow you created. This workflow will then be processed in the backend while the conversation with the user will not be affected and continue without any delay.

Function Flow

A function flow is a fantastic way of preventing you to create repetitive flows over and over again. Think of when you need ask for emails or phone numbers.

With a function flow you will be able to send the user to that one flow, then once completed the user can continue exactly from the point they left off in the previous flow.

Create Function Flow

To create a function flow go to Flows from your left-hand menu, then press the button + New Sub Flow.

Select the Function flow type and name your flow. Once done press the button Create and you will be taken to the flow builder.

Function Flow Example

Once inside the flow builder and wanting to insert a new block you will see that you have all the blocks at your disposal just like in a regular flow, and one extra called Output

This output is what makes this function flow so unique as it gives you the ability to send the user back to the previous flow (if you like) exactly where he or she left off.

Let’s create an example where we ask the user for an email and add an output module to it;

As you can see a simple flow but with the benefit this is the only function of the flow, asking for an email.

Call Function Flow

After this flow is finished you can return the user to the previous flow to continue the conversation there if you like.

Let us show you how that could look like;

There are many use cases for function flows so you can get as creative as you like.

Multiple Outputs

Multiple Output Steps are supported in your Function Flow.

When you call a Function Flow with multiple outputs, the titles of those outputs will show in the Goto Step and you can handle it accordingly.

Live Chat

Besides being able to create chatbot automation you can also follow up with your subscribers through our live chat inbox. We have one available for every channel.

You can access the live chat in two ways:

  • Through the main dashboard overview
  • Each individual chatbot channel

How to access live chat through the main dashboard

When at your main dashboard overview you will have a tab on the top named Live Chat.

The biggest advantage of this overview is that you can see all the channels you have built chatbots on. So going to live chat from this main dashboard is very easy. Just select the chatbot and the live chat will appear

How to access live chat through a chatbot channel

If you are within any of your channels you can also access the live chat from that channel. Just choose Live Chat and the live chat will open up displaying all of your subscribers inside that chatbot channel.

How to use Live chat

Once you select any of your subscribers you will then get to see the live chat in action. Many options and information are present so let us walk you through them

Section 1 displays subscribers(bot users) who interacted with the chatbot

  • Click on Inbox to switch between Inbox and Done. When you finish a conversation, move the users to Done.
  • Use the Search bar to search a conversation by user name.
  • Click on a user to view conversation detail and user profile.

Section 2 shows the chat your subscriber has with your chatbot

  • On the top of it, click the <= icon to hide Section 1, the user list area.
  • Right next to it is the subscriber's profile photo and full name.
  • In the upper-right corner, click on the tick icon to move the subscriber to Done.
  • And the 3-dots icon offers a Hide message from bot option and Manage Shortcuts option

Hide message from bot lists messages sent only by the user and agent, helping you get a clearer look at the conversation so that agents don't need to go through too many messages.

Shortcuts help agents make quicker responses to the user's query. You can also manage your shortcuts in Tools - Shortcuts.

  • Hover your mouse on a message sent by the bot, click on the little v icon to resend the message or jump to this step in the flow, in case you want to edit anything.

Section 3 allows agents to reply to your subscribers

  • Write a reply in the blank area.
  • Type a slash and keyword to search for a shortcut. Use up and down keys to go through shortcuts, hit the enter key to get the pre-written content.
  • On the right side, </> icon is used to call a variable, e.g. First Name of the user. You might also want to call it quicker by typing to left curly braces {{ and searching a field name.
  • On the bottom of it, the most left-hand side icon is used to change persona. The default icon refers to the default persona, the chatbot itself. Add persona via Contents - Personas.
  • Switch between Reply and Note to change reply mode. When you are in Reply mode, the reply area is in white. The content will be sent to your subscriber directly. When you are in Note mode, the reply area is in yellow. The content will be displayed in the conversation area but in yellow and these notes won't be sent to your users. They are for internal reference only.
  • the final 4 icons in the bottom-right corner are for sending emoji faces, media (image, gif, audio, video & file) and subflows. The last icon is to send the message/note. You can hit the enter key instead.

Section 4 displays the profile of the subscriber

Section 5 shows notes, tags, subscribed sequences, OTN topics and all custom user fields

  • Add or remove tags from this overview directly. Very useful when it comes to getting subscribers into lead funnels and such.
  • For OTN topics and sequences you can only remove them from the user.
  • The same goes for the user fields, you can view, adjust the values or delete them entirely

Sending subflows to users

After you finished a talk with a subscriber you might want to send them to a subflow. This is easily done by pressing the icon. A popup window will then appear where you can select or search for your flow.

Once you select your flow press the blue button named Send Sub Flow and the flow will be sent.

NOTE: Do make sure you have disabled live chat mode before sending the subflow. Otherwise the chatbot will not be able to send the messages inside the flow.


Whenever agents reply in section 3, you will see the Pause Automation area automatically starts a 30 minutes count down. This means that, the chatbot will stop responding during the time. Agents can add on more time if needed. When time is up, the bot starts to reply again.

Bot User

People who opt-in to your chatbot by interacting with it are considered bot users. These become contacts inside of your chatbot channel and during the course of a single or multiple conversations, the chatbot will be able to gather information about them to give you more insights into your audience.

You can go to your bot users by going to the corresponding section in the left-hand menu once you have logged into one of your chatbots.

From here you will see a list with a complete overview of all users that have interacted with and therefore opted into your chatbot

Filter bot users based on conditions

Once on this overview, you can also quickly segment your users by using the filter option. Once pressed you will be able to use any condition/filter you like.

This gives you the ability to quickly see what tags someone has, or what values a custom user fields are.

An example of a filter could be that you want to know who amongst the bot users has given its email.

Another example could be when a user finishes the initial onboarding flow you tag them as such and you want to be able to see who did this.

User information

Once pressing a certain bot user a popup will appear and it will show all the collected bot user details so far.

You will see the following on the left side:

  • Name
  • Gender
  • Language
  • Timezone
  • Local time

Below the profile image, you will have the ability to either delete the user or download the user data. This will help you become GDPR compliant as users might request this from you.

You will also see the specific channel user id and some date and time information like subscribed, last interaction and such.

If we go with the right side of the user information you will see tabs for:

  • Notes
  • User tags
  • Subscribed Sequences
  • OTN Topics
  • Custom User fields

Only you press one of the tabs you will be able to view the data collected.

For tags, you will have the most options at your disposal.

You will be able to add tags directly to the user but also remove them as well.

For the topics Subscribed Sequences, OTN Topics you will be able to only remove them from the user.

For Custom User Fields you can either remove or change its value.

Importing or creating new users

For the SMS and voice channels, it is also possible to import or create users manually. In the top right, you will have the buttons to do so.

Creating a new user means adding a single user manually whereas Import means you can do this in bulk by means of a CSV file.



With “Keyword”, your users can easily jump to sub flows by typing in keywords rather than being lost in menus or buttons.

  1. go “Automation” from the sidebar
  2. click “Keywords”
  3. for “default reply”, see explaination below
  4. click ”+ New Keyword“
  5. choose a condition from “is”, “contains” or “starts with”
  6. put one or more than one keyword, separated by only commas, no space allowed
  7. choose a sub flow to send

Default Reply

Default Reply” is sent when the bot doesn't know what to reply. When the active button is off or no sub flow was chosen for “Default Reply”, the main flow will be sent.


So when you build and test flows, you can reply anything to quickly re-start the conversation. You can also adjust the frequency to send "Default Reply". Its default value is set to fire "Every Time".

You can also adjust the frequency to send “Default Reply”. Its default value is set to fire “Every Time”.

Advanced Default Reply

  • Want to have a smarter bot?
  • Want to reply a sentence rather than a sub flow?
  • Want your bot to understand more human languages rather than just keywords?


Use sequences to automatically send follow up / delay messages to customers. You can send multiple messages with different delays.

Create Sequence

Follow steps 1 to 3 and you will see this:

5 steps to create a sequence:

  1. give a sequence name
  2. click “Add Message”
  3. edit the settings (see Message Settings below)
  4. choose the sub flow to send
  5. repeat steps 2-4 to add more messages then click “Save”

Message Settings

This is how does the setting window look like:

1. The countdown to send the message

  • Messages are sent by order.
  • For the first message, the countdown begins when users subscribed to the sequence.
  • For other messages, the countdown begins when the previous message is sent.

2. Send anytime or between a time range

  • For “send anytime”, the message will be sent immediately at the end of the countdown.
  • For “send between”, if the countdown ends outside the time range, the message will be kept until the next available time.
  • Remember to check the timezone issue below.

e.g. You don't want to bother users at night so you set a message to send between 9 am and 6 pm. If there is a message that should be sent at 8 pm, the system will hold the message until 9 am tomorrow.

This can affect the next message because the countdown of the next message begins when the previous one is sent.

3. Send on which days of the week

  • Similarly, if you don't want to bother users at weekend, deselect Saturday and Sunday. See the example in the “send between” above.
  • Remember to check the timezone issue below.

4. Choose corresponding content type (IMPORTANT)

  • See “Content Type” introduction below.
  • If you are not sure about which type you should use, keep it default. Although the message might not be sent due to the 24 hours rule, the system will at least help you avoid being banned by Facebook.

5. Pick a notification type

About Timezone

If a channel has a timezone in the user's profile like Facebook, when the system check “send between time range” and “send on Monday to Sunday” settings, it's based on users' timezone first. If the user doesn't have a timezone or the channel doesn't support timezone in user profiles, then it's based on the timezone of the workspace.

Content Type

Any message sent over 24 hours after a subscriber’s last interaction must have a content type that matches its purpose (in accordance with Facebook Policy- Message Tags(opens new window)

Messages with type “Other” or without a content type will NOT be delivered to subscribers who interacted with you via Messenger more than 24 hours ago.


Sending messages that do not match the assigned content type may result in your page being suspended or banned by Facebook.

Default / Other

Can contain promotions and it will only send to users who interacted with your bot in the last 24 hours

Confirmed Event Update

Send the user reminders or updates for an event they have registered for (e.g., RSVP'ed, purchased tickets). This tag may be used for upcoming events and events in progress.

Post Purchased Update

Notify the user of an update on a recent purchase such as confirmation of transactions(invoice, receipt) and notifications of shipment status(product in-transit, shipped, delivered, delayed).

Account Update

Notify the user of a non-recurring change to their application or account.

Send Multiple Messages

When you send more than 1 message in your sequence, note that all the messages are sent in order.

In the above screenshot, for example, the “Booked” sub flow will be sent “Immediately” once the user subscribes to this “Appointment Follow Up” sequence. Because the first message begins the count down once the user subscribes.

The next message begins the count down once the previous is sent. Thus, the “Appointment Follow Up” sub flow will be sent 1 day after the “Booked” sub flow is sent.

Send Sub Flow

Make some sub flows to send specifically for your sequences. Please note that each Send Message step has its own “Message Tag”. The tag is set to “Other” by default.

Let's say, now it is over 24 hours since the user last interacted with your bot. You choose a non-default content type for a message in your sequence. This setting automatically changes the message tag of the first Send Message step in the sub flow you send.

Later, if the user responds, you are then able to send messages normally with the “default” content type. So, usually, you won't need to change any message tag in your sub flow

Subscribe / Unsubscribe Sequence

Go “Flow Actions”, and you can find the 2 sequence operations.

There are a couple of examples to use sequence, such as

  • “Event Follow Up” - send confirm message immediately once user registers and follow-up message as reminder or helper
  • “Get Feedback” - ask for feedback like 2 hours after the user talked to your bot
  • “Send Coupon” - send coupons when user put something in the cart but doesn't make an order for a long time


Triggers can help you automate certain processes in the chatbot. For example, when a user has opted-in for email you might want to sync this data with a CRM or Google Sheet.

To get to the trigger section you need to go to the left-hand menu and select Automation then choose Triggers. From here you will be able to create a new trigger by pressing the blue button on the top right named + New trigger.

Once pressed you will get to see the available triggers you can choose from;

How to create a new trigger

Let’s take an example of a trigger when someone pays for order inside your chatbot. Press the blue button + New trigger then select the trigger named as such: Order Paid From here a new pop-up window will open where you can set up the details of your trigger

You will be able to enable or disable the trigger, set up a condition if you need the bot user to match a certain filter before the trigger is activated, and you can add a note that will explain more about this trigger.

Great if you are working with a team or creating a template and need to clarify things.

Once done press the bottom right button named Save and you are now halfway done setting up your trigger.

Selecting your Sub Flow

Now that the trigger has been created we will be needing to add an action to it. You can do this by pressing the Choose Sub Flow space to the right of that trigger

Once done it will open up a pop-up window for you where you can select your desired flow to be connected once this trigger has been activated.

You can also type to find your flow more easily if you prefer. Once you found your flow just select it and it will return you to the Trigger overview.

From here you have a few options when it comes to managing the triggers.

Managing your Triggers

You have two options if you want to manage your triggers:

  • You can enable or disable them by pressing the slider on the left of the actual trigger
  • You can edit the trigger settings. Inside of here you also have the option to delete the trigger entirely

Comment Keywords

A very important and great feature inside of Botbuz is the ability to let the chatbot comment, like and send a person a pm when that person responds to on a post on your Facebook and or Instagram page.

You can find this if you go to the left-hand menu and press Automation then select the Comment Keyword tab.

From here you will have a blue button in the top right corner name + New Comment Keyword.

How to create a Comment Keyword

Once you have pressed the blue button + New Comment Keyword then a pop-up window will open up. From here you will be able to set up your comment keyword trigger

If we follow along with the image above we have 6 steps to take.

During step 1 you will be able to select any of your Facebook or Instagram page posts depending on which channel you are in.

With step 2 you are able to type in your keywords and determine the condition on when it needs to be triggered. By default, it is on contains, but you have the following options to choose from:

“If comment: Is Contains Starts with Is anything One of the following keywords”

Do note that if you select Is anything the ability to type in your keywords will be disabled.

On step 3 you will be able to create variations with which the chatbot will be able to reply to users who comment on your Page posts.

Advised is to at least add 5 variations to avoid the algorithm marking the replies as spam.

With step 4 you will be able to add the flow that will be triggered when the chatbot will send the pm to the commenter.

NOTE: make sure that your initial message contains only 1 text message with a button. As this counts as a user opt-in the user first needs to interact with this message before becoming a subscriber to your chatbot.

Inside of step 5 you are able to set up a delay for when the chatbot should reply and send a pm to the user. This will make it more human-like experience-wise. But it is totally optional.

In the final step, you will be able to match any of the settings to your liking.

Once done press the blue button on the top right or bottom name Save and your comment keyword will now be shown in the main overview


Custom Fields

Bot fields

Similar to user fields you can also create bot fields. The main difference is with user fields you store data to segment and share with that specific bot user, and bot fields allow you to store data and show them all equally among all bot users.

The value does not change. Think of information such as opening hours, or contact details for the business.

Creating a bot field

You can create a bot field by going to the bot field overview tab.

You can do so by pressing Contents from the left-hand menu and from there press the tab called Bot Fields

If you want to create a new bot field just press the button in the top right corner named + New Bot Field.

From here a pop-up window will appear where you can create your bot field.

After naming your new bot field you can select the type of field you would like it to have.

Currently, we have the following ones available for you;

  • Text
  • Number
  • Boolean
  • Date
  • Datetime
  • JSON

After selecting the type you can start adding the value to this bot field. If you like a description can also be added same as the folder you want to move it to.

After everything is filled in just press the button in the bottom-right corner named Save to create the bot field.

Managing your bot fields

After you created the bot field you are able to manage it from the main overview.

You can create folders to better keep track of your bot fields. You can also enable or disable the template field option. Lastly, you are able to edit the bot field itself by pressing the pencil icon to the right of any bot field

User fields

User fields can be used to store data you collect from your bot users throughout the conversations you have with them.

It will help you segment the users inside of a flow and allows you to create more customized funnels that will help you convert.

Creating a user field

There are two ways to create a user field. We will explain both steps in this documentation.

Create User field in tab overview

To find the user field overview press Contents from the left-hand menu and then select the User fields tab.

From here you will come to your user fields overview where you can manage all of your user fields you create.

To create a new user field press the blue button in the top right corner named + New User Field.

From here a new pop up window will appear where you will be able to set up your new user field.

Just name your new user field. The next step is to select what kind of user field you like to create. Currently, we have the following available for you:

  • Text
  • Number
  • Boolean
  • Date
  • Datetime
  • JSON

These fields allow you to set up all kinds of options inside your chatbot including saving data from bot users or API calls as an array.

You can also add a description if you like and or want to clarify what the function is. Below the description, you will be able to select whether or not you want to move it into one of the folders you might have created to keep user fields more structured and easy to find.

Once you are done just press the blue button in the bottom right named Save and your user field will be created.

Create user field inside flow builder

Another way to create a user field is by doing so directly inside the flow builder. This has the huge advantage that you can create user fields on the fly and not have to go to the user fields overview tab first.

Just go to any flow and from here you can create user fields anywhere you need to use them.

You will be able to create them inside of:

  • Question blocks
  • Action blocks -› set custom variable
  • External request -› response tab

Let’s take an example of a question block. We are wanting to store the response to the question inside of a new user field.

Just start typing a new user field name. The next step is to press the same name below your typed one to create the user field on the spot.

You will then be asked which type of user field you would like to create. Depending on where you are or what kind of question you get to see different kinds of options.

In this case, since it is a regular question block we get to see;

  • Text
  • Number
  • Boolean

Were you to ask for a date/time type of question you would get to see that type of custom field only.

Managing your user fields

To manage all your user fields you can do so at the main user fields overview tab.

You can create folders to keep your user field overview more structured and let you allow to find your user fields more easily.

And you can manage any user field directly from this tab overview by pressing the pencil icon to the right of any user field.


Tag a user by user's type, situation, status, etc for better management.

Create Tag

In your workspace, go “Tags” from the left sidebar.

Here is where you manage your tags.


You can also create tag by just typing in a new tag name and click it wherever you add tag.

Add / Remove Tag

In the Action step, click “Flow Actions”, then you can see “Add Tag” and “Remove Tag” options.

Use Tag in Condition Step

Use condition step to help you guide users with different tags to different steps.

Use Tag in Live Chat

You can also manually add / remove / check tag for each user in “Live Chat” from the left sidebar

OTN - One Time Notification (Facebook)

OTN(R) is short for One Time Notification (Request) and allows you to send one follow-up message to a user once they opted in for this. This is only applicable to the Messenger channel.

You will be able to create ONTR in two ways.

Create and manage from overview

The first way to create OTN topics is by going to the contents tab on the left-hand menu, then to the OTN Topics tab.

From here you will be able to find all your create OTN Topics up till this point and you can manage them.

If you want to create a new topic then you only have to press the button in the top right corner named + New Topic. Once you press it a pop-up window will appear.

From here you will be able to name and add your topic. Once you press the button Add you will be returned to the main overview and your newly created topic will be displayed there.

You will also be able to rename the topics by just pressing it and typing in your new name for it, or delete it by pressing the trash bin icon on the right of any topic.

Create OTN topics in the flow builder

Another way that is more direct and easy is to create the OTN topic directly inside the flow builder.

Just go to your flow then insert a Send Message block, then go to One Time Notification -› OTN Request.

This will bring you to the opt-in message of the OTN request. From here you will be able to select one of the available topics already created or create a new one directly on the spot.

Once pressed the topic will be created and you will be able to use it to request an opt-in from your subscriber

How to request an OTNR and use it to send the OTN message

Once you created or selected your topic inside the flow builder you will be able to draft up your own message.

Soon as the user presses the Notify me button that user will be opted in to receive one message about that specific topic.

This will allow you to send a message to the user concerning that topic outside the 24-hour window of the last interaction.


Personas will help you to make your chatbot come over as more human. It allows you to set up a personal profile with profile pictures so people are more inclined to talk with the chatbot since they feel it is a more personal experience.

Creating and managing your Personas

To create a new persona you can go to Contents from the left-hand menu, then to the Personas tab.

From here you will have the main overview of all the personas you have created inside the chatbot.

If you want to create a new persona you can do so by pressing the top right button named + New Persona.

From there a pop-up window will appear where you can set it all up.

Once created the persona will be available for you inside the main overview.

From here you can also manage your persona inside that main overview. You only have to press the pencil icon to be able to edit

How to use Personas

You can use personas by setting them inside your flows.

Just go to a flow and create an action block. From here select Advanced actions, then Set persona.

From here you can select any kind of persona you have created previously and the chatbot will then continue the conversation with that user with that profile.

Using personas is a good way to increase engagement and conversions as well. Female personas often do very well with men so you could start your flow by checking with a condition which gender the user is and then set the persona accordingly.

User Menus

For Facebook bots, you can have a persistent menu with 3 buttons at most. To setup:

  1. go “Tools” from the left sidebar
  2. click “Persistent Menus”
  3. “Edit Menu”
  4. “+ Add Menu”
  5. give menu title
  6. select a menu type, “Goto sub flow”, “Open website” or “Open checkout page”
  7. choose a sub flow or name a website address

Here is where you find your persistent menu when you talk to the bot:

Customer Feedback (Facebook)

A fantastic way inside the chatbot to collect feedback is to use Botbuz native module for this. It will allow you to gather not only feedback but also allows you to know when a user is not satisfied with the product or service you provide, which you can then proactively contact to resolve any issues there might be.

Note: This is only available inside the Messenger channel

Creating and managing Customer Feedback Topics

To create a new customer feedback topic you can go to Contents, then select the Customer Feedback Topics tab.

From here you will see an overview of all your created topics and it allows you to manage them or create a new one.

If you like to create a new topic you only have to press the top right button named + New Feedback Topic.

Once done a pop-up window will appear where you can set everything up.

As you can see you can fully customize this to your own liking so let’s walk through the options.

With option 1 you can give the topic a name as it will appear inside the topic overview. Below that you will be able to adjust your Question title. This will show up as the question. By default, there is a question inside but you can adjust it if you like.

You can also set the type. You have the following choices;

  • Customer satisfaction score
  • Net promoter score
  • Customer effort score
  • Free input form

The next step is to select your score label. You will have the following options;

Next up are the score options that you will be able to choose from;

  • One to five (numbers)
  • Five stars
  • Five emojis

You will also be able to enable or disable free form input. Once enabled the user will be able to give additional feedback outside the rating.

Below that you will be able to point to your privacy policy which is mandatory. And lastly, you will be able to set the customer feedback to expire anywhere between 1-7 days.

Once done you can press save. You will be taken back to the main overview and you will be able to manage the customer feedback topic you just created from there.

On the right you will have two icons. The first one will show you advanced analytics on the topic you selected, while the pencil icon allows you to edit it to your liking.

Below you will find an example of the analytics you can expect;

How to send a customer feedback topic

This is easily done inside of the flow builder. Just go to any flow you want to set up for this. From here create a send message block, then select Customer Feedback.

You will then be able to add a title and subtitle and press the button named rate experience.

You will then be able to give the button a title, select the topic you want to use and save the responses to a user field. Once done press save you will be able to send this customer feedback to any user that enters the flow and this block.


Error Logs

Error logs can help you troubleshoot bugs that can happen inside your chatbot. It can save you a lot of time trying to figure this out yourself otherwise.

To access the error log you can go to Tools from the left-hand menu, then select the first tab called Error logs.

From here you will have a complete overview of all errors that have happened in the chatbot.

From here you can see the date of the error, the kind of error, which user it affected, which sub flow it happened in along with the node that has the error, and more information.

If you press on the node of the error message it will take you directly to the point where the issue was registered at.

This will speed up troubleshooting immensely and save you hours you otherwise would waste in trying to find the bug.


To help you with testing your flows before they go live you can invite testers inside your chatbot. This will help you troubleshoot any potential problems that are happening in your flows.

So to clarify a tester can view a flow that is not yet published.

Assume you have a published onboarding flow that is accessible to the public, but you made changes in the backend which are not yet published. You will be able to let testers preview those flows.

To invite a tester they will need to be a subscriber to your chatbot

Invite and manage testers

To invite a tester to your chatbot just go to Tools from your left-hand menu, then select the Testers tab.

To create a new tester just press the button in the top right corner named + New Tester. From here you will be able to type in the name of the person you would like to be a tester inside your chatbot.

Again do note that this person you want to appoint as a tester needs to be an active subscriber of that chatbot.

Once done you will return to the main overview for the testers where you can also manage them from.

You will see the users who are invited by you as a tester and if you want to delete them you can press the trashbin icon to the right of each user to do so.

How to send testers flows

To send testers the flows in the draft version you can do so in a few ways.

You can share a link to the particular flow, or let them type a keyword that will trigger the flow.

Another way to let testers view content regular users cannot is by using the condition inside the flow builder for it.

Just go to any flow and insert a condition block. From here search for the condition named is tester.

This way you will be able to send a tester to one part of the flow you want to be tested and a regular user can just follow the flow already fully published.


Besides the regular members, you can invite to your workspace you can also invite admins to your chatbot only.

With a condition you can set up admin menus for them they can access like getting a report or wanting to get some insights into the chatbot.

Invite and manage admins

To invite an admin go to Tools from the left-hand menu and select the Admins tab on top.

From here you will get to the main overview.

To add a new admin the user you want to invite needs to be a subscriber to your chatbot. If they are then press the button on the top-right corner named + New Admin.

From here a pop-up window will appear where you can search for and add a new admin.

Just type in the name of the person you want to have as an admin and press the plus sign to have them added as an admin. Once you press the plus sign you will return to the main menu where you can manage all admins

At the right of each admin, you have the option to delete them if you like.

How to set up an admin flow

Now that you have appointed an admin you can set up admin specific flows for them. This is ideal if you want to give a business owner some insights as to what is going on inside the chatbot but don’t want to give access to the backend of that chatbot.

Just go to any flow you like and insert a condition block. From here search for the condition Is Admin.

If the condition is set to yes you can send the admin to the admin mode where you can set up access to whatever you like.

An example could be;

It is a great way for business owners to get access to certain features on the front end while not having to worry about them having access in the backend.


For Facebook bots, you can set some widgets to quickly start talking to the bot. To setup:

  1. go “Tools” from the left sidebar
  2. click “Widgets”
  3. “+ New Widget”

Messenger Ref URL Widget

  1. put a widget name
  2. choose a sub flow the link goes to
    (leave 3 and 4 blank if no reference is needed)
  3. put a parameter name
  4. assign a custom user field

What does the Ref parameter do?

For instance, you make a messenger ref URL to your main flow, so that by visiting this URL, your users can start talking to your bot.

However, you would like to gather more information from the link, like where did your users get the link? In this case, you can put “source” in area 3 and a variable to store the source at area 4 in the above picture.

Later, add a source name in your link according to where do you put it. This is how you get extra information from the link.

After filling in all the information, click “Save” and click the pencil to edit this widget, you will see a unique URL generated for this widget:

So here, by visiting any of the following links, your users can start talking to your bot:

Yes, you might notice that by adding “–xxx” after the link, the value “xxx” will be transferred to the bot.

QR Code Widget

URL links are convenient to click via electronic way while QR codes are more suitable for on-site use. By scanning a QR code, your users can start talking to your bot

To setup:

  1. give a widget name
  2. select a sub flow
  3. upload your logo image
  4. adjust image size if needed
  5. adjust color if needed
  6. adjust dot scale if needed
  7. click “Generate” to get an image on the right. Repeat step 4, 5 and 6 to get a final image
  8. download your QR code, print it and put it in your store, restaurant, office, etc

Customer Chat Widget

This widget is to be embedded on your website, so that your website can have a bot serving users as do:

To setup:

  1. give a widget name
  2. select a sub flow
  3. adjust theme color if needed
  4. adjust greeting message which will be shown above the “Continue as xx” button (see in the previous picture).
  5. select a display type
  6. adjust the delay if the second or the third display type is selected
  7. for payload, see explanation in Messenger Ref URL above.

Click “Save” after finishing all the settings, again, click the pencil to edit this widget and you will see this button:

Click it.

Add the websites that you want to put this bot at. Then install the snippet by copying and pasting the code.

Perfect! 😎 You got a bot on your website now

Multiple Languages

With Botbuz you have the ability to provide a multiple language chatbot experience. It is very easy to set up as well.

How to add a new language

To add a new language just go to Tools from the left-hand menu, then select the Multiple languages tab.

From here just press the button in the top-right corner named + New language. Once pressed a popup window will appear where you can select a new language.

Inbound Webhooks

Inbound webhook is a powerful tool to receive data from anywhere to the chatbot through a POST request.

With inbound webhooks, your bot can even start a conversation with a bot user who never talked to it before.

For example, when a client fills in their contact information on your website, you send the data to an inbound webhook of a chatbot, say an SMS bot. The SMS bot can then send a confirmation message to the client's phone number.

If that webhook is built in a Voice bot, the bot can even call the client right away!


Each bot has up to 5 inbound webhooks.

Create Inbound Webhook

It's available in almost all channels, in your flow builder, go Tools - Inbound Webhooks:

Click on New Inbound Webhook, give a name and click Save:

You will see the editing interface like this:

Webhook Address

This area shows you where to send the data and the method, which is POST. Each inbound webhook has a unique URL in the whole Botbuz system.

Example of Received JSON

This area shows an example JSON for reference. It describes the structure of the data in the JSON we received later. We need it to find the values for both **user identification** and data to save.

There are 2 ways to get an example JSON:

  1. manually type/paste it here
  2. listen to a real-time data from a live test

Values to Identify a User

Whenever the webhook receives data, it first checks the paths you specify here to see whether it can find an existing user in the chatbot.

If the user is not in the system, the chatbot will create a new profile. That's how the chatbot initiates a conversation without talking to the user before.

However, some channels don't allow the chatbot to start the conversation first due to privacy and spam issues.

For example, your SMS bot can send messages as long as you have the recipient's phone number, while your Facebook Messenger chatbot cannot send messages to a Facebook user who never talked to your bot before

Process for User Identification

This is the process of how the system identifies a user:

  1. check user_ns
  • if there is a valid user_ns, user found.
  • if not, next step
  1. check phone / email
  • if we can find a user by the phone or email, user found.
  • if not, next step
  1. verify phone
  • no user matched in the system, is the phone a valid number?
  • if yes, user profile created.
  • if not, webhook won't be processed

Mapping Area

The mapping list shows which value should be stored in which custom field. When you get a sample JSON in the above area, click on Preview Payload to get a mapping tool.

Webhook Logs

Every single request is saved in Logs. Click on a record to see the received JSON data.

Demo: Booking Confirmation

A perfect tool to test your inbound webhook is already built-in everywhere! Simple get a chatbot (whatever channel), test it in an Action Step.

Open another Botbuz webpage side by side, keep the inbound webhook editing on Page 1 and select an external request on Page 2:

Follow steps 1 to 8 in the following screenshot:

Provide the data that need to be sent to the chatbot and click Test, you must get a “webhook inactive” error since we haven't activated it yet. It's fine, click on Done on Page 1, and you will see the data saved:

Scroll down a bit, follow steps 1, 2, 3 to tell the system, where is the phone and email values in the JSON:

Finally, map the rest data to the chatbot:

Save your inbound webhook editing:

Enter the subflow, let's send a message to the bot user:

Publish the flow and let's do a live test in the external request again

We can see that this time it run without error because we activated the webhook and used a real phone number. Go to Logs and we can see a new user profile is created successfully.

On the user side:


Use this feature to broadcast messages to your users! Just a few settings needed.

Go “Broadcasts” from the left sidebar, then click “+ New Broadcast”.

To setup:

  1. give a broadcast title (for yourself, not users)
  2. select a sub flow
  3. add conditions to filter who will receive this broadcast message


to send to all users, try this condition "If User Id has any value".

Filling in the rest settings like message type and time to send then click “Save”. (Which message type should I choose?)

If you choose “Now” for the schedule, the message will be sent once you click “Save”. If not, you can cancel the broadcast anytime before it sent.

Here is also where you check broadcast history and data.


Greeting Text

Greeting text will be shown before users' interaction.

To setup:

Click “Settings” from the left sidebar, put your greeting text and click “Save”. That's it!


Only the owner of this account can see the "Settings" option.

This is how it looks like on the user side: