Organizations create style guides to capture the rationale of their design decisions and help other teams build great experiences. You might have read gov.UK’s service manual or the U.S. Digital Services Playbook.

I wanted to do the same for chatbots built on the Facebook’s Messenger platform. At Sure, we are creating an online assistant that helps you find food and drinks that are better for you and the planet. It is still very early days for bots, so I wanted to take the opportunity to share some of our early learnings.

1. Make life easier

Computers should know things. With a minimal amount of input from the user, the bot should be able to provide value by leveraging stored information. The bot should be aware of and even anticipate the needs of its users and meet those needs with minimal friction. It should automate the kinds of tasks users would normally do on their own, like making a dinner reservation, adding it to their calendar, and sharing it with friends. A bot should save time and relieve stress by reducing friction and effort. Otherwise it is not much better than the website or app that came before it. Integrations and contextual relevancy are key elements to the experience.

2. Have the bot introduce itself

A bot should always introduce itself and explain what it can do. As with any other experience, there is a slight learning curve so you will need to onboard new users. You cannot expect your users to figure it out themselves. Use the first message to tell the users what they can do and suggest a first task.

3. Provide continuous support

Continue to provide information and useful actions for a continued positive experience. Help and documentation should be accessible via the bot itself. Commands like help, settings, start over, and stop seem intuitive to most users, so make sure your bot responds to them.

4. Always suggest the next step

A bot should drive the conversation forward and at times even restrict it. Consider suggesting things to do; this will help users discover additional functionality.

“Hey bot, book a table.”

“Table reserved. Would you like me to order an Uber?”

Bot interactions are a bit like the traditional ecommerce flows. We should constantly keep the user updated and help them move forward, while avoiding overwhelming the user with a wall of information.

5. Start simple, but quickly add power features

Not showing all features up front will make the interaction less wordy and faster for new users. Every extra bit of information competes with the relevant units of information and reduces their relative visibility. Once the user starts to understand what the bot can do, you can gradually remove the training wheels and reveal more functionality. Continuously showing expert features will make the experience more efficient for power users. You can help users discover power moves by proactively providing small tips about additional functionality.

6. Accept that interactions will be short, and that is OK

Screen real estate is very limited on a mobile device, so you will want to keep messages concise. Also, users tend to skim if they read at all. The bot should mimic human behavior. Long messages sent too fast are very hard to comprehend and will quickly become overwhelming. You do not want the user to have to scroll back up to read the whole message.

Chatbots are part of the transitional journey from graphical UI to no UI. Contextual and previously stored information means that chatbots will be able to shorten complicated flows. Purchasing products and confirming appointments will be as simple as a single click or message.

7. Craft a hybrid experience

Messaging apps let us remove most interface elements and reduce the experience to a simple message thread. Chatbots live within messaging apps, and users are already accustomed to communicating with friends using text, but text input is not efficient for all use cases. The GUI replaced the text-based terminal for a reason, and some tasks, like browsing and selecting, is faster with touch or click. Images and structured content are an excellent way to present information in a more interesting way. Overreliance on structured messages, however, will feel artificial as you lose the conversational element.

8. Make interactions simple

The number of paths a conversation can take increases the potential for dead ends. It is better to limit the functionality and nudge the user down a particular path. A simple solution is to use structured messages to guide the users. Rather than asking the end user to type yes or no, show a structured message with two buttons.

9. Use personality to make the experience more pleasant

The content can stay minimal, but the medium does not have to. There is a clear distinction between the content and the delivery: the what and how. When users chat with the bot, they expect clear answers. However, you can use the opportunity to add a bit of flavor to the message. Adding different versions is also an easy way to add a bit of personality.

Brands often have a bespoke tone of voice; an ecommerce site might sound friendly, whereas a lawyer would probably be more professional. Know your audience and choose a communication style that fits with your customers and brand. Messaging apps also cater to different types of communication. Users of Sure have sent pictures, audio messages, and emojis. They share their feelings and emotions, positive and negative; they also use humor when chatting. Bots exist in the same space where you would normally interact with a friend. If you remove the text and personality, are you not just left with a simple, inefficient mobile app?

10. Start off with a focused chatbot

A bot needs a clear value proposition. Why else would you use it? A focused bot that does a few things right is more useful than ones that barely scratch the surface. Also, natural language processing is hard. We still have a long way to go before machines fully understand the complexity of human communication. In the meantime, it is better to build a focused chatbot. Chatting to a dumb chatbot is no different that using an automated telephone service — nobody likes those.

11. Reply, always

The bot should always respond, even when it does not understand the user. Saying “Sorry, I did not understand you” is better than ignoring the user — adding a bit of humor to the message is even better. Backend services might delay the bot’s response. In that case, the typing indicator or a message like “Hey, still thinking about this…” is a delightful micro interaction and a simple feedback mechanism.