It’s been great talking with many of our customers and partners at our Intelligent Advisor focus groups who are already getting started with their chat implementations using the Intelligent Advisor Chat API. To this end, I thought I’d share some of my learnings in building interviews for chat.
The basics
The process of defining a chat Intelligent Advisor interaction is pretty much the same as for an interview – simply define the screens in Policy Modeling, enable the Chat Service channel on your Intelligent Advisor Hub, and you’re good to go.
The same interview can also be deployed through other channels as usual.
The Chat Service is a REST interface that once initiated will serve up one question at a time (irrespective of how many questions are contained on the screen) and present any informational text, until it reaches a final screen.
So what’s different with chat? Well there are a few nuances that are worth keeping in mind before you begin.
Know your interface
Your Intelligent Advisor interaction will display differently in different chat clients. At a high level, the Chat Service is consumed by a chatbot technology such as Oracle Digital Assistant (ODA) and it translates the screen definition (question text, type, screen headings etc) to controls that can be rendered in the consuming chat client. In short the Chat Service is consumed by a chatbot technology which translates into the format needed for the chat client, for example, Facebook. Different chatbots and chat clients will have their own way of rendering (or not rendering!) screen controls that may or may not be to your taste, or may make some design decisions easier. For example;
- If radio buttons and text buttons look the same in your chat client; there’s really no need to use both in defining your interview (unless you’re using the same interview through another channel)
- If your chat client doesn’t render decision reports; you may want to present key explanatory information as labels or in a downloadable document instead
- If your chat client doesn’t render screen headings, you may need more information in the question text itself.
I highly recommend building a short sample interview, containing the type of controls you’re most likely to use and test they appear as expected in your chatbot, before you get too deep into your interview design.
Pro tip: If your chat client does not support display of images, try using a URL to reference the image, rather than adding it to the OPM project directly.
Take it personally
Just because you’re in a chat interface doesn’t mean you can’t be smart about the information you already know about the customer – take the time to setup your data mapping so that you load existing customer data to streamline questions, and to personalise question text “Hi Jake” to make that interaction just that little bit faster and more personal. You can load (start, end or mid-interview), create a record in a connected application (Service Cloud or Engagement Cloud, for example) and attach documents in chat just as you can through a standard interview.
If multiple policy modellers are working on the same interview, you may also like to develop some guidelines on how to phrase interview text to the end customer in chat. Some chat implementations prefer a more human approach (“Sure, I can do that for you Frank”), while others like to keep it clear to the end user that they are interacting with a bot.
Question text
Chat serves up a single question at a time, and a single set of answers, so be mindful of whether you’re providing enough context to the end user to answer. For example;
- Question text should make sense in isolation.
- No labels with split answers (checkboxes)
- If your chat client doesn’t render screen headings; you will to capture all context in the question text itself.
More specifically, the common structure of collecting entity information through a table is simply not going to work in chat.
For chat, you’re going to need to collect the entity as one input (here “the child”) and then collect the entity level inputs as individual questions.
You might like to use formatting to accentuate the slight differences in wording between each question. For example, How many servings of <b> protein </b> does %child_name% eat per day? If your chat client doesn’t support html, then CAPITALISING the key word may be an acceptable alternative.
Pro tip: Where you have a small, defined set of entities, it may present better to collect these as Booleans and use the Boolean attributes to infer the entities. For example the questions “Would you like to apply for car insurance?”, “Would you like to apply for pet insurance?” etc could be used to infer instances of “the insurance” entity on which data is later collected.
Labels
Text that is informational is dropped into the chat client immediately after the preceding question or label. It makes no difference whether the text is a series of labels on a screens, or a series of screens with only labels; that information is going to appear as a single stream of information in the chat. You can use this to your advantage by splitting labels across screens, if it makes your design cleaner to do so.
Remember that large blocks of text which are fine in a web browser may come across as overwhelming in a chat. Consider adding a link to the information instead.
Navigation
The chat client will present the next relevant question at each step, however where multiple questions have been added to a single screen in Policy Modeling, each visible question on the screen will be presented, one after the other, before moving on to the next question screen. This may result in questions that are no longer relevant being asked in chat if they are on the same screen as a relevant question. To show only relevant questions, consider keeping to a ‘single question per screen’ model, or for multi-channel interviews use ‘show if relevant’ on individual questions.
For moving back and forward through the interview, the user is unlikely to have the luxury of a “Back” and “Next” button. Standard practice in chat is to enter a chat intent for these (the user types back, it will take them back to the previous question), allowing the user to move back through the interview to change their answers.
Translations
Intelligent Advisor provides the flexibility to add translation files to a project, rendering the interview text in any language. However, your chat interface language settings will still affect how the main interface is rendered, including, for example, any Boolean Yes/No. Check the interface you’re using is going to support your language of choice otherwise you may see your questions in your native language and the answer buttons in another. Another approach may be to trigger your Chatbot to change the Chat UI, not just the interview language.
Multi-channel interviews
Ok, so I started this post saying that you can define a single interview for deployment through multiple channels, including chat. However, if you do have an interview that is deployed through both chat and web determinations (browser interviews) then you may still need to make some tough design decisions or you might choose a different set of screens to make the chat experience more conversational, using the fact that only one question is going to be asked at once.
Ideally you can define the interview in a way that the same interview can be used for both, but if that’s not desirable (you really want to use that entity table, for example!) you have a couple of options:
- If there are only minor differences between channels; you could set the channel via an input attribute and use seed data to set the value when the interview is launched. Use that attribute to then control the screen visibility for your chat and non-chat screens. In this way you can have the same questions collected through one method for chat interfaces, and a different method for chat. The same applies for labels, where shorted text with links may be more desirable for a chat interface.
- If your screens are wildly different, use inclusions to define your core interview centrally and have separate projects (and deployments) for chat and other channels.
Previous: Tips and Tricks 5: Putting the You in Interview
See also: