1. 程式人生 > >Why most chatbots suck and how to build bots that bring value™

Why most chatbots suck and how to build bots that bring value™

Why most chatbots suck and how to build bots that bring value™

Conversational design seems to be way ahead of actual implementation. What can you do to fix this?

When you open Chatfuel, Manychat or other advanced bot building platform for the first time, it’s easy to get that sense of “designer euphoria”. Everything seems to be so easy! You make a dozen of mouse clicks, and in a couple of minutes fresh new

chatbot is ready to answer questions and talk to your audience. But things tend to complicate rapidly when real users start real conversations, and soon you may feel sorely disappointed with the outcome of these chats.

“Look, there’s a dead end here. We need to add some quick replies”. “Oh, that intent seems to interfere with this one. Let’s change utterings”. “Damn, how am I supposed to go to ordering part while I’m in the FAQ?” Just clap and share on the left if you recognize your bot development process here. Quite soon you realize that your actual business goals fade away and most of the time you’re working on buttons, utterings and integrations instead.

Top 3 Most Popular Bot Design Articles:

Implementation gap

There definitely seems to be a gap between conversational design and actual implementation of that design in program code or in bot building blocks. The reason is that people who are good at conversations usually are not so good in programming, and vice versa. And building a chatbot that will bring real value to end users require a bit more than plain conversational design. You have integrations, e-commerce, databases, CRMs and CMSs, NLU services and many many more.

It’s good to have a team of first-class developers, great project manager to facilitate communication between this team and you, and tons of budget to pay for their work. But what if you are a single player or a small team?

Quick hint #2: start with conversation flow. Actual implementation will follow.

Designing the conversation

Many chatbot developers start with the wrong intent. “We need chatbot to get more sales in our online store” — and you start putting your products into bot and designing checkout procedures. It doesn’t work.

Start with a clean sheet of paper and try to de-compose your bot into a set of small independent skills that will accomplish certain small tasks and do nothing more. Remember that each skill should do something useful for your end user. Ideally, each of those skills should be absolutely independent from others. A great rule of thumb is to have skills that are no longer than a couple of interactions with user. List those skills, assigning priorities to each.

Here’s an example list of skills for e-commerce store chatbot:

  1. Welcome users and tell what the bot can do.
  2. Show products that are in specific category.
  3. Show products that match certain search criteria.
  4. Display information about chosen product.
  5. Track order by order ID or user email.
  6. Add product to cart.
  7. Edit cart.
  8. Make checkout and accept payment.
  9. Answer FAQs (delivery, returns, product details etc).
  10. Get help from live support agent.
  11. Entertain user with a joke.
  12. Re-engage users that did not make any purchases recently.
  13. Upsell users that have paid for their order.
  14. Remind users about abandoned carts.
  15. Deliver discount coupons.
  16. Deliver store news (new arrivals, sales etc).
Quick hint #3: keep in mind that each of these skills should focus on bringing some value to the user. This ensures customer satisfaction.

Building flow scenarios

Now you should have a list of building blocks for your chatbot. Time to start actual development? Not yet!

Get another sheet of paper and try to imagine different scenarios of user interaction with your bot. Don’t worry — you definitely will not be able to come up with every possible scenario, but you will have a great starting point. Draw this interactions as lines connecting various skills.

What is the reason for doing this? It will help you think of something that we at Activechat.ai call events. Events help you connect the dots in your scenarios. Events trigger skills when it is necessary for the right interaction. Did user said something that was recognized as NLP intent? That’s an event! Did your API received payment update for specific order ID? That’s an event too! Did user changed her mind in the middle of the checkout process? Yet another event is coming.

Note that events can be triggered not only by user actions, but also by internal logic within the bot. Timer detected 3 hours since the order was placed? That’s an event — it’s time to send payment reminder. Is total amount of user orders greater than $200? That’s an event again — time to send discount coupon to that user. You get the idea.

Quick hint #4: try to have only one event as trigger in each intent.

Build and deploy!

Now it should be easy to start building the actual chatbot. Take three or four skills that have the highest priority, and implement it in actual code or bot building platform (activechat.ai is good for this). Connect the dots with events and launch the bot for some real life user testing. Keep adding skills and modifying scenarios based on user interactions, but always keep in mind that none of your skills should be larger than a dozen of bot blocks. This ensures that your bot will still be manageable even after months and months of updates.

Let’s change the botscape with bots that bring value™ together.

Does this approach make any sense? Try it today and share your opinion in the comments. And if it does — please share this with other bot builders!