Step 5: Designing the Conversation Flows and Dialogue

So far, we know what the core functionality of the bot is, what users are expected to say to the bot, and which bot persona will most suit our client. This means we are ready to start formulating the responses our bot will provide.

Who are you

EVA greeting window, a bot we created with Nedgroup Investments

Conversation flows

The starting point for dialogue and conversation design is to assemble the main flows and processes previously defined as core intents. We map out the major customer journeys and visualise these as logical pathways:

Example of a tax certificate retrieval flow

Example of a tax certificate retrieval flow

By visualising the flows, we can avoid loops and add extra steps the client's system may need (such as email validation) in a conversational style.

Visualising the user's journey also highlights another essential aspect of conversation design - always keeping the user moving forward and avoiding dead ends. Being faced with the chat version of the proverbial "blinking cursor" is a sure-fire way to have the user exit immediately (and in all likelihood not come back).

Avoiding a dead end at the end of a flow by prompting for further help

Avoiding a dead end at the end of a flow by prompting for further help

Building on this outline, it quickly becomes clear that only the simplest flows are linear. Linear conversations are also often boring! More often than not, a user will end up in a nested flow, touching on multiple facets of bot functionality.

Let's say a user wants an insurance quote on a vehicle. There are several paths the user can take to achieve this, depending on the user's starting point and vehicle type. Generating an insurance quote for a car or bike requires different information than for a caravan or trailer, so a car owner and a caravan owner would follow diverging paths to get their quotes. These user types would converge again later in the flow once their differences have been accounted for.

This is visualised in the below flow:

(Simplified) example of converging and diverging flows, moving towards the same endpoint

(Simplified) example of converging and diverging flows, moving towards the same endpoint

An intelligent AI assistant must also have the ability to switch between flows, and respond appropriately when a user changes their mind mid-flow about what it is they want to do. Getting stuck in a particular loop of conversation is not a good experience and often leads to the user simply exiting.

Example of a bad user experience – getting caught in a loop

Example of a bad user experience – getting caught in a loop. Source: Why Chatbots fail

To avoid this, we choose our language carefully so that the user can arrive seamlessly at individual pieces of bot dialogue from multiple entry points. There should be no obvious non-sequiturs or conversation fragments that seem out of place.

Dialogue

Once the core journeys and logic skeleton are in place, we make sure our language choices meet compliance standards and regulatory requirements. We also refine the wording used in our original flows and add conversational elements to allow for a natural chat flow. Our dialogues are guided by our Conversational User Experience (CUX) best practice principles.

Amongst other things, we:

  • Add an intro and personalised greeting where possible
  • Add conversational elements such as small talk, politeness, and humour if appropriate
  • Create a positive exit experience which encourages the user to return
  • Include marketing hooks in the exit experience if possible/required
  • Vary the phrasing of questions and confirmation messages to avoid repetition
  • Always prompt the user with suggested tasks
  • Add linking text to make transitions smoother

Mock ups

In order to see how the flows work together, and to present to the client for sign off, we mock up the dialogue using Botsociety or Chatdown.

Example mock ups in Botsociety and Chatdown

Example mock up in Botsociety

These mock ups can also be used for focus group testing in the next phase of bot development – building, testing and improving the bot.