Chatbot Design Canvas

(First published in Chatbot’s Life in Jun 2017)


What is a chatbot?

The answer to this question will depend on who you ask. My take on it is that, chatbots encompass a wide variety of conversational computer programs. And for the same reason it is difficult to figure out the parameters of a chatbot that we set out to build for a given problem. Are you nodding along? If yes, you might find the following tool very useful.

Chatbot Design Canvas

Chatbot Design Canvas is a tool that can used for high-level design of a chatbot. The canvas prods you to ask certain questions in a certain order with the aim of figuring out the necessary parameters even before you get into conversational design and development.

The canvas above is colour coded with green (for value proposition) where you start, red (all user related parameters), blue (for all chatbot design parameters) and yellow (for all chatbot development and deployment parameters).

Download PDF here.

Let’s get started!

Value Proposition

This is where you start. And this is the most important question you need to ask! What value does the chatbot provide to its users. What customer pain point is it going to address? Is it going to talk to them about weather? Share prices? Forex prices? Help them in online shopping? Or help them troubleshoot a product?

If you are working for a business client, you may be developing a chatbot to help ease their customer contact issues. The bot may be used to market a product range, sell them online, help resolve customer issues alongside the human team. Whatever it is, clearly understand the value the bot is providing to its users. You may want to consider all users: end-users as well as power users (admin, live agents, etc who work with the chatbot to serve the end-user).


Who are the users exactly? Who are you building it for? In case of business bots, it could be employees and in case of consumer facing bots, it could be, well, consumers. Here is where you could drill it down a bit to detail. What is the age group of your users? Gender? Geographic location? And so on. What about the language they speak? The language aspect is important, because chatbots are designed to have conversations and therefore need to reflect the kind of language that users use to get adopted. You may also want to look critically at the user group in terms of their values and interests.

Again, do not forget the power users. These are people who will interact with the chatbot at a meta level seeking reports on performance, or configuring it and so on.


Having figured out who your users are, try to figure out the kind of devices they own or have access to. There are variety of devices that can be used to access chatbots: smartphones, tablets, laptops and desktops. Which of these devices do your users have or use the most?

While largely ignored, traditional devices like landline phones and simple feature phones can also be used to access chatbots. These devices do not depend on Internet data and therefore could be considered an option for users located remotely where data connections are faulty or unavailable. However, traditional devices have their limitations. Landline phone can only be used for voice based chatbots and feature phones can additionally interact using SMS (text messaging service).

Other emerging devices for automated chat are Amazon Echo and Google Home. If your chatbot is addressing problems in the user’s living room or in the kitchen perhaps, then these devices could be on your list.

Deployment Platforms

Chatbots can be deployed on a variety of platforms and devices. So it is important to understand which of these would be beneficial to your users.

Popular platforms for chatbots include Facebook Messenger, Skype, Slack, etc. There are more messaging platforms that have been opened up to chatbots. There are ones that popular in few regions only (for instance, Telegram is hugely popular in Russia but you won’t find a lot people using it in the UK). You may want to figure out which ones are the best for your target user group. These are messaging platforms that you can access via mobile apps, or websites.

It is also possible to build chatbots using more traditional platforms like text messaging (SMS), voice calls, email and social platforms like Twitter, which is not considered by many as a messaging platform. Traditional platforms are good for user groups that are not very tech savvy or live in regions where ICT penetration is fairly low.

You need to also think about the idea of sharing data with these platforms. Everything your user types into a Facebook Messenger chatbot is shared with Facebook. Are you happy with that? Think about it! If not, you can always build chatbots that can be plugged into a website.

Lastly, think about how different these platforms are in terms of what they offer the chatbot developer. Some like Facebook Messenger have great GUI elements like Cards and Carousels when others don’t. This could be important depending on what you want the chatbot to do.

If your chatbots are designed for devices like Amazon Echo or Google Home, then these devices come with their own platforms: Amazon Alexa and Google Assistant. Chatbots can be deployed as skills or actions on these platforms to augment the capabilities of assistants residing within these devices.


What are the modalities of communication for the chatbot? Most simple chatbots use button based communication. User’s options are presented as an array of buttons and the user can communicate by pressing them. Going one step further, the chatbot could support natural language inputs. Users can type in textual utterances to request for information or respond to questions. Further ahead, the chatbot could support speech based interaction by processing incoming user speech and synthesising its own utterances. These options relate back to the choice of deployment platforms as well. Finally, you may also want to figure out if the bot needs to understand images (GIFs, emoticons, etc).


Does a chatbot need a personality? This is a question with many answers. Due to the nature of interaction (i.e. conversational), users invariably assign personalities to chatbots. So it is better for designers to figure out the chatbots personality before users do. So ask these questions: Do you want to give your chatbot a name? And may be a face? Is it going to be an extrovert? How formal or casual will its utterances be? Is it going to do small talk? Perhaps even tell jokes and limericks?

Conversational tasks

Having identified the value proposition, users and platforms, lets move on to identifying the specifics. What tasks do you envisage your chatbot doing? At this point, we need to break down the value statement into conversational topics and break topics further down into tasks. For instance, in a retail environment, the chatbot could provide value to end-users (i.e. consumers) by answering customer questions round the clock. Now the topics of conversation as such would be about delivery issues, returns and refunds, troubleshooting, etc.

By further dividing the topics into tasks in this regard, one may come with tasks such as getting delivery rates (e.g. a conversation where the chatbot can ask delivery address details and calculate delivery rates and options), returns checker (e.g. a conversation where the chatbot asks questions to check whether the product can be returned without any hassle or not), etc.

Backend tasks

A chatbot is not just for making conversations. It needs to carry out tasks in the background at the same time it is chatting with the user. For instance, a ticket booking chatbot, will need to access the tickets database to check for availability and book tickets as part of the conversation. For chatbots providing access to information such as weather, share prices, etc, the backend tasks may be simple. On the other hand, chatbots assisting online shopping may have to access the back-end Content Management Systems (CMS) like Magento, Shopify, etc to search, get product information, create carts, take payments and delivery information and to finally checkout. Likewise, chatbots providing marketing services should be able to talk to the CRM systems like SalesForce, HubSpot, etc. Such interactions can include a variety of tasks like creating a lead, recording an enquiry, etc. Other simple tasks would include sending information via email or SMS to the user.

The idea here is to create a list of back-end tasks and map them to conversation tasks to visualise how the conversation may need to be amended so that back-end systems are accommodated robustly.

Third party services

There are a lot of third party services that are available that already do what chatbots need to do in a modular fashion. These services can be harnessed in order to not reinvent the wheel every time we build a new chatbot.

One of the key features for a chatbot is its ability to understand natural language (Please note that not all chatbots are designed to process language). But this need not be built from the scratch. There are services like API.AI, LUIS, IBM Watson, WIT.AI, and LEX (Amazon) that can do this for you. All you need to do is to build a language model to the conversational tasks that your chatbot needs to handle. These services will translate a string of words into user intents and parameters with which your chatbot can handle the conversation. If you decide to build a voice bot, you will need to process users’ speech inputs. You could do this using Amazon LEX, Google Speech API, etc.

Development platform

Having figured out conversational tasks, backend tasks, third party libraries to use, it is time we move on to another important question: the development platform. There are several options here:

  1. Web based visual platforms: ChatfuelFlowXO,, etc are for non-coders who can build a chatbot quickly once the conversational flow has been figured. They are visual in the sense that implementing conversational flow is by playing around (create, drag, connect) with conversational blocks. These are best for simple bots that do not rely overly on processing natural language inputs from users. These platform are becoming more sophisticated allowing chatbot users to talk to liveagents, connect to third party information services through webhooks, etc. They also allow developer to seamlessly integrate the chatbot with one or many deployment platforms.
  2. NLU based platforms: Tools like API.AI not only process natural language utterances, but also allow developers to create full fledged chatbots. Thes tools are suited very much for NL based chatbots (read voice bots on Google Home). They allow developers to hook in their web apps as webhooks to allow the bot to do back end processing of users’ requests.
  3. Conversational toolkits: There are tools like Microsoft BotBuilder SDK which can be used to build chatbots quickly. The SDK provide a library of tools to create conversational flows with ready made conversational engine in Node.JS, .Net and REST. Other similar toolkits include BotKit, BotPress, etc.
  4. SDKs from deployment platforms: Every deployment platform we have discussed above have their own set of SDKs to help developers integrate their chatbots into the platforms. These SDKs specify message formats that need to be adhered to by the chatbot. In this case, you will be building the conversation engine and flow yourself and integrate it with platform SDK.

In case of options 3 and 4, you will also need to host the chatbot yourself in a cloud platforms like Heroku, Amazon AWS, MS Azure, etc.


Analytics is for post development. Analytics helps understand how the chatbot is used, where it fails and what the users think. Analytics is about collecting data to infer answers to these and many other questions about how the chatbot is actually doing post deployment. Some development and deployment platforms have their own analytics suite: Chatfuel, Facebook, etc. On the other hand, there are several toolkits you could use:,BotAnalyticsDialogAnalytics, etc. Very recently, Google has released its own analytics platform called Chatbase.

Analytics platforms provide us with insightful information on how the chatbots are being used. These include the total number of users, daily new users, user retention stats, popular inputs, inputs from users that the chatbot did not understand, etc. It also gives intelligence for our marketing efforts such as the source of the user: Facebook, Twitter, etc.


What marketing techniques do you plan to use? This might seem like a question irrelevant to the development team. But it is not. Marketing approaches set the expectations on what a chatbot can and cannot do. Users very first interaction with the chatbot may be fuelled by those expectations. So it is necessary to understand how the chatbot will be marketed.

Facebook Adverts with a direct link to the chatbot via Send Message button is one way of getting users to start with in case of Facebook chatbots. Chatbot URLs can be marketed on other social media channels like Twitter, Instagram, etc. And it is always a good idea to tell users how to get started with the chatbot during marketing campaigns: say ‘hi’ to our chatbot, and in case of trouble say ‘help’.

These in turn should guide conversational tasks design as discussed above. You should think about whether the first time conversation with the chatbot is going to be different from subsequent ones for a user in order to facilitate onboarding.

So there you go! 12 questions that provide you a holistic bird’s eye view of the chatbot you are thinking to build.

Happy Chatbotting!

I am eager to hear your stories about how you used this canvas and other tools to identify the parameters of your new chatbot. Please feel free to comment.

Try my new book on Chatbots and Conversational User Interfaces Development!

The Paradox of Conversational Design

(First published on ChatbotsLife in July 2017)
Chatbots are evolving at a rapid pace. Their evolution is fuelled by the huge amount of interest in getting them to be used as buddies, assistants, companions, and what not (probably even adversaries) in various conversational settings. However as we embark on the development process, what stares us in our faces is the paradox of conversational design.

Conversational design is the art of designing templates for conversations that the chatbot is designed to have with its users. This is very much a part of the great user experience (UX) that we promise users along their journey with your organisation.

Conversation design includes templates for ideal conversations between the chatbot and its users. But that’s not enough, it needs to also tell the chatbot how to handle exceptions: what if the conversation derails due to some reason. Take a very simple future conversation between your chatbot and a user. Figure out all the points in the conversation where things can go in unexpected ways.

For instance, if the user seeks information (e.g. flights between a and b) and the database where this information is stored is not contactable. Another instance would be when the user’s request is ambiguous. Yet another would be, when the user misunderstands a chatbot response.

You are now beginning to realise the overwhelming number of non-ideal conversations that can happen between the chatbot and its users. How do we actually brainstorm all the possibilities at each point of the conversation? It may be technically possible to enumerate the paths that the chatbot might have to take (say due to database and other technical problems, etc) but to gauge the user’s possible responses at each step is definitely not a trivial task.

One way to address this problem would be to look at data of how users behaved and reacted in previous conversations and derive the best strategies from experience. However, does such data exist? Human-human conversations between users and live human operators/agents/advisors are not really well suited for this exercise as a human capability to understand the nuances of natural language conversation is much far ahead of chatbots.

To learn the rules of engagement from live human agents and to mimic it in chatbots is not easy. We may be ok to consider a subset of that conversation, but even to separate the simple mimic-able exchanges from the rest is a difficult task. To gather data, we therefore need to dumb down a human operator to the level of a chatbot and make them have conversations with users. Such data, by implication, cannot come from the past. Its in the future.

Another way of doing this would be to build a chatbot with the expertise we have got and have them chat with users. By doing this we can collect data and have a look at where the chatbot has failed to do a great job. This will lead to iterative improvements in the chatbot’s conversational capability. However, the risk is that you will disappoint a lot of early users with a chatbot with mediocre conversational strategies.

Therefore the paradox is:

We need data to learn great conversational strategies. But to generate such data we need to build a chatbot with great conversational strategies.

The question is, how we get past this paradox to create great conversational experiences to chatbot users?! Please do share your valuable thoughts below. 🙂

Try my new book on Chatbots and Conversational User Interfaces Development!

Users’ guide to Chatbotics!

There are at least four questions that consumers should learn to ask about chatbots. They should also have a fair idea of what to expect in response to those questions. And this precisely is the purpose of this article.

(First posted in Apr 2017 on Chatbots Journal)

Well, its been an year since Mark Zukerberg famously announced the coming of chatbots on Facebook! One year hence, chatbots are still not commonplace. In the year 2009, the phrase ‘there is an app for that’ caught on and next year, ‘App’ was voted the word of the year. How long do we have to wait until the same happens for ‘chatbot’?

There are dozens of articles writing Chatbots off already. I think, we are probably over-reacting. We need to give the tech some more time to mature. With more consumers interacting with chatbots, designers and developers are working hard to improve the technology. This will eventually result in chatbots that consumers will find easy and interesting to use.

Parallely though, there is a huge need to educate consumers about what chatbots actually are. Why? Because most criticisms are due to the mismatch between consumer expectation on chatbots and what was eventually delivered to them.

At the fundamental level, Chatbots are computer programs that have a conversational style of interaction. But they do have many other features that are not common to all chatbots. Some do learn to become better overtime. Some do understand natural language. But not everyone of them do. Such discrepancies in description cause mismatched expectations which then goes on to cause frustration in consumers who start to use chatbots.

There are at least four questions that consumers should learn to ask about chatbots. They should also have a fair idea of what to expect in response to those questions. And this precisely is the purpose of this article.

1. Where do I find your chatbot?

When a brand introduces its new chatbot to you, you need to know where to find it. What does that even mean? Imagine I told you, I have built an app. What would you say? You’d ask me in return if it is available on Android or AppStore. Wouldn’t you? You have a very good idea of where to find apps. Don’t you? But where do you find chatbots?

Most chatbots reside on a messaging platform. Unline apps, chatbots need not be downloaded. There may be exceptions where a chatbot is embedded within an app, which means you need to download the app in order to talk to the chatbot. Another exception would be that it is embedded in a website, so you could access it on the website using a web browser.

Where is the chatbot?

Messaging platforms are platforms such as Facebook Messenger, Whatsapp, Skype, etc that allow us to chat with our friends and family. Many messaging platforms now host chatbots. So if your chatbot is available on one of them, say Facebook Messenger, you could open the FB Messenger app on your mobile phone and search for it. And when you find the chatbot you are looking for, click on it and say ‘hi’. This is how you get started.

Messaging apps on smartphones (many host chatbots)

FB Messenger is one of the popular platforms for chatbots. Other platforms where you can find them are Skype, Telegram, Kik, WeChat, Slack, etc. Most of these platforms can be accessed using their apps or websites. For instance, FB Messenger is accessible via mobile apps (Android, iOS, etc) as well as its own dedicated website. So, once you have the app on your phone or visit the website, you can access all the chatbots that are available on the platform.

Voice chatbots are also becoming popular. These are available on platforms like Amazon Echo and Google Home. On these platforms, chatbots become skills. 🙂 For instance, Uber’s chatbot (or skill) on Amazon Echo can be accessed by saying, “Alexa ask Uber for a ride”. What happens here is your first invoke Alexa, the assistant residing within Echo and then activate the skill by saying ‘ask Uber’ and finally the natural language command for the skill (‘for a ride’). But to use a skill, you need to enable the required skill on Alexa. You can do this on the Alexa app or by visiting the Alexa skills store.

2. How do I interact with the chatbot?

Once you know where to find them, you need to know how to interact with them. Some chatbots are designed to understand natural language, and others use plain old buttons. Some chatbots use both. In some chatbots, you can type in natural language text and get nothing but ‘Sorry I did not understand’ in return for even the simplest of phrases like ‘hi’, ‘yes’, ‘thanks’, etc. This is because they are simply not designed to deal with natural language. Knowing how to interact with a chatbot can reduce frustration.

Use buttons when they are available. Buttons are used to prime the user with available choices and facilitate seamless navigation through the conversation. The conversational capability of such chatbots may be limited. In most cases, your response must be made using buttons only. For some responses, like when asked for your name or address, you could type in text.

Many platforms still do not allow for button based responses. In such platforms, you will be expected to interact with the chatbot using text messages. Some of them offer a way to do it in a controlled fashion (e.g. numbered options) whereas others allow for free text input.

YourMD chatbot interacts using numbered options

While typing in free text, keep your text message simple and easy to understand. Use fewer words. Simple sentences. Common place words.

Hi Poncho bot responding to text input

Another interesting side question to ask is if the chabot will understand GIF, emojis and images. We do use emojis, emoticons, images, memes, GIFs and so on to express our emotions in a funny way when we chat with our friends and family. Can we still use them with a chatbot? Will the chatbot understand those messages? Even when the chatbot uses GIFs and other media types itself to express its emotions, it may not be able to understand them when they go the other way around. Beware!!

HiPoncho trying to figure out a GIF I sent!

3. What can the chatbot do?

Once you know where to find them, you need to know what they can do and cannot do. Chatbot is a computer program designed and developed for a specific purpose. As long as you understand the purpose of the chatbot and keep your conversation within that boundary, you could get a great experience!! Knowing what a chatbot is designed to do is important as it allows you to progress beyond the welcome message.

For instance, both Dominos and PizzaHut, have chatbots on FB Messenger to take food orders from customers. As long as you let the bots take the lead and order food, all is good. Although this is not what you would want, this is the current state of chatbots. Chatbots that can deal with clarifications, side chatter, smart conversation, etc are yet to come.

Unlike apps, chatbots do not have the visual elements to make their capabilities explicit. A well designed chatbot would introduce its capabilities in its welcome message so as to set the right expectations. And probably get you started with some buttons in the welcome message.

If the chatbot does not welcome you with a message, you could try starting the conversation with a ‘hi’ or ‘hello’ message. Most chatbots are designed to handle these greeting phrases and in return, they will introduce themselves and their purpose.

Dominos Pizza Bot responding to ‘hi’

Type ‘help’ if you need help. Most bots respond to request for help when you are stuck.

Dinner Ideas chatbot responding to ‘help’

4. Does it have a persona?

Finally, does the chatbot have a persona? By persona, I mean, having a name, a visual identity, personality traits and possibly a back story as well. Such chatbots could be entertaining to talk to as you could ask stuff like its name, age, gender, its favourite food, movie, etc. It would be able to answer some these questions with an interesting answer or two. Other chatbots that mean serious business, will stick to what their primary tasks are and will not really respond well when you ask them for a joke or a limerick.

Well, thats it guys! Four questions that you need answers to get started with any chatbot. Why don’t you have a go at the following chatbots and figure out answers to the above questions. 🙂

Well, thats it guys! Four questions that you need answers to get started with any chatbot. Why don’t you have a go at the following chatbots and figure out answers to the above questions. 🙂






Please do share comments on your experience with chatbots below. 🙂

Try my new book on Chatbots and Conversational User Interfaces Development!