How Gratify manages user conversations

Building conversational management infrastructure for our team using Dashbot, Asana and Slack

James Diecidue
Slack Platform Blog
6 min readApr 25, 2018

--

One of our favorite affordances of conversational UI is the opportunity to provide great user support directly through the interface. Gone are the days of separate ticketing systems and email threads with your users — with conversational UI, your support and sales teams can be integrated directly into the user experience of the product!

Gratify allows anyone to post tasks and work with real freelancers from their own Slack workplace. Because our service is a powered by both AI and humans, we are constantly reviewing users’ conversations with our bot to assure a good customer experience. As we’ve grown, we’ve discovered that managing a number of conversations for quality is difficult.

How do chatbot teams manage user conversations? This was a new problem. After months of iteration, our team built a solution that utilizes three of our favorite tools (Dashbot, Asana and Slack) to create a highly organized and actionable conversation management system.

From notification to action, our conversation management infrastructure takes advantage of outside tools to create a dependable internal support process. This was our secret sauce, but any chatbot company can apply it to their own workflows. Below is how we built our conversation management system at Gratify:

First, we have a bot notify a private Slack channel when a new user starts a conversation with our chatbot.

Gratify is both an external-facing chatbot and an internal notification tool for our team.

Next, our bot creates an Asana ticket for the conversation thread.

We use Asana’s API to automatically create tickets from our bot.

Finally, the Asana ticket contains links to Dashbot’s ‘live transcripts’ product, which allows our support operators to send messages to the user as the bot.

Dashbot’s ‘live transcripts’ allows our team to respond to the user as our chatbot.

When additional notes are needed, our team can add information to the Asana ticket.

In our case, outstanding conversations are unsolved tickets.

The result has been awesome. It has helped our team (which is 100% remote) communicate and respond to user issues quickly and efficiently. Are you running a chatbot and want to build something similar? I’ll explain each ingredient to our sauce.

A Slack channel for triage

If you’re running a chatbot, your team should have a Slack channel. Why? When new leads and issues come through your funnels, you need to be able to effectively communicate with the rest of your internal team.

Outside of in-person communication, Slack is the easiest way to communicate situations and cases that needs to persist (and be found again later). We were already using Slack in our team, but we also wanted our sales/support funnel to feed into Slack.

A notification funnel

To provide support, sales, and mediation, we funnel our conversation notifications into a private channel. We have specified event types and keywords that have more or less significance to our team, and then tag each notification as such. When a user messages our bot, it appears in our notification funnel and alerts our team of pertinent information like username, team name, and conversation details.

Our bot notifies a private Slack channel when a conversation with the chatbot begins.

We mentioned previously that Gratify is a combination of both AI and humans. “Support operators” are what we dub the human side of our service. These individuals consist of our core team members who comb and reply to user transcripts with Gratify (they can only see transcripts where Gratify is invited into the channel or directly messaged). Operators can reply as the bot to support use cases which are more open-ended, like price-change requests, disputes, accountability, and other issues that our freelancers and clients run into. Our channel notifications contain a button to clearly mark the conversation status to all of our support operators. Since our team is distributed, this helps avoid internal work duplication and eases communication.

We only have two statuses for our notifications. Reviewed or spam. “Reviewed” indicates that a support operator has taken on the conversation and handled it if necessary. “Spam” is used to let other operators know that the conversation is likely spam (especially useful if your bot is installed in a cryptocurrency Slack channel) and will prevent notifications from that conversation in the future.

A ticket for each conversation

After a few weeks with our spankin’ new notification system, the team found it hard to keep track of all the active conversations. We decided to use Asana to log and track individual conversation threads — and this has been a total game changer!

Tickets automatically open on Asana when conversation events are triggered.

As part of our conversation management initiative, we coded Gratify to create an Asana ticket anytime a user starts a conversation with our app. This process tags and populates conversation information for our team to handle the ticket appropriately.

Using Asana, our support operators can keep better track of user journeys through comments and ticket assignments. Whenever a user sends another message to Gratify, that ticket will be updated accordingly, referencing all of the previous comments and cases pertaining to that thread.

A live takeover solution

The ability to provide customer service through our bot-powered service is critical. We have established notifications (via Slack) and a ticketing solution (via Asana) to manage many conversations at once, but how do we jump into these conversations and help guide a successful user interaction?

For this, we rely on Dashbot: a bot analytics service. Dashbot has its own logging, transcripts, and analytics, but the one feature we cannot live without is the ability to jump into conversations with live human takeover!

Live transcripts with Dashbot.

In our Asana tickets, we include a link to Dashbot which references a user’s live transcript. Once one of our support operators click that link, they are redirected to the user’s conversation within Dashbot. Our support operators can insert messages into the bot’s conversation with the user as needed, and once the situation is resolved, they mark the associated Asana ticket complete to close the loop!

“Do what you do best, outsource the rest”

Over the past few months, our team has been using this solution with success. It has greatly improved our ability to provide sales and support to our users in a timely fashion, while increasing internal transparency amongst the rest of the team. We’re firm believers in “do what you do best, outsource the rest,” and our conversation management infrastructure embraces that phrase.

Slack, Asana, and Dashbot have iterated into their respective niches of shared knowledge, task management, and conversation analytics. Tying these tools together to create a conversation management infrastructure for our team introduces new organizational dependencies; however, it also ensures we are using the best technology for each area, while allowing us to rapidly develop solutions for our workflows with much less overhead than drafting a completely custom solution.

You can try Gratify today

We built Gratify to “outsource the rest” and create a better way to work with freelancers in Slack. If you aren’t yet a member and would like to give it a try, you can add Gratify to Slack here. Thanks for reading!

--

--

James Diecidue
Slack Platform Blog

Co-Founder @ Gratify, Getwell. Music producer. PSU Graduate.