Documentation

Getting Started #

Getting started with Hybrid.Chat is easy. Just goto Pricing page and Signup for a plan that suits your needs. There, you will be prompted with Google or Facebook login. Choose the network you wish to use and you will be directly logged in. All plans come with 30 days free trial, except for FREE tier plan, which is free forever.

Creating a Chatbot via spreadsheet #

The chatbot generating spreadsheet should be structured in a particular way for the AI engine to understand what you want the bot to do.

Checkout some example Spreadsheets and their rendered chatbots below:

Simple Live Chat
Demo, Spreadsheet

Lead capture for Local Business
Demo, Spreadsheet

Click to Call Chatbot
Demo, Spreadsheet

Hotel Booking Chatbot
Demo, Spreadsheet

Appointment Booking Chatbot
Demo, Spreadsheet

Car Sales FAQ Chatbot
Demo, Spreadsheet

Recruitment Pre-screening Chatbot
Demo, Spreadsheet

Unsplash API Demo Chatbot
Demo, Spreadsheet

Tax Calculation Chatbot
Demo, Spreadsheet

WooCommerce Ecommerce Chatbot
Demo, Spreadsheet

ID #

ID is the unique ID of the row and it should increase sequentially. It is composed of one main-id and a sub-id which are both whole numbers and are separated by a dot (.). Eg – 1.1, 3.6 are some valid ID’s.

Note: Some rows like the ones containing synonyms or FAQ question/answer or SendEmail type do not require any ID. But for others it is required and both main-id and sub-id should increase sequentially.

Type Column #

Type column defines the type of chat widget to load in the sequence. There are multiple types of assets supported and we keep on adding different types as well. Here is a list:

  1. Dialogue – Simple text message
  2. Button – In-chat button that routes to other chatflows
  3. SendEmail – Ability to send chatlog to a special email along with variables (data) collected.
  4. User Input Types:
    1. Text-<var> – Asks for text as input via main Send message text box
    2. Phone-<var> – Asks for phone number as input via Send message text box
    3. Email-<var> – Asks for email address as input via Send message text box
    4. Number-<var> – Asks for a numeric value as input via Send message text box
    5. Date-<var> – Asks for a date as input via Send message text box
    6. URL-<var> – Asks for a URL as input via Send message text box
  5. User Input Widgets:
    1. TextWidget-<var> – Same as Text-<var> but uses an in-chat widget for better chatting experience
    2. PhoneWidget-<var> – Same as Phone-<var> but uses an in-chat widget for better chatting experience
    3. EmailWidget-<var> – Same as Email-<var> but uses an in-chat widget for better chatting experience
    4. NumberWidget-<var> – Same as Number-<var> but uses an in-chat widget for better chatting experience
    5. DateWidget-<var> – Same as Date-<var> but uses an in-chat widget for better chatting experience
    6. URLWidget-<var> – Same as URL-<var> but uses an in-chat widget for better chatting experience
  6. FAQ_Q-<qid> – Used to add potential questions that a user may ask
  7. FAQ_A-<qid> – Used to define answers to the questions mentioned via FAQ_Q-<qid>
  8. Synonym-<word> – Used to define synonyms or words within FAQ for better matching of questions with answers.
  9. Fallback – Jump to a chatflow is typed query didn’t match any of the FAQ.
  10. timeout_agent – Jump to a chatflow if Human agent didn’t answer the chat, is away or offline.

Goto #

Goto is used to control the flow of conversation. It specifies the main-id of the row from which the conversation will continue after current row is complete (for user’s input/validations etc).

An example could be:

IDTypeTextGoto
1.1Text-DontMatterHi. I am here to help2
2.1Dialogue
Hey there! We’re excited to help you out. Let us know your contact details so that we can follow up in case we get disconnected.
2.2TextWidget-ContactBest Phone number (recommended) or email address to reach you?
2.3DialogueWhat do you need help with today?
2.4ButtonNew Booking6
2.5ButtonIn-Room Servicehttps://someurl.com/page-for-in-room-service

Here you can see the buttons in last 2 rows have been assigned a Goto, to tell the system where to go in the chat dialogue if a button is clicked. Goto column can also make the user navigate to a certain page at any point of the chat flow. It works well when a URL is defined in the Goto of a Button (as shown in 2.5 row above).

In case of Dialogue, FAQ answer the flow immediately transfers after sending the message to the user but if there are buttons after dialogue then the bot will wait for the user’s response before changing the flow.

In case of Button, the flow will change to the specified main-id when the button’s text is sent by the user as a response. In case of User input types, the bot will wait for the user’s response before going to the specified main-id in goto.

For rest of the types, Goto column will not do anything and will be ignored if specified.

Building a Bot #

Building a bot with Hybrid. Chat is as easy as editing a spreadsheet file. Follow the instructions below of just start editing one of the many examples provided on the Bot Builder page.

Getting started with Google Spreadsheets to maintain your bot
Hybrid.Chat makes it easy to edit and maintain a chatbot by letting you edit everything from a cloud hosted CSV file. Google Spreadsheets is one of the programs we actively support right now which would allow you and your team to collaboratively refine and grow your chatbot. This is far better than having a chatbot developer being the only one who can go into the system and do this for you. How the spreadsheet works has been defined below.

Making bot say something #

Hybrid.Chat can say anything via the means of Text or images. Images can be anything that a browser supports, including animated GIFs and JPEGs, lists, tables or even videos.

Dialogue #

Dialogue is the text which the bot says to the user. Inside the text column you can give the text which you want the bot to message to the user. It has been tested on several languages, including traditional Chinese and it seems to work well.

Example:

IDTypeTextGoto
1.1DialogueHi there ! I am news-alert-bot. I can message you latest news alerts throughout the day. 

Adding Images #

Images can be added easily by using Markdown formatting. It can be added using DIALOGUE type. Any type of images that are normally supported by HTML 5 or browsers can be supported within, including JPEGs, Transparent PNGs, or animated GIFs.

Example:

IDTypeTextGoto
1.1Dialogue![alt text](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png “Logo Title Text 1”)

Chat Button options #

At any time in the chat flow, you can ask the user to choose a button to select one of the paths of the dialogue flow. Buttons let you specify where you wish to lead the conversation via Goto column. You can add as many buttons in a sequence as you like and the bot render all buttons the appear consecutively with each other within one dialogue transaction.

Example:

IDTypeTextGoto
1.1ButtonReservations5
1.2ButtonAirport Shuttle6
1.3ButtonRestaurant7

Formatting Text Messages #

You can format the text messages using Markdown formatting

Bold and Italic

You can make text bold or italic.

*This text will be italic*
<i>This text will be italic</i>
**This text will be bold**
<b>This text will be bold</b>

Both bold and italic can use either a * or an _ around the text for styling. This allows you to combine both bold and italic if needed.

**Everyone _must_ attend the meeting at 5 o'clock today.**

You may also use normal HTML tags for bold and italic for any text.
<i>This text will be italic</i>
<b>This text will be bold</b>

Strikethrough

With the option strikethrough enabled, Showdown supports strikethrough elements. The syntax is the same as GFM, that is, by adding two tilde (~~) characters around a word or groups of words.

a ~~strikethrough~~ element

strikethrough element

Emojis

Since version 1.8.0, showdown supports github’s emojis. A complete list of available emojis can be found here.

this is a :smile: smile emoji

this is a :smile: smile emoji

Making bot asking a Question #

You can design the bot to ask a question or fill a form at any point of the conversation flow, with the options listed below.

User Input Types #

These are used to take input of a specified type from the user. The text field contains the question to be asked to the user. After asking the question, the bot waits for the user’s response, validates the response and continues the conversation if response is validated or repeats the same question again if response is not valid. The value for this type is of the format <type>-<variable_name>.

Here <variable_name> is the unique name of the variable in which the response of the user is stored. This same variable name can be used further inside any field of Text column.

<type> specifies the type of input expected from the user. type can be any of the following below:

Text #

Text – anything typed by user is accepted and (optionally) can be stored into a variable.

Example:

IDTypeTextGoto
2.1Text-NameHi. My name is TravelBot. What is your name?4

Phone #

Phone – valid phone numbers with country code are only accepted

Example:

IDTypeTextGoto
2.1Phone-numberPlease enter your phone number to start receiving alerts. (Accepted format: +XX (Country code)(Phone Number)4

Best practice:
If you receive a lot of local traffic, its best to store phone number as a TEXT rather than a Phone number to avoid validations that can be frustrating.

Email Address #

Email – valid emails are accepted

Example:

IDTypeTextGoto
2.1Email-emailaddressPlease enter your email address to start receiving alerts.4

 

Number #

Number – any number entered by user is accepted

Example:

IDTypeTextGoto
2.1Number-guestsPlease enter the amount of guests who would be checking in4

Date #

Date – only valid dates are accepted

Example:

IDTypeTextGoto
2.1Date-CheckinDateAnd when would you like to checkin? (Accepted format: MM/DD/YY) 

Best Practice:
Its best to use DateWidget instead of date to avoid user side errors for formatting issues.

URL #

URL – valid URL’s are accepted

Example:

IDTypeTextGoto
2.1URL-resumeurlPlease enter your Linkedin URL or a link to your resume / CV4

 

User Input Widgets #

Just like User Input types mentioned above, but loaded in user friendly widgets. Each of the input type has a corresponding input widgets which are shown as a special floating dialog inside the chat message window. Like an example EmailWidget is shown below.

As with other input types, the value for this type is of the format <type>Widget-<variable_name>. Here <variable_name> is the unique name of the variable in which the response of the user is stored. This same variable name can be used further inside any field of Text column.

<type> specifies the type of input expected from the user. type can be any of the following below:

Text Input Widget #

TextWidget – anything typed by user is accepted and (optionally) can be stored into a variable.

Example: 

IDTypeTextGoto
2.1TextWidget-NameHi. My name is TravelBot. What is your name?

Phone Input Widget #

PhoneWidget – valid phone numbers with country code are only accepted

Example: 

IDTypeTextGoto
2.1PhoneWidget-numberPlease enter your phone number to start receiving alerts. (Accepted format: +XX (Country code)(Phone Number)4

Best practice:
If you receive a lot of local traffic, its best to store phone number as a TEXTWIDGET rather than a Phone number to avoid validations that can be frustrating. A similar widget may look something like this:

Email Address Widget #

EmailWidget – valid emails are accepted (optionally) with the support to store that in a variable.

Example: 

IDTypeTextGoto
2.1EmailWidget-emailaddressPlease enter your email address to start receiving alerts. 

 

 

Number Input Widget #

NumberWidget – any number entered by user is accepted

Example: 

IDTypeTextGoto
2.1NumberWidget-guestsPlease enter the amount of guests who would be checking in

Date Input Widget #

DateWidget – only valid dates are accepted

Example: 

IDTypeTextGoto
2.1DateWidget-CheckinDateAnd when would you like to checkin? (Accepted format: MM/DD/YY) 

The date widget actually loads a complete calendar component within the chat, supported by browser’s inbuilt validations.