The GC flow builder comprises three components:
- Blocks
- Paths
- Variables
Blocks
Blocks are the fundamental units of the flow builder. A text message that you want to display, a set of options that you want the customer to choose, the step where you collect the email address or phone number, etc. are all added to the flow using appropriate blocks.
For example, if you want to display a welcome message to the user at the beginning of the conversation, you must use a message block. Likewise, if you want the user to share an image or photo as part of the conversation, you must use an image block.
There are a variety of blocks in the builder that one can choose depending on the output they want to show the end user.
Blocks are mainly of two types:
- Response blocks
- Action blocks
I. Response Blocks
Response blocks are used to receive input or display a message to the user. Based on their purpose, response blocks are further divided into:
- Message blocks
- Choice blocks
- Question blocks
Message Block
The message block is used to display a message to the user, such as a welcome message or a detailed description in the form of a card.
There are two types of message blocks:
- Text - A simple written message is displayed to the users. For example, "Hello, Welcome to Zylker Craft."
Info card - Used to show multiple information in a single space. Info cards are of two types: static and dynamic. Static card is useful when you want to display common message to all users, while dynamic card can be used when multiple information needs to be displayed like a catalogue.
For example, the image below shows a static card displaying the image of a bed with the product name and description.
Message blocks are supported in the following channels,
Message Block Type | Whatsapp | Telegram | Facebook Messenger | Line |
Text | Yes, only text. No text formatting and attachements | Yes, only text. No text formatting and attachements | Yes, only text. No text formatting and attachements | Yes, only text. No text formatting and attachements |
Info Card | No | No | No | No |
Choice Block
The choice block allows users to choose one or more options from an available list.
For example, "Is this your first purchase at Zylker Craft?"; the user can select "Yes" or "No". Likewise, they can choose multiple options such as, "Select the parts you want to customize:" The options can be "shelves", "color", "material", or "knobs and handle".
You may also show images, text, descriptions etc. to the users, which appear in the form of a card.
Choice blocks are of two types:
- Button - The users can be provided with a list of options in the form of buttons. They can choose single or multiple options.
Buttons are of the following types: - Text
- Image
- Audio
- Smiley
- Feedback
- Video
For example, in the below images we have used feedback and smiley buttons to ask customers about their experience.
- Choice card - Choice cards allow you to display additional information which can help users in decision-making. These cards can be static or dynamic. You can also allow users to choose single or multiple options simultaneously.
For example, the image below displays the images of the beds along with the product names.
The choice block also allows you to build further conversation, depending on the user's choice. Separate paths can be created from each button.
For example, if the users answers "Yes" for their previous purchase with Zylker Craft, the subsequent question can be "Which product did they buy?"
The choice card provides the following options:
- Create Path - Enable the option to create a separate path for each button.
- Single and Multi select options - Enables the option to allow the user to choose single button or multiple buttons, respectively. This is similar to the multi-choice questions that you see in a question paper or form.
Note: The Create Path is disabled when you choose the Multi select option because you cannot create a separate path for each button.
Choice blocks are supported in the following channels,
Choice Block Type | Whatsapp | Telegram | Facebook Messenger | Line |
Text | Yes | Yes | Yes | Yes |
Image | Yes | Yes | Yes | Yes |
Video | Yes | Yes | Yes | Yes |
Audio | Yes | Yes | Yes | No |
File | Yes | Yes | Yes | Yes |
Slider | No | No | No | No |
Email | Yes | Yes | Yes | Yes |
URL | Yes | Yes | Yes | Yes |
Currency | Yes | Yes | Yes | Yes |
Calender | Yes | Yes | Yes | Yes |
Number | Yes | Yes | Yes | Yes |
Location | Yes | Yes | No | Yes |
Question Block
Question blocks enable you to ask the user a question and receive their answer.
For example, "Hello, there! What are you looking for?"
Question is the text that the bot must display to the user as part of the conversation. For example, "Hi, there! Please enter your name," or "Select the service for which you need support." This field comes with a few basic text formatting options and includes placeholder values by referring to the variable name. For example, if you receive the user's name through a block at the beginning of a conversation, you can include the name in the content of the succeeding block, using the variable placeholder.
Listed below are the different types of questions blocks available in the flow builder:
Question Block Type | Purpose |
Text | Receive a textual answer from the user |
Image | Receive a photo from the user |
Video | Receive a video file from the user |
Audio | Receive an audio file from the user |
Slider | Let the user pick a value from a range/scale |
Email | Receive an email address from the user |
URL | Receive a web URL from the user |
Currency | Receive a payment/refund detail from the user |
Calendar | Let the user pick a date/time/date and time |
File | Allows user to upload any file type, including Audio, Video, Image, and Documents |
Number | Receive a numerical value from the user. The default validation will not allow any other values other than number. For example, the employee ID cannot be mentioned as CN4959. One can only mention it as 4959. Note: Default validation will take place for URLs and emails too. The validation will check for ".com" and "@ and ."
|
Location | Customers can share their live location or address of a place. For example, the customer can share their address on an online shopping website. |
Question blocks come with an option that enables you to rename block variables. By default, the name you enter for the block is considered the block variable's name. For example, if the block name is Photo Evidence, the default variable name would be photoEvidence. However, if you want to rename the variable, you can use the edit button provided with the Set Input Into Variable option.
Question blocks are supported in the following channels,
Question Block Type | Whatsapp | Telegram | Facebook Messenger |
Button | Only single select button Button limit - 10 Character limit - 20 | Only single select button Button limit - 20 Character limit - 40 | Only single select button Button limit - 3 Character limit - 20 |
Text | Yes | Yes | Yes |
URL | No | No | No |
Image | No | No | No |
Video | No | No | No |
Audio | No | No | No |
Smiley | No | No | No |
Feedback | No | No | No |
Dynamic Button | No | No | No |
Choice Card | No | No | No |
Using the Text editor in Blocks
In message, choice, and question blocks the text that you enter can be customized by using the options available in the text editor. The options allow to:
- Make the text bold, underline, italics.
- Inset links
- Insert images
- Embed video
- Use emojis
- Add variables - you can add global, session or local variables. Read more about Variables.
II. Action Blocks
Action blocks help perform a wide range of actions that take place in the backend, which alter the course of a conversation.
For example, if the customer wants to customize the furniture then in the back end the flow will be built such that the customer is navigated to the blocks that display the appropriate question or image for example, the customer can be asked "What do you want to customize?"
There are four types of actions blocks:
Jump Block
This block helps to navigate from:
- One block to another within the same conversation flow
- Different flows within the same department
- Flows within different departments
The Jump block is useful when the conversation requires cross-functional activity. Both input and output variables must be mapped in Jump block as it helps to create a link between the flows.
Let's understand this with the help of some examples.
a) Jumping from one flow to another
A travel agency provides different online bookings for flights, hotels, cabs, and more.
If the agency creates different flows for each type of booking in the respective departments, then the jump blocks can help users navigate between the types of bookings. Also, by mapping the input and output variables, information between the bookings can be easily transferred, preventing the customer from repeating basic details for each booking.
Actions involved are:
- Assume a customer books flight tickets, then they are provided with an option to book a hotel for the stay. Using the jump block, you can make the navigation from Flight booking to the Hotel Booking flow easier for the customer.
- The input variable mapping enables data flow across blocks. The information from the @date of arrival entered by the customer during flight booking flow can be mapped with the @check-in date in the Hotel Booking flow. Likewise, the output variable mapping will allow us to use the @booking id that is created after hotel is booked to the flight booking flow and displayed to the user.
The mapping will enable the system to auto-populate the basic customer details and thus show them the room booking block providing a seamless transaction.
b) Jumping to another block within the flow
A mobile phone manufacturer allows its customers to submit faulty devices and claim a refund or exchange.
Using the GC flow, the customers can select the device and choose "Faulty Device" from the list of options. Using the jump block, they will be directly navigated to select the type of problem they are facing. In the subsequent steps the customer is asked to enter the IMEI number and the date of purchase from where they will be prompted to choose whether the device should be returned (with amount refunded) or exchanged.
So, instead of showing all the intermediate blocks, based on the customer's input they can be directly shown the appropriate block.
Another simple example in our day-to-day life is the bank ATM, where after we make a transaction, the system would ask us if we need "Anything else." If we choose "Yes," we will be taken (using the Jump block) to another set of options.
Fork Block
This block splits the conversation flow into two or more paths based on predefined conditions. The customer input received via a block is stored under a placeholder called "Block variables."
Conversation flows can take different paths, depending on the condition(s) set for these block variables. The conditions used in "Fork" can involve the following variables:
- Block
- Global
- Local
For example, after a user selects a device and navigates to the problem section, they have to choose the type of problem. The options for the type of problems can be mapped to the customer's input in the following manner:
- Criteria 1: The input variable "@problem type" must be mapped with "Faulty display and Overheating battery", we can map this input variable "@problem type" to faulty display and overheating battery.
- Criteria 2: The input variable "@problem type" must be mapped with "Faulty camera".
- Criteria 3: The input variable "@problem type" must be mapped with "Broken screen".
Each problem will lead to a different path, so based on the customer's input they will be directed to the appropriate direction.
Webhook Block
This block enables the GC flow to interact with Zoho Desk processes, other Zoho services, and third-party applications.
For example, if the conversation flow requires submitting a ticket in Zoho Desk or creating a contact in Zoho CRM, this can be achieved using the webhook block. These blocks use APIs from the Zoho/third-party services to make this interaction possible. Therefore, any data that can be accessed or any action that can be performed using APIs can be integrated with a conversation flow through webhook blocks.
See also Webhook Block in Guided ConversationOperations Block
This block allows us to perform arithmetic operations and display the result during the chat session. Operations block can also be used to calculate using values from the global variables.
For example, the operation block can be used to calculate the EMI, total amount to be paid for the items in the cart, tax computation, etc. If the annual interest and the product cost are stored as global variables, the block can calculate and arrive at a final value that is the monthly EMI value and the amount to be paid. These values will be stored in the Input variable and can be displayed to the users within the flow.
Working with Block Settings
Block settings provide options to perform more actions in a block. Upon right-clicking the block, the following set of options will be available:
- Edit Block: Opens the block's property panel where you can make the necessary changes.
- Copy Block: Copies the entire block, which you can use elsewhere within the current flow.
- Copy Path: Copies the entire path beneath the block, which you can use in another conversation flow.
- Set as End Block: The option will allow you to end the conversation once the user responds to this block.
- Delete Block: Deletes the entire block.
- Delete Path: Deletes the entire path.
Advanced Settings in Blocks
Within the blocks, there are some advanced settings that allow you to do the following:
- Skip Block - This option allows the customer to skip answering a question. For example, users can skip the question to reveal their gender when asked, "Choose your gender." Generally, skip blocks are used to get additional information, which does not hinder the basic flow.
Note: In choice blocks, if you have created separate path for each button, then the option to skip the block will not be provided in order to maintain the flow. - End Block - Sets the block as the point where the conversation flow ends. For example, a "Thank you" message block at the end of a GC flow.
Paths
Path is the direction in which the conversation flows. The conversation is based on the customer responses and depending on what they reply or the option they choose at each stage, the bot leads them to the most helpful information.
For example, consider the case at Zylker Craft. The furniture outlet provides two options:
- The customers can directly buy a product of their choice from the website.
- They can choose to customize their product.
In both cases, the conversation flow will differ from each other, so Eric has to build two separate paths. Each path will comprise different sets of questions and options to provide self-assistance to the customers.
As the name suggests, each track that the guided conversation takes is a path. A path can be copied to another section in the GC flow for convenience and to save time. Furthermore, a path can be deleted when not needed. This means, anything that is constructed under the path gets deleted entirely. In the following image you can notice the paths in the GC flow.
Variables
A variable is a placeholder that stores a specific piece of data in the conversation flow. As variables are containers of information, they can be used as input or output within blocks.
Variables are of the following types:
- Block
- Local
- Global
- Session
Block variables
These variables are auto-populated inside a question and choice block. They allow you to make the conversation personal by using customer names, showing them their booking IDs, ticket IDs, product name they purchased, and more.
For example, if the bot asks the customer, "What is your name?" and their response is, "John." The bot would then address the customer as "John" in the subsequent questions, like, "Hi John, please choose an option."
Likewise, block variables can be used in webhooks as well, where the output variable will be auto-populated. For example, if we create a "Create Ticket" webhook block, a block variable named "createTicket_status" gets auto-populated.
In case of location blocks, two system variables are provided: Get Latitude and Get Longitude. These coordinates will also be shared in the chat alongside the map location for additional reference.
Local variables
These variables are valid and accessible only in the current conversation flow. They cannot be used across the organization or in multiple conversation flows.
Local variables are confined to a particular flow and cannot be used in other flows. Local variables can be created from within the flow.
Global variables
These variables are common and can be used across the organization. They are not confined to a department and can thus be used across multiple conversation flows. For example, org name, head office address, or headquarter contact number. The value of a global variable is static and is fetched from the data that is entered while creating a global variable. That is, if the variable "org name" has a value "Zylker Craft", then wherever this variable is used Zylker Craft will be displayed.
Variables types supported for Global Variables
- String.
- Number.
- Image.
- Audio.
- Video.
- Object.
- Date.
- Date and Time.
- File.
To create global variables
- Go to Setup > Self Service > Guided Converstations > Global Variables.
- Click Create Global Variable.
- In the Create Global Variable pop-up window, do the following:
- Enter the Variable Name.
- Select the Variable Type.
- Provide the Variable Value.
- Provide the Description.
- Click Add.
Session variables
These variables are dynamically fetched during the conversation. These variables are available across flows and are org specific. For example, using session variable you can identify the country from where the user has logged in to your webpage. You can then display an option where the user can choose the preferred language in which they want the conversation with the widget to continue.
Likewise, the session variable can also identify whether the customer is logged in or a paid subscriber or a prospect and navigate them to the respective path within a flow.
You must provide a default value while creating a session variable, which will be fetched if the system fails to identify the actual variable. For eg., if the system is unable to identify the region from where the customer has logged in then it will fetch the default value that is provided for the variable "Region".
Once a session variable is used in the flow, you can check the path followed by each session variable under preview. You can also edit the values during preview.
Note that the option to Preview session variable will be active only if you have used a session variable in the flow.
To create session variables
- Go to Setup > Self Service > Guided Conversations > Session Variable.
- Click Create Session Variable.
- Enter Variable Name - eg., Region, Language etc.
- Select Variable type from the drop-down (string or numeral).
- Enter Default Value - eg., India, English etc.
- Click Add.
Viewing Flow Metrics
Once a flow is published the metrics will highlight the number of users who actually entered the flow, participated in the chat, the route they went and more. These details can help the organizations a great deal in improvizing the flows for better adoption and increased usage.
Some important insights that can be drawn from the flow metrics are:
- In case of jump blocks, you can identify the most preferred path and modify the flow by removing the unused path.
- In case there is a noticeable drop-out on a block, a feedback form can be included to allow customers share the reason for drop-out.
- If the flow has less footfall you can consider publishing it on another webpage can increase the traction. You may also consider promoting the webpage.
- In case of choice blocks, you can identify the block that users prefer the most and least by viewing the number of clicks on each option.
Flow metrics can be filtered to view the number of visitors for last 7 days, 15 days, and 30 days. The flow is auto-updated every 24 hours. Every time a flow is edited a new version is created and the flow metrics for each version is stored and can be viewed from the detail page.
Note
Flow metrics will be available only for the published flows.
The user count is based on the session. Every time a user reenters a chat session they will be counted in the user count.
To view flow metrics
- Go to Guided Conversation > GC Flows.
- Hover on a published flow.
- Click the Flow Metrics icon.