Make Your Bots Soar

A High-Level Design Process for Enterprise Customer Service Bots

Molly Mahar
Oct 6, 2017 · 11 min read

It seems everyone is hot for bots these days. Customers are interacting with chatbots that tell them the news, fight traffic tickets, act as personal assistants, and even diagnose medical conditions. Companies large and small are clamoring to create their own chatbots, and customer service — often filled with simple, repetitive queries — is an area where a bot seems to promise a clear return on investment in both speed and scale. But just how easy is it to launch a chatbot?

Salesforce has just announced the summer 2018 launch of Einstein Bots, a bot builder that will leverage the accumulated knowledge of an organization’s Salesforce data via advanced AI and language recognition capabilities. In the process of creating this builder, we’ve spoken with a number of enterprise companies and developers that have implemented bots. We found that most of these companies are essentially charting new territory — chatbots are so new that there aren’t a lot of established best practices. There are tons of resources at the micro level, but we found a lack of high-level, end-to-end process guidance aimed at the special needs of enterprise customers.

A customer service chatbot, after all, might be the first touchpoint a customer has with your company. It represents your brand and reaches customers directly, often at a time when they are stressed or emotional because something isn’t working correctly. Integration with your enterprise data will be significantly harder than for consumer-focused chatbots that allow you to do one or two things. With those considerations in mind, I’ve outlined what I see as the four main stages of an enterprise chatbot implementation:

1. Choose Your Destination
2. Plot Your Course
3. Take Off!
4. Make Course Corrections

I’ll go through each of these stages in depth below, highlighting the key questions within each. Used as a guidebook, this workflow should help you on your way to creating an awesome customer service chatbot that integrates well with your existing service team and company data.

Image for post
Image for post
A chatbot is just one of the elements of your customer service response. Photo by chuttersnap.

Choose Your Destination

The first step is to start defining the Who, What, and Where of your bot.

Who will develop and implement the bot? Consider building a team that possesses a range of skills: conversation and writing, design, development, data science, and customer service. We’ve found that bot building is a very collaborative process that requires much more subject matter expertise than one person is likely to have.

What is your goal for creating a chatbot? Consider how your bot will be useful to the customers you want to reach. Should it be informational like a FAQ or transactional to process product returns? Also consider what the bot explicitly won’t do — you can always expand the bot’s skillset later.

Where will you deploy your bot? Will the bot appear only on your website, or through other channels? Will it integrate with your customer service agents?

Integration with your enterprise data will be significantly harder than for consumer-focused chatbots that allow you to do one or two things.

Now that you understand the contours of your bot, how will it integrate with your data? Take a look at your current system and determine what data endpoints your bot needs to access to be successful. Will you need to make any changes to your CRM in order to access these data? Find this information out now, so you have more time to wrangle the data you’ll need.

We’re pretty excited about the ways that bots can augment and empower customer service agents to deal with more nuanced and complex problems.

Image for post
Image for post
Neither your bot nor your agents should feel unmoored. Ensure they’re well-integrated for a better customer service experience. Photo by Rod Long.

How will your bot work together with your current agents, and how will it affect your service center? Make sure your service agents are involved in the bot planning, as they’re the ones that deal with customer issues daily. Agents have a strong sense of the types of service problems for which the bot will be best suited, and keeping them a part of the process ensures that the bot augments their existing service processes.

The MVP is the Minimum Viable Product — this is the version of the bot that can do the necessary things you’ve just defined, but maybe not to the full degree or style that you’d like. It will necessarily be imperfect and/or incomplete. For instance, you may want a funny, conversational bot that will engage with customers with humor as it helps them out with their issues. But you’ll most likely need to compromise on either breadth (i.e. build a bot that only handles ⅕ of the issues you ultimately want) or depth (i.e. build a bot that can solve most problems, but only through limited defined inputs like buttons and menus). Choose a limited set of features that you will be able to build out successfully to start, and plan to improve on your bot regularly.

You will never be able to design a perfect bot without letting it out into the world, so think carefully about how you can release the bot, learn from it, and then build it better — always getting closer to your ultimate vision. Once you’re settled on that, you can start getting into the details.

Plot Your Course

With the infrastructure questions are out of the way, consider what kind of personality your chatbot should possess. Be sure that your bot reflects your company’s brand (think: brand colors, emoji usage, level of formality, language, etc). Is there a specific voice and tone that would work best with the types of scenarios and skills you want your bot to have? Does it align with the types of customers that will be using the bot? Will any of these decisions exclude particular groups from using this bot or feeling comfortable using this bot? Having a clear picture in mind of how your customers should perceive your bot will come in handy later, when you’re designing the actual conversations it will have.

Image for post
Image for post
Your bot should reflect your company’s brand, and have a distinct personality. Which of these umbrellas would it be? Photo by Egzon Bytyqi.

Now you get into the weeds — what exactly can the bot say and do, and how will that flow? How will your target customers approach the bot, and how should it respond in a way that matches its personality? This is the stage where you start scripting — you may want to use sticky notes, mind maps, conversation builder tools, or just start typing. Each task or issue will have some kind of flow from beginning to end, and you may notice that some portions get used multiple times for different issues (like customer verification, or payment) and show up within multiple flows. That’s great — keep track of them because they’ll get reused when you go into your bot builder later.

For now, work on the conversation, and do lightweight testing by inviting others outside your planning group to chat with “your bot” and walk through the flows. Refine the conversations as necessary. At the end of this step you should basically know what the bot will say at each point in the conversation. It doesn’t need to be polished, but it should be functional — you’ll polish it up later. Read more about conversation design from a linguistics perspective, or learn some tactical tips for writing your conversations.

After the initial testing, you may have discovered some gaps. We encourage you at this point to think carefully about how your users will really use this bot — where the conversation should start and end, and what the user might be doing when they reach out to your bot. Are you assuming that all your users will have ample time or available hands to type long text inputs? Are you assuming all your customers will have unlimited data plans? Consider how customers using accessibility tools might also be able to gain something from using your bot. Microsoft Inclusive Design has a fantastic resource on designing for inclusion; I recommend taking a look and incorporating some of the things you discover from it into your bot.

Image for post
Image for post
Human conversations have tons of gaps, but we’re usually able to fill them in using context. Text conversations often lack that context. Photo by Johannes Schwaerzler.

You have most of your conversations created now, but there are probably some areas you’ve missed. Think of your bot like a baby, to whom you have to teach literally everything. The bot doesn’t come with cultural patterns ingrained, or proper greeting etiquette, or even basic responses.

Does your bot know how to greet customers, and understand when customers are making pleasant chit-chat? What happens when your customer doesn’t enter the information you want them to, whether irrelevant information, spam, or profanity? Will your bot fail gracefully? What happens when it misunderstands something? We often forget about the number of misunderstandings that we have in regular person-to-person conversation, because we’ve become accustomed to the ways in which other signals allow us to disambiguate what the other party means. Google has created a great resource on conversation repair that you might want to reference during this stage.

We often forget about the number of misunderstandings that we have in regular person-to-person conversation, because we’ve become accustomed to the ways in which other signals allow us to disambiguate what the other party means.

Finally, the time has come to start bringing your bot to life — it’s time to dive into your bot builder application and actually build your bot! Clean up your outline or conversation map, making it clear which elements you’ll want to be text, images, menus, buttons, or carousels (color-coding them might be helpful). You’ll want to break up your conversation outline into smaller, more reusable chunks — dialogs — that accomplish one or a few things without being too complex. For example, for a utility company bot you might have a few main dialogs: Pay My Bill, My Account, Change My Plan, and Tech Support, plus greetings and conversational necessities. Common to all these dialogs is the need to verify someone’s account. That could be a single dialog that gets called (or referenced) by the other dialogs so that the main task for each dialog can be accomplished.

Image for post
Image for post
Your conversations will be easiest to maintain if you build them as a series of potentially reusable chunks of actions or speech. In this example of a simple series of dialogs for a utility company, Account Verification is reused by four dialogs.

Think carefully about how you want your customers to interact with your bot — having lots of buttons or quick replies might make sense for one task, whereas typing free text might be more appropriate for others. You’ll want to adjust these interactions so they feel right for your customers, brand, bot personality, and use cases.

Be sure to start setting up your escalation process here, too. What happens when your customer can’t get what they want by conversing with your bot? Make sure they have an escape route to a human — Einstein Bots allows you to easily set up routing to your agents. Consider when transferring should be an option for them — always, or only after the bot has failed at a task? What should happen during the times when your customer service agents are offline?

What happens when your customer can’t get what they want by conversing with your bot? Make sure they have an escape route to a human.

Take Off!

Congratulations! You have a bot that aligns with your MVP goals. Now is the time to test, test, and test it out some more. Implement it in your developer sandbox, and enlist as many people as you can to test it out. Have them try to break it or catch it unaware. Work through all the flows, both the happy paths and the unhappy paths. Discover what you’ve missed, and make adjustments as needed. They say 99% of good writing is rewriting, right? It’s the same concept here.

Now that you’ve been testing and revising the bot, you’re just about ready to deploy. But before you do, make sure all stakeholders are clear on who will maintain, refine, and test the bot going forward.

· Who monitors the bot’s interactions, and at what intervals?
· Who will know what it is saying to your customers?
· Who will be tracking performance metrics, and what metrics are important to your company?
· How will the bot potentially affect your bottom line, and how will you account for that?
· How will you know how your agents are collaborating with the bot?

You will want all of this information, so ensure that you have a plan for capturing it before you deploy the bot. Most of this should have been discussed as part of the scoping process, but your bot has likely changed shape a bit since then. Make sure your plans are up to date.

Your bot will never be ready until you deploy. There will always be more to do, so now is the time to let it out there and see what happens. You’ve done all the planning and preparation, and now it’s time to let your little bot leave the nest.

Make Course Corrections

Image for post
Image for post
Public Service Announcement: the refinement stage never ends. You will (or should, at the very least) always be upgrading your bot. But it’s fun, and you’re always learning. Photo by Leonard von Bibra.

Congratulations! Your bot is live. From this point forward, continue tracking your bot’s performance and working with your stakeholders to refine and optimize your bot. Use transcripts to optimize your conversations (e.g. track the “I don’t know” responses given by your bot to suggest areas to add skills and knowledge in the future). Find and fix negative patterns that appear in your data. Talk to your customers. Talk to your agents. Don’t let the fact that I only wrote a few sentences here throw you off — this step is never-ending.

I hope having this process outline will be helpful to your team as you build your customer service chatbot. It’s a lot to consider, but going through this process will make your bot more robust, and will make the process go more smoothly. Think of your chatbot as one touchpoint on a service design journey. As you gain more experience, you may find you can use a bot for other purposes — even for internal employees.

Have you implemented your own enterprise chatbot? Are there other process checkpoints you’d recommend to others? Let us know below!

Molly Mahar is a Product Designer at Salesforce.

Follow us at @SalesforceUX.
Want to work with us? Contact
Check out the
Salesforce Lightning Design System

Salesforce Design

A collection of stories, case studies, and ideas from…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store