Collaboration
slack on slack

How we use our software to support our customers

A deep dive into the channels, workflows and integrations our Customer Experience team relies on day in and day out

By the team at SlackAugust 4th, 2023Illustration by Pete Ryan

If you’ve ever reached out to Slack with questions about how the app works, whether formally through a ticket or even just a spur-of-the-moment thought on Twitter, then you’re familiar with our Customer Experience (CE) team. CE works through thousands of help tickets each week. Add to that answering hundreds of tweets every day, with peak activity in the thousands per hour during our busiest moments. They also look after the hundreds of pages in our help center.

Making sure Slack customers get the help they need when and where they need it takes a small village—these days, there are roughly 200 people on the CE team. So how do they coordinate everyone’s efforts and tackle problems together? That starts with Slack, of course.

Creating distinct support workflows with channels

Channels are the key organizing principle for all of our teams at Slack. CE relies on channels to share announcements, resolve urgent matters and coordinate responses to customers in need—all the daily tasks required of a support agent role.

#announce-ce: the one-stop shop for support news and notes

Every week starts with a well-formatted message from the director in #announce-ce. It lists:

  • Recent team news and changes
  • A schedule for open office hours
  • Training opportunities
  • And any new job openings the team can share with others.

At the end of each week, there’s an analytics report shared in the channel that includes metrics for how many tickets were processed and how that number compared with previous weeks, along with progress on quarterly goals. And when new folks join the team, their manager shares a short bio here to help everyone get to know them.

#ce-incidents: communication around fixes

Whenever customers are experiencing a major or widespread issue, it’s rated, logged, and posted to #ce-incidents, where everyone on the team can track it. A dedicated channel is spun up for every new incident, linked to from the #ce-incidents post. When incidents get the all-clear, that’s posted back to #ce-incidents as well.

#triage-: a dedicated home for troubleshooting

At Slack we use a series of #triage- channels to deal with bugs, outages or questions organized around topics. For example, we use #triage-ios for issues that crop up in Apple’s mobile operating system, while #triage-localization is where anyone can report language bugs or a misunderstood phrase to our team of translators.

These channels are where CE agents go to report bugs or ask for help from subject-matter experts when they’ve exhausted all other options. Say there’s a bug with how the Slack app works with the latest version of iOS. An agent can drop a request in #triage-ios to report it and discuss and replicate the issue with our iOS engineers, who will help determine a fix. Meanwhile, the agent can update the customer all along the way.

#plz-: where to get cross-functional help

When support agents notice a gap in our documentation that is leading to customer confusion, they can propose a new article for our help center to solve the problem. That process begins in one of our “please” channels. In this case, they would use #plz-help-center to post a request for a new article, along with proposed text and the reasoning behind it. The help center team can immediately respond and add those ideas to their queue, eventually turning that request into additional documentation that resolves confusion for customers.

We have about two dozen additional request channels, all limited in scope by a topic that follows the #plz- channel naming convention.

Setting response expectations with emoji

We use a colored dot emoji at the start of requests and reports to help set expectations by both the agents writing those posts as well as others trying to help solve problems.

  • ⚪️ Question, feedback or clarification. Not urgent.
  • 🔵 Not urgent. Needs a response within the day.
  • 🔴 Urgent. Needs a response asap.

Over in our #ce-incidents channel, we log every new incident with a custom app that asks you to fill out a form, and the results populate a message template with details on the issue. Once it’s posted, we use emoji to quickly assemble a team of support reps to help resolve issues on the fly. No need to ping folks individually to see who can step up or ask them what niche they fit into best. Instead, everyone sees the call for volunteers in the channel and can chip in if they’re free. Below is a screenshot of a recent temporary feature outage.

Slack CE Incident Bot

Minutes after the message was posted, seven volunteers clicked a reaction to mark themselves in the necessary roles and began to immediately help out.

Setting status and expectations with thoughtful channel topics

Channel topics not only help aid navigation—they’re scraped when you use channel search—but also provide important context. Here are a few examples from our CE team.

Slack channel topics
The channel topics serve as a quick guide to how the channel is used, along with who is currently “on duty” and who is backing them up (these are updated several times a day). There are tips on how to find more information if you’re stumbling into the channel for the first time, as well as how to use the colored emoji indicator system.

Integrating Zendesk with Slack to solve customer problems faster

Whenever you email feedback@slack.com, use the /feedback command in Slack, or click the Contact Us button in our help center, it becomes a ticket in our Zendesk system. CE agents label, categorize and filter these to expert sub-teams within our customer support organization.

Like Slack, Zendesk is a flexible platform that offers its own set of APIs. Our internal developer team has built a variety of custom tools to send information from Zendesk to Slack and back again as needed.

Turning tags in Zendesk into updates in Slack

We use tags extensively in Zendesk to help organize incoming tickets, and we’ve created ways for those to show up in topic-specific channels inside Slack. If you want to search every iOS beta bug reported through Zendesk, you can check #ios-dogfood-feedback (“dogfood” comes from “eating your own dog food,” the concept of always testing your own product). If you want to see every thumbs-up/down rating from customers after their tickets were closed, we have #zendesk-satisfaction for that as well. Managers of either the iOS beta team or those managing agents can browse these channels to see what kinds of tickets are coming in and how satisfied customers are with our service.

Getting tickets into expert hands

Anytime a Zendesk ticket is shared into our channels, there’s a preview of the ticket’s contents. This comes in handy when working with engineers to fix software bugs. Programmers might not have an account in Zendesk, but they can read the tickets and respond in Slack.

Zendesk support ticket shared in Slack

A custom vacation handoff app

One of our most interesting homebrewed Zendesk apps for Slack is the one we built for handoffs. Whenever you’re taking time off work on the CE team, you can launch our custom-made vacation app that not only lets you send off any remaining tickets attributed to you but auto-redirects any future tickets that come your way.

Once you’ve marked yourself unavailable, the app also posts to a channel that lists everyone on the CE team who has stepped away and used this app.

Slack Zendesk vacation bot

While skills like patience, empathy and understanding are key to helping others, functionality in Slack keeps our CE team organized and efficient. With a little forethought, your own customer support agents can take advantage of Slack to coordinate their efforts, get help and fixes from experts who build your product, and keep the team on task without letting tickets slip through the cracks.

Was this post useful?

0/600

Awesome!

Thanks so much for your feedback!

Got it!

Thanks for your feedback.

Oops! We're having trouble. Please try again later!