How to track customer journeys in Slack

← back to the blog

At MailClark, we’re dedicated to helping people focus on the work and communication that matters. To do this, we help customers centralize their work and knowledge in one place.

It’s why we’ve built two-way syncs between external accounts (e.g. email, Facebook, Twitter) and Slack. And why we’ve invested in a seamless Google OAuth experience to connect Gmail accounts and Slack.

In order to build a better product, we turn to customer behavior and conversations as sources of truth. The problem that most teams face is all of their information is fragmented, making it difficult to see product behavior, bot interactions, and human conversations in one place. And the information is often incomplete.

Our solution was to use Slack’s API and webhooks to store and track each customer’s journey inside dedicated, shared channels per customer and per plan type (e.g. free, paid, enterprise).

The outcome? Our team can now:

  • Triage customers based on which plan they’re on to prioritize the team’s work.
  • Filter customers based on product activity, billing events, and survey responses. This allows our team to be more proactive when it comes to plan upgrades and downgrades.
  • Easily jump in when a customer’s request is better handled by a human, than a bot.
  • Pull in product experts on more complex questions and share feedback with the team.
  • Prioritize product updates by actual customer behavior.
  • Tailor customer communication to the customer’s favorite features and behaviors.

But there’s no point in adding more information if it’s not easy making sense of it, especially if you want teammates to trust and refer to your customer journeys regularly.

Here’s how we architected our customer journeys in Slack:

Keep communication types separate.

You don’t need to force all information into the same Slack workspace, the important thing is to get information centralized inside Slack itself. People will already love you because they won’t have to jump from platform to platform anymore.

But you do need to set boundaries around different types of communication and accounts. The easiest way to do this is to use MailClark to connect external accounts (email, Facebook, Twitter), and flow external communication through dedicated Slack workspaces and channels.

Example #1: External vs. Internal Communication

Workspace for external communication

Create a new Slack workspace for all external communication. By doing this one thing, you’ve created a workspace with a clearly defined purpose, your team can quickly gauge how much time they need to spend on customer support work, and the rest of the company can focus on internal projects (instead of individual customer rabbit holes).

The additional benefit is this new customer-dedicated workspace gives you the room to create exclusive subchannels for each customer. This is your first step to isolating and tracking each customer’s journey.

Example #2: Emails vs. Tweets vs. Facebook Messages

The flexibility and intent of our favorite social media networks and messaging platforms are different for a reason. But that doesn’t mean you should have to jump from platform to platform, especially painful if you spend most of your day in Slack.

MailClark takes the first step by connecting any and all of these accounts to Slack.

At MailClark, best practice is to organize emails in its own Slack channel, Twitter accounts in another channel, and so on. While you can choose to route all of these messages into one Slack channel, by keeping them separate your team can better manage the different types of external interactions.

Create functioning spaces for customers.

What if you could access customer information, engage with customers, and work hand-in-hand with a bot all in one place? It makes for a seamless and powerful experience for your customers – helping you tackle the #1 reason why customers churn (poor product and support experiences).

To create our space for customers, we created a custom bot that allows us to:

  1. Log and monitor all conversations and events between MailClark and our customers. This allows us to track every major account milestone (including moving from a free to a paid account, uninstalls, new subscriptions, etc).
  2. Hand off customer questions to a human when needed.
  3. Automatically create a dedicated channels for customers to communicate directly with MailClark.
  4. Pull CRM information directly into the client channel with a simple slash command. (Our command links to our custom CRM.)

Customer support channel

With a bot as your recordkeeper and gatekeeper, your team can focus on customer requests that need them the most. And your customers can stay at the center of each engagement, receiving help that’s both timely and thorough.


Being able to track all customer events and interactions (both bot and human) is powerful, but not enough on its own. The right boundaries, information architecture, and help from a custom bot will allow your team to leverage your mountain of customer data and transform them into insightful customer stories.