The GC flow builder comprises three components:
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
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.
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:
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.
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
Receive a textual answer from the user
Receive a photo from the user
Receive a video file from the user
Receive an audio file from the user
Let the user pick a value from a range/scale
Receive an email address from the user
Receive a web URL from the user
Receive a payment/refund detail from the user
Let the user pick a date/time/date and time
Allows user to upload any file type, including Audio, Video, Image, and Documents
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 .".
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.
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 three types of actions blocks:
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.
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:
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.
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 Conversation
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.
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.
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:
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.
These variables are valid ad 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.
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.