Building Flows Using Guided Conversations

Building Flows Using Guided Conversations

A Guided Conversation (GC) provides a set of predefined responses to a user's question. The responses selected by the user lead the conversations to a more specific area that delivers the best possible answer. This is especially useful from a business perspective, because it allows agents to focus their attention on the tickets that need them the most. This also saves a lot of time with human intervention. Additionally, GC also helps a business understand their users' experience by making them answer some questions towards the end of conversations.

From a user's perspective, they need not rely on an agent to help them resolve queries. They can find answers by themselves to complex questions by spending enough time answering each query without rushing.

Business Scenario

The following is an example of a Guided Conversation.


Zylcares is an e-commerce portal that sells zPad, zWatch, and zPhone. When you visit their website, a chatbot welcomes you and gets your basic information, such as name, email address, and phone number. It then asks you to choose a device you need help with. Depending on your choice, the bot shows you further options to select. Let's say you choose "zPhone," and the bot gives you additional options, such as overheating, faulty display, faulty camera, and poor battery. Following this, you will get options for replacement or refund, then, based on what you choose, you will receive a specific set of instructions. This is a typical GC flow that you see in the mobile phone industry.
 
You can use Guided Conversations in many other industries, like in the hospital industry for booking appointments, helping customers find accommodation and book meals in the tourism industry, and helping students register and choose courses in the education industry.

In Zoho Desk, the Guided Conversations functionality is a powerful capability that adds self-service functionalities to your customer support tools. Using this feature, you can build conversation flows in a no-code GUI-based builder for each department in your Zoho Desk account, and help your customers find answers by themselves or perform a common process without an agent's assistance.

Understanding Guided Conversations

You will build conversation flows on a canvas that we call a Flow Builder. This is an intuitive and user-friendly interface where you can add elements to draft a guided conversation flow. After finalizing it, you can publish it on your website. 

A good practice to follow before setting out to build a conversation flow is to create a hand-written or digital outline of the conversation or process. This will ensure that all the necessary inputs and outputs are in the right place and help you plan the sequence of blocks. 

Following are the steps involved in building a Guided Conversations Flow.
  1. Select the department and enter the basic details, such as the name and description of the flow.
  2. Add blocks and variables that are required to build and complete the flow.
  3. Publish the flow.
  4. Associate the flow under the Chat module in the required ASAP add-on.
Three main elements are used to build the Guided Conversations flow: Blocks, Paths, and Variables. Let's look at each one of them in detail.

Paths

Path is the patterned progress of responses in a conversation. It is a set of predefined decisions and sequences of events. When you create a flow, you are building a conversation based on the user's responses. Depending on what users choose at each conversation stage, the bot leads them to the most helpful information.

Blocks

Conversation blocks are the fundamental units of a conversation flow. For example, if you want to display a welcome message to the user at the beginning of the conversation, you use a message block. If you want the user to share a photo as part of the conversation, you use an image block. Typically, you build a conversation flow by adding one block after another.



Blocks are mainly of two types: 
  1. Response blocks
  2. Action blocks

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, question blocks, and choice blocks.

Message Blocks

The message block helps you display a message to the user as text messages or information cards. Based on the message type. they are categorised as Text messages and Info Card messages.

Text

This is a simple text message, such as a welcome message.




Info Card

An Info Card will include additional information, such as image, title, subtitle, and description. This card enables you to share all these information in one go. These cards can be static or dynamic. 
  1. Static - A static card will have standard information, that is, information in the card does not change once you publish the flow. For example, an info card displaying the feature details of zPhone with an image, price,  and description. 
  2. Dynamic - A dynamic card will fetch details during the runtime. For example, an info card displaying the Transaction ID, Payment mode, Amount Paid, and Delivery Details.

Question Blocks

Question blocks enable you to ask the user a question and receive their answer. For example, "Hello, there! Please enter your name."



Zoho Desk supports 10 types of questions blocks.

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
Number
Receive a numerical value from the user


Choice Blocks

A choice block is used to display a series of choices with an array of information, either as buttons or choice card.

Button 
A button displays a set of options to the user and let them choose one. You can build the conversation further, depending on the user's choice. The different types of buttons are, text, image, audio, video, smiley, and feedback.      
  1. Create Path - Enable the option to create a separate path for each button.
  2. Single and Multi-select options - Enables the option to allow the user to choose a single button or multiple buttons, respectively. This is similar to the multi-choice questions you see in a question paper or form.
The Create Path is disabled when choosing the Multi select option because you cannot create a separate path for each button.

Choice Card

A choice card displays a series of choices with an array of information as buttons and lets the user choose one or more options. For example, cards displaying top 5 best-selling zPhone models with the model name, price, and description from which the user can choose one or more models for further support. Depending on the user's choice, the GC flow will proceed further. Apart from the standard fields in the choice card, you can also add custom fields by choosing the Add card field option. For example, you can add a card field with the label, "Stock details" and add values as "In stock" or "Out of stock." You can choose to display or hide the label in the choice card, that is, only the values will be displayed to the user and not the label.

Similar to the Info card, the choice card can be static or dynamic. And similar to a button, you can have single or multi-select options in the choice card.

Action Blocks

Action blocks help perform a wide range of actions happening at the backend, which alter the conversation course, as required. The three different actions blocks available currently are:

Jump Blocks

This block helps you move from one block to another within the same conversation flow, a different flow within the same department, or a different department. The Jump block comes in handy if the conversation requires cross-functional activity. Input and Output variable mapping is significant to Jump block as this helps link both the flows.


Let's understand this using some examples.

Jumping to another GC flow

Example 1: zTravel is a travel agency that does online flight booking, hotel booking, cab booking, and so on. You want your customers to follow the Flight booking GC flow in the zTravel department to book their flight tickets. After booking a flight, you would like to give your customers an option to also book a hotel for their stay. You can use the Jump block to navigate to the Hotel Booking GC flow from the Flight booking GC flow. This requires some input and output mapping details. The variables that you used in the Flight booking GC flow should be mapped to the variables in the Hotel Booking GC flow. The input variable @date of arrival in your Flight booking GC flow is mapped to the @check-in date variable in your Hotel booking GC flow. The output variable @visitor name in Hotel booking GC flow is mapped to the @Passenger name variable in your Flight booking GC flow. Your customers need not enter their basic details for hotel booking, as they have already entered those details while booking their flight. Therefore, you skip the basic details block and directly jump to the room booking block.
Example 2: ZylCares is a company that deals with zPhone, zPad, and zWatch sales, and therefore has a Sales department, Customer Support department, and Vendor department. Say that you are buying these products from the Sales department and you would like to do business with the company, like being a vendor or opening a franchise in your city. You can be directed to the Vendor department GC flow from the Sales department GC flow. 
For example, the input variable @name in your current flow can be mapped to @vendorname in the other flow. Similarly, you have to map the output variables too, that is, the output variables in the other flow should be mapped to the variables in your current flow, like mapping @website in the other flow can be mapped to @emailID in your current flow.

Jumping to another block within the same GC flow

Example 3: After the user selects the device and navigates to the problem type, they will be directed (using Jump block) to the device model selection block. That is, if the person chooses Faulty Display as their problem type, using the Jump block, they can be directed to the Device selection block, where they can seelct the device model to replace the product or get a refund or return the product.

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 Blocks

This block splits the conversation flow into two or more paths based on certain predefined conditions. The data you receive from users via a block is stored under a placeholder called "Block variables." Depending on the conditions set for these block variables, you can configure conversation flows to take different paths. The conditions used in "Fork" can involve not just Block variables, but also Global and Local variables.
 
For example, after a user selects a device and navigates to the problem section, they now have to choose the type of problem. He can either choose "Faulty display and Overheating battery" as Criteria A, mapping the input variable, "@problem type" to faulty display and overheating battery. 
"Faulty camera" can be Criteria B mapping the input variable "@problem type" to faulty camera.
Similarly, "Broken SIM" can be Criteria C.
Each of these three problems has a different path. Based on what problem the user chooses, he will be directed to that path.


Webhook Blocks

This block enables the conversation flow to interact with Zoho Desk processes, other Zoho services, or 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 Conversations

Block Settings

Once you add a block, right-click to view the following set of options:

  1. Edit Block: Opens the block's property panel where you can make the necessary change.
  2. Copy Block: Copies the entire block, which you can use anywhere else within this flow.
  3. Copy Path: Copies the entire path of the block, which you can use in another conversation flow.
  4. Set as Start Over - Sets the block as the point from which the conversation starts again when the conversation reaches its end.
  5. Delete Block: Deletes the entire block.
  6. Delete Path: Deletes the block path.

Advanced Settings

There are also some advanced settings in every block:

  1. Start Over Block - Sets the block as the point from which the conversation starts again when it reaches its end. After the end of every path in the flow, the start-over block gets triggered automatically.
  2. Skip Block - Provides the end user with the option to skip providing an answer to the question asked by the bot, if needed. 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.
  3. End Block - Sets the block as the point at which the conversation path ends. For example, a "Thank you" message block at the end of a GC flow.

Variables

A variable is a placeholder that stores a specific piece of data in conversation flows. Because variables are containers of information, you can use them within blocks as both input and output. There are three types of variables in the Flow builder: Input, Local, and Global.


Global variables help you capture values that are commonly used by different tasks, nodes, and other bot elements. Global variables can also be used to define values that you would like to change when importing bot definition from one bot to another.

Input variables are used inside a question block to make the conversation more personal for the user. For example, a bot asks you, "What is your name?" and you answer it by saying, "John." The bot would then address you as "John" in its next question, as in, "Hi John, please choose an option." Keep in mind that the input variable "John" is valid only for this question block.

Local variables are those that are valid and accessible only in the current conversation flow. On the other hand, global variables can be used and accessed across multiple conversation flows. For example: A website URL or an email address, which is a global variable created for the ZylCares department, can be used across multiple conversation flows in that department. Whereas, the Sales department may have various outlets, and each outlet can have a different contact name and address, which is exclusively used for only that particular outlet. The contact name and address which created in the GC flow for each outlet is a local variable.

Configuring a Guided Conversations Flow

To build a guided conversations flow, perform the following steps:

  1. Go to Setup > General > Guided Conversations.
  2. Select the department in which you want to build the conversation flow and click Create Flow.
  3. In Create Flow form, enter a Name and Description for the conversation flow, then click Next.
    The flow builder appears on which you can create the guided conversation's flow.
  4. Click the Add Block icon on the builder to start adding the block of your choice.
  5. On the Add Block panel, select the block you want to add and enter the Block Name, Bot says, and other relevant details.
    Bot says 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.


  6. Click Save.
You can add more blocks in the same way to complete the flow.
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.

To add a global variable, perform the following steps:
  1. In the upper-right corner of the Guided Conversations listing page, click the Global Variable button.
    A collapsible panel with the list of currently available global variables will appear.
  2. In the upper-right corner of this panel, click the Add Variable button.
    The 
    Create Global Variable form will appear.
  3. Enter the following details in the form:
    1. Variable Name - Name of the variable
    2. Variable Type - Data type of the variable: String or Number
    3. Variable Value - Value to be assigned to the variable
    4. Description - A brief description of the variable
  4. Click the Add button.
    The global variable is now added.

To add a local variable, perform the following steps:
  1. On the far left side of the Guided Conversations builder, click the Variables icon (  ).
    The Variables panel will appear.
  2. On this panel, click the Add Local Variable button.
    The Add Variable form will appear.
  3. Enter the following details in the form:
    1. Variable Name - Name of the variable
    2. Variable Type - Data type of the variable: String or Number
    3. Variable Value - Value to be assigned to the variable
    4. Description - A brief description of the variable
  4. Click the Save button.
    The local variable is now added.


Actions available on the Builder

The builder for Guided Conversations comes with an intuitive, user-friendly interface that lets you build the conversation flow one block at a time. You can use the following actions on the builder while working with blocks.


Action
Action Name
Enables users to

Enter full screen
View only the builder in fullscreen.

Collapse path/Expand path
Show fewer or more paths while working with extensive flows.

Re-center
Come back to the center of the builder if moved away to either extreme.

Zoom In
Zoom in on a specific area of the builder.

Zoom Out
Zoom out to view a larger area on the builder.

Publishing a Conversation Flow

After building the conversation flow to your specifications, it's time to publish. Publishing the flow doesn't mean that the GC is available on your website for end users; it only means that the flow is available for ASAP to access. The GC will be available in your help center only after you associate the GC flow with ASAP.

 
To publish the flow:
  1. Go to Setup > General > Guided Conversations.
    The conversation flows are listed under Published, Draft, and Trash.
  2. Click Draft to view the flows that need to be published.
  3. Select the finalized flow and click Preview to review the flow before publishing.
    Preview opens a chat window on the right, enabling you to examine whether the conversation flows as intended.
  4. Verify the flow, make any changes if needed, then click Publish when you are ready.
The Save Draft option lets you save the flow midway so that you can resume working on it later.
You can make a flow available on different websites by associating it with multiple 
ASAP widgets.

Deleting a Conversation Flow

Deleting a conservation flow does not entirely remove the GC flow from Zoho Desk. This only means that the flow will not be visible to your end users on your help center. Once deleted, the flow will move from the Published or Draft tab to the Trash tab. You can restore it anytime you want by selecting the deleted flow and clicking the Restore button. Note that only users with permission to delete GC flows in their respective Profiles can delete.

 
To delete a conversation flow:
  1. Go to Setup > General > Guided Conversations.
    The conversation flows are listed under 
    Published, Draft, and Trash.
  2. Hover over a conversation flow under the Published or Draft category.
  3. Click the Delete icon (  ) corresponding to the flow.
    The confirmation box appears.
  4. Click Delete.
    The flow will be deleted immediately.
A message may prompt the user to confirm when the flow subjected to deletion is associated with another flow.

Associating Flows with the ASAP Add-On

To engage your end users or website visitors through Guided Conversations, you must enable it inside Zoho Desk's ASAP functionality.

 
To enable Guided Conversations in ASAP:
  1. Go to Setup > Channels > ASAP.
  2. Click the add-on name in which you want to include conversation flows.
  3. Under the Tab Selection, hover over the Chat tab.
  4. Click the Settings icon corresponding to the Chat tab.
  5. Under the Chatbot Settings section, enable the Guided Conversations toggle button.
  6. Click the Associate Guided Conversations Bot link.
  7. Click the Select link to view the list of available conversation flows.
  8. Select the GC flows you want to associate with the add-on and click Add.
    The conversation flows you selected are now associated with the ASAP add-on.
  9. Click Save/Update.
    • Related Articles

    • Configuring Webhook Block in Guided Conversations

      The webhook block is one of the three action blocks available in Guided Conversations. This block enables the conversation flow to interact with Zoho Desk processes or other Zoho services or third-party services. The webhook block uses APIs from Zoho ...
    • Translate Ticket Conversations using Google Translate

      Google Translate is an extension that Zoho Desk provides its users for translating ticket conversations to any required language. The extension helps agents to read the ticket conversations in their own language or the language of their choice. It ...
    • Working with the ASAP SDK for iOS

      SDK v2.0 Introduction The ASAP SDK for iOS makes help available within quick reach for the end-users of your iOS app. Using this SDK, you can create and customize an add-on that resides within your app and provides end-users with easy access to your: ...
    • Ticket Views: Thread and Conversation/Nested

      Zoho Desk allows you to view the details of a ticket in two different ways. You can view a ticket either as threads or as a conversation. Let us look at these detail view types in a little more detail below.  Conversation View The conversation view ...
    • Generating nonces for the ASAP add-on

      Suppose your website or mobile app has a CSP (Content Security Policy) with script-src (a directive that controls a set of script-related privileges). In that case, you will not be able to embed the ASAP add-on using the regular code snippet. You ...