Human-in-the-loop with Operator

When I joined Growbot a month ago, I was immediately taken by one of our features: Operator. It’s an extremely simple mechanism by which a user can reach any member of our team by typing “operator” into a direct message with our bot.

Why did this matter so much to me?

First off, it’s an elegant solution to a weird problem: we’re building a company based on the idea that the future of work is Slack. If we wanted our first line of support to be a web-based tool, or Twitter, we’d essentially be asking our users to leave the environment where they’re the most productive. That runs counter to a huge part of our mission.

Next, it’s an incredibly human move in an industry that’s continuously moving towards the automated. Growbot’s expertise is recognition, and it won’t engage with people unless props or recaps are being posted — it’s not a bot that you’re going to have a long and meaningful conversation with (yet?). But with a simple command, you have access to a living person on the other side of the Slack window. The first time I used it myself, I found it to be an absolutely delightful experience.

People don’t just use Operator for support, either. We’ve had people ask us anything from about job openings, to folks just popping in to say “Hi!” or to tell us that they love the product. Some seem genuinely amazed that they’ve reached a person, which I always love.

Dashbot overriding a Messenger conversation in progress

I know we’re not the only ones doing this, of course: Dashbot.io offers a tool in their SDK for bot creators to “pause” their bot, mid-conversation, to allow the human to jump in and take control. Called Live Person Takeover Integration, it stops the bot’s normal processes, like responding to commands, during the time the person is “in the loop,” so to speak (same as Operator). In fact, Dennis from Dashbot is the person to first use the phrase “human-in-the-loop” with me in this context, and I think it’s a perfect description.

A key defining factor, at least to me, is that the bot should always alert the user when a person takes control of the conversation; otherwise, my concern is that it would be disingenuous (and worse, creepy). Thankfully, Operator lets you know when one of us is in the Slack channel with you (and currently, it’s only available via DM, and not in public or private channels).

Growbot alerting the user (me) that the Operator (also, me) has entered the conversation

I was initially concerned that this system wouldn’t scale with our growth; I assumed more users would mean many more Operator requests. Since we’re only five people right now, that kind of influx would be unmanageable. Fortunately, the data doesn’t show this to be the case. Fingers crossed that this means we’re doing a good job of explaining how to use Growbot, and not that we need to do a better job of showcasing Operator!

Operator requests over a year period (featured in Slack app store in Dec)

Also on our end, we don’t currently have a solution for assigning Operator requests to our team members: the request messages stream into one channel of our Slack, and we pick them up based on when they came in and who happens to be around.

Answering an Operator call from within our #customer-support channel

Being able to distribute the requests to individual team member DMs is one solution I’ve been thinking about, which would solve some of that problem without also taking us out of Slack and into a tool like Zendesk (for example). We want to stay productive in Slack, too!

I think many people have this assumption that bots are here to completely replace the human element, but these things are never a zero-sum game: we’ve created bots to make aspects of our lives easier, and sometimes that means a faster and more convenient way to connect with another person.

Follow us on Twitter for more updates! And goodies :)