To Bot or Not to Bot

It’s not about the Bot, it is about a Great Service.

Everyone is talking Bots these days, and they stress good points — new affordance, lots of opportunities for distribution and discovery, and exciting new possibilities to deliver services to users!

While I am happy with people’s excitement with this trend, I also want to stress that bots are a means to an end, and that end is a great product or service to the end user. Done wrong, bots could be as useful as blinking text in old websites — a gimmick that no one remembers. There are also other means to provide great services, even over a chat interface, that are not necessarily bots.


  • Bots are only one of several UX features in conversational interfaces
  • Bots are a great hammer, but not everything is a nail
  • Bots are only as wonderful as the service they expose
  • Like all interfaces — exposing your service with a bot will not make it awesome, unless it is already awesome.

Lets define a bot for this conversation

Bots are digital users within a messaging product. Bots, unlike most users, are powered by software rather than by a human — Bots bring a product or service into a given messaging product via the conversational interface.

There are other, extremely effective features within messaging products that are not bots that can be just as, or more, useful than a bot user. On Slack we have a few ways you can build an app into Slack that don’t require a bot user but can be equally or even more powerful than a bot user:

  • Notifications: Post messages into channel/thread/group — In Slack we call these Incoming Webhooks and they are great for a one directional information flow.
  • Slash Commands: Run a command-line style query or task execution from within the conversational interface — in Slack we call these Slash commands and they are great for simple tasks and queries.
  • Interactive Messages: Buttons in chat messages that let you perform inline actions — check out our roadmap for more info on when this is coming to Slack.

It is all about the service

OK, so the first thing we need to ask ourselves is this — What product/service do I want to build? Then ask yourself - What is the optimal way to expose this service?

It might sound silly, but many product managers and developers are so excited about bots that they try to “fit a square bot in a round hole”.

Here are some examples where you might not need to build a bot:

  • News notifications
  • Alerts (social alerts for example)
  • Simple single line task or queries

All of these services can be provided with simple conversational interfaces such as posting messages and slash commands. There is no need for NLP, no complex conversational scripting, and no conversational back-and-forth.

Simple notification do not require bots

To date, the majority of our integrations are not implemented via bots.

When are bots useful?

Bots are useful in cases where it is easier, and more productive, to provide the service via a conversation with this software-based user.

Examples for services that might be exposed as bots include

  • Support and help-desk
  • Hiring and recruiting
  • Personal assistant and team coordination

As you can see, these are very different types of services. These services are more complex and you can see that these services might be “outsourced” to bots.

Bots are useful in cases where the service would be best exposed by talking to someone, or by someone talking to others — a support representative, an assistant, a sales rep, a coordinator and so forth. In these cases bots can automate (some) of these conversations. A Bot can also serve as a the front-line or a liaison between the user and the human service provide, check out the Xprt app on Slack as an example for that.

Bot can automate complex tasks

Bots are also useful in keeping context in a conversation - when a user talks to a bot, we can infer context and that can help deliver the service faster and simpler.

A way to test if you need a bot to provide your service.

Very similar to wizard of oz prototyping in design, a simple way to test if your service is best exposed as a bot is to actually try to turn it into a conversation with an imaginary assistant. Imagine you are a VP in an important company (I hope you all are) and can source anyone at any time. Now ask yourself — would I want to get this service by talking to someone. If the answer is YES, you might have a great service that might be exposed via a bot.

Can you botsource your service?

Think of this interface as an evolution of outsourcing tasks, processes, and workforce. What can you botsource?

The right tool for the right task

Bots are an exciting new interface that is a great way to expose some services to users, while others can be exposed via other, more traditional means.

The key point is that bots should be a new interface to an already existing vital & well-designed service, or a new well devised, useful service that is exposed by bots. In any case, you should strive to build a great and useful service and then decide how to expose it in a conversational interface.

If done right, bots can make our lives more pleasant and more productive.