Title: Designing Bots
Author Amir Shevat
Publisher: O’Reilly Media
Published: May 2017
Pages: 328
ISBN: 1491974826
Rating: 🌕🌕🌕🌕🌖

Chatbots are probably the cutest possible tech application! As soon I learned enough Python, I tried to build my own artificial friend with which to do small talk in the terminal. I had a lot of fun programming it, so later on I started building chatbots with Rasa and DialogFlow for customer service and student support. But a good chatbot represents more than just a set of hard-coded lines of dialogue.

In my search for resources, I found the book Designing Bots by Amir Shevat, director of developer relations at Slack and pioneer in the field of consumer chatbots. His book focuses on the design (not development!) of conversational user interfaces, but also covers distribution, marketing, architecture, and monetization. These broad topics make it useful for developers, designers, product managers, and entrepreneurs alike.

The book is well-organized in four main parts:

  • Overview of bot platforms (Slack, Facebook Messenger, Alexa, and Kik) and types of bots (personal vs. team, super vs. domain-specific, business vs. consumer, voice vs. text).
  • Theory about use cases (notifications, productivity, commerce, customer service), conversational design (stories, branding, personality), promotion, and monetization of bots.
  • Practical implementation of two examples: a consumer bot on Facebook Messenger and a business bot on Slack.
  • Outlook on the future of conversational AI and market trends.

The part I enjoyed most was Chapter 6, about Branding, Personality, and Human Involvement. Branding refers to how users perceive your product, so it’s important to design a coherent and cohesive image of your bot, reflecting the values and culture of your business. Branding includes the name of the bot, its logo, the language it uses, and even how it handles ambiguous or difficult conversations. All in all, it has its own personality and there are seven aspects to consider when designing a bot personality:

  • environment (work vs. consumer)
  • audience (age, interests, location)
  • tasks (shopping, information, help)
  • runtime variations (inclusion of jokes)
  • locally relevant social acceptance (cultural differences in language)
  • existing branding (match the company brand)
  • values (reflect the company’s values)

I hadn’t realized how complex bot design can be and how much work goes into creating a performant and likeable chatbot. Overall, I found the information provided in this book interesting and helpful, and recommend it to anyone interested in chatbot design. Now, I look forward to developing my chatbot with this new knowledge in mind!