Supporting users with Intercom
Two years ago we added Intercom to our support toolbox. Intercom is a platform for communicating with your users.
We were providing live chat support through Olark and email support through HelpScout. Both are great tools in their own right, but we needed something to bring it all together.
Today, Intercom powers our support processes. I can’t imagine delivering support to our customers without it. One of it’s “not-so-obvious but very valuable” features is conversation tags.
It’s a feature that we struggled with. I’ve seen a few others mention it on a few Slack groups.
This article covers how to get the most out of your conversation tags
Importance of tagging
Tagging is how you’ll know what types of conversations your users are having with your team. You will analyze those conversations you tag to improve your product and your customer service.
Tagging conversations is easy.
It’s important to add structure though. Set some rules so your team doesn’t run wild creating hundreds of tags.
When we first implemented Intercom for support, we didn’t realize the importance of tags. I remember reviewing the tagging feature. I said “Oh this is great, we will definitely use it.”
Which brings us to my problem -
We were NOT using tagging with any consistency or set process.
Maybe we saw it as something that we wouldn’t get immediate value out of. It just wasn’t a priority. Looking back - that was a dumb move.
Eighteen months later, we closed over 10,000+ conversations. But we had diddly squat to show for it. 😢
With proper tagging - we could analyze the trends to find out answers to questions like: - what features were our customers struggling with most? - what articles should we write up in our knowledge base next? - did our guided setup service reduce issues with X?
Intercom released some new reports including conversation tags to help with analysis. But it’s difficult to get any real insight from them - beyond a count. That’s why we use Statbot. More on that later.
You could use their API to analyze those tags with your own tools. Most solutions involve syncing your conversations to a data warehouse. Then you would query the database for the data you’re after.
Creating your tag structure
Over three years, I’ve helped hundreds of clients implement our software. I’ve discovered the major issue with new tools and software is NOT learning how the tool works. Instead, the major issue is learning how your team should do their work within the tool.
I understood the concept of tagging and how to do it. But I was clueless about how to integrate tagging into our workflow.
So I did what any reasonable person does when they don’t have a clue. I Googled “Intercom tag structure”. I am still not sure why my wife calls me a nerd.
I found help in an article from Intercom and one from another SaaS company. I’ve included those articles at the very bottom of this one.
If you’re trying to figure out your tag structure, this might give you a leg up.
Here’s the tag structure I created and their explanations.
The user asked a question about a feature or using our app.
The user requires some deeper help or troubleshooting from someone on our team. Do not confuse this with the “bug” tag. Apply this tag if they need our help to get unstuck or complete a task but it is not a bug.
The user requests a feature that we don’t currently support.
The user reported an issue that has been tested and verified as a bug.
The user has a duplicate conversation open. Continue the thread there and apply this tag to the conversation you close. Do not apply the “resolved” tag.
The user only sends one or two “Hi” messages and drops off before you can get any more info. Do not apply the “resolved” tag.
The user said something good about our app or our team.
The user is angry or upset with shopVOX or our team.
Our primary tags describe the kinds of conversation our users have with our team.
Each conversation should get one primary tag. But there are cases where we apply more than one tag For example, we answer a user’s question and then they give us positive feedback.
The user’s question involves our pricing engine. Apply this tag for anything involved with materials, machine rates, labor rates, products, pricing templates, or POS Settings.
The user’s question involves the Workflow Templates, the Job Boards, or any of the PCS Settings.
The user’s question involves API, Zapier, Contact Form Integration, or any type of integration with other systems.
The user’s question or issue involves Quickbooks Online.
The user’s question or issue involves Quickbooks Desktop.
The user’s question or issue involves Xero.
Our secondary tags describe the topic or feature where the user has questions or issues.
The user gives confirmation that we’ve solved their question or issue. Apply this tag and close the conversation.
The closing tag serves two purposes.
We want to track how many conversations we confirmed as resolved. Closed conversations don’t always equal resolved issues.
Intercom allows your users to reopen old conversations by replying. Sometimes your users will start completely unrelated conversations in the same thread. The “resolved” tag serves as a place marker - anything above it means we already resolved those questions.
Print them out
It’s super helpful to have your team print out a one-sheet with all your tags listed and when to apply them. Our Support team taped this to their desk. Just having the tags in front of them while they were working through the queue help increase the uptake.
-> Here’s a cheat sheet I created for you.
Just go to File > Make a Copy to copy this into your own Google Drive account. Then add your own tags into the sheet, download a PDF, and share with your team.
Where to apply your tags
We apply the primary and secondary tags on that actual message contains the “meat” of the question or the issue. It can get tricky because there are longer emails and in-app messages all coming through the Support inbox. If there’s not a clear winner - we just make a judgement call.
Our team applies the closing tag “resolved” at the very end of the thread. We always try to close the loop with customers and get confirmation that they are all clear.
But not everyone responds once you’ve answered a question or solved an issue. We’re OK with that. We’ll follow up 2-3 times - asking the user “Did that solve your issue?” or “Are there any other questions we can answer?”. If we get nothing back - we’ll apply the “resolved” tag and close the conversation.
You usually encounter lots of small issues when implementing new tools or processes. Here’s one that I ran into.
Intercom doesn’t separate the tag list by conversations, users, or companies. If you’re using Intercom Engage - you’ll apply the user and company tags to create segments. You can use those segments and tags to send auto or manual messages to specific groups of users.
But when you’re tagging conversations - it is confusing to filter through list of user and company tags. @Intercom - if you’re out there - this would be a nice addition.
Tag list in-hand, I invited our Support team to a team training session via Zoom to unveil the new strategy. I spent 50% of the time explaining the importance and why we would be tagging. I spent the other 50% explaining what our tags were and how to apply them.
Problem solved - time time to pat myself on the back. Unfortunately, it’s never that easy. Old habits are hard to break.
Two months, in we were still only tagging about 67% of our conversations. That left a full 1/3 of user interactions untagged.
I brought up tagging in weekly meetings, Slack conversations, pretty much any chance I got. But the needle didn’t move.
Frustration set in.
But then I stumbled onto an article on the Intercom developer blog by Sorin Pantis titled Vigilante. Sorin describes how he created a bot that detected duplicate conversations for the Intercom support team. After reading that article - I thought up my solution.
Add a note to any conversations that were NOT tagged reminding our team to tag it.
I’m not a developer - so I couldn’t implement the code from the article. But I was about 99% sure I could get the job done with Zapier.
At the start of any project, it’s a good idea to poke holes in it to see where you’ll have any trouble.
I only saw one issue.
Imagine your boss standing over your shoulder nagging you to tag every conversation. Not cool, right?
Now imagine your boss remotely and automatically nagging you to tag every conversation. You’re going about your day and his face pops up with a note - “Hi Peter - um yeah - did you forget something?”
Yeah…that’s a even worse hell.
Insert Snoop Dogg
Like a lot of remote teams - we LIVE on Slack. If you’re at work - you’re on Slack. We send automatic notifications to Slack to keep the inbox clean and keep our team in sync.
A couple months ago, our Director of Sales created a notification that populates whenever we get a new signup for our service.
After a few iterations he landed on Snoop Dogg. Because really - who is cooler than Snoop Dogg?
When our Sales team closes a deal, Snoop shows up and starts dancing around for the whole company to see. It’s a huge morale boost and motivator for everyone.
I loved the idea and was immediately jealous that I hadn’t thought of it. I thought about how I could put Snoop to work. I discovered he was the answer to my nagging boss problem.
I would have Snoop remind our team to tag any conversations they missed. Making them laugh would turn the interaction into a positive one.
How to add Snoop Dogg to your team
Here’s the step by step breakdown on how I hired Snoop using Zapier.
First - I added him as a user on our Intercom account. I used a GMail hack that allows you to add a + to your email address. This trick gives you an unlimited number of email addresses.
Next I started a new Zap using the built-in Webhooks trigger. I used the Catch Hook option to get a URL where I could send my webhook.
On the Intercom Developer Hub - I pasted in my webhook URL and selected the “Conversation closed” notification.
With the webhook created, I then created a test conversation inside Intercom by logging into a dummy account on our software.
I closed the conversation so I could receive a test for my webhook.
Back in Zapier - the test was successful and I got my data.
The next step was to use the Intercom API to fetch all details on that conversation. I used the Webhooks built-in app - but this time using a GET action.
The URL was the Intercom Conversations API with a / followed by the from the first step in the Zap.
I applied the proper key value pairs in the Headers section - and grabbed my Access token from the Intercom Developer Hub.
If you are using the Webhooks action, instead of the actual Intercom Zapier app - add
Bearer in front of your actual token for authorization.
The third step in my Zap was a little trickier.
I added some logic using the Filter feature. I only wanted to bring Snoop off the bench when the conversation did NOT have any tags applied.
We receive spam and non-customer related email in our Intercom inbox. At the time, we would just close these out without applying a tag. It would be super annoying for to ping our team about these - so I added an additional condition that only adds a note if there a more than 3 parts to a conversation. Update Now I have a tag for these.
I also added conditions to filter out our sales team - so I didn’t pester them.
All these conditions were setup as “AND” conditions - meaning all them need to be true to continue.
The fourth and final step in the Zap - actually add the note to our conversation.
The Intercom app in Zapier doesn’t support this functionality just yet - so again I used the Webhooks action to POST directly to the Conversations API.
I added the
/replyto my URL from the second step.
I also added a few HTML tags to format my message.
I searched Giphy for the perfect Snoop GIF and included the url for it.
To make sure the Intercom API knew I was adding a note from Snoop, I looked up his
admin_id by visiting his profile page inside our Intercom app.
It was included at the end of the URL. And I added it to the value field for the key
Now, time to test what I’d built.
Here’s a sample of the final message that team members would see.
After a few tweaks - I turned the Zap live. It was time for a cold one!🍺
Analyzing the results
I had some doubts on whether this would work, but Snoop proved himself to be very effective member of the team.
The numbers speak for themselves.
Our team has been tagging conversations like crazy.
After a couple weeks of Snoop, we saw a reduction from 32.57% of conversation left untagged to just 11.83%. That’s a huge improvement for such a quick effort.
We analyze the trends from all the tags on a month by month basis to help us to find out where to focus next.
It’s best to block out some time to review the tags on a weekly or monthly basis - depending on your schedule.
I created a Google Sheet to track the tag data and other key metrics for our Support team.
It’s great for tracking month to month changes. On the long-term we look for a decrease in Bugs and User Issues. But we push new awesome stuff weekly and sometimes things get broken.
Adding notes to the cell in Google Sheets is a great way to add context for someone else who’s studying your reports. If you see a spike in “Bug” conversations during July - add a note that you released the first version of the Projects feature that month.
Our primary tags Dud, Duplicate, and Resolved are mainly for keeping counts on conversations.
The real gold is in the details
I use a separate Intercom reporting tool called Statbot to analyze our tags on a deeper level. It doesn’t provide all the details and reports I’d like to see. But it’s definitely a leg up on the standard Intercom reports right now.
My workflow for this is basic and definitely not so efficient. And that’s the reason I only do this once per month . The whole process takes a couple hours.
Here’s the outline -
Open up Statbot > Conversation Tags on one screen
Open a new Google Doc on the other screen
Sort tags by count for the last month
Click the Statbot link to open the conversations with that specific tag inside Intercom
Add a heading in Google Doc for the specific tag
Read through the conversations for each tag in Intercom for the last month looking for anything that sticks out to me.
If I notice an issue or request that comes up a couple times - I’ll add a subheading for it and then copy/paste the actual language (this is important) the user wrote.
Rinse and repeat for the different tags
Call me lazy - but I don’t take a ton of notes or code every conversation. I’m a firm believer that “the good shit sticks.”
The actual language part is important. You want to match your users’ language and words in your knowledge base.
The finished report ends up look something like this.
-> Here’s a Google Doc template you can use.
Just go to File > Make a Copy to get it into your Google Drive.
Taking action on the tags
None of this analysis is any good unless to act on the info.
The Question tag is source material for your FAQs on your knowledge base. I often take these questions verbatim and create short videos or quick write ups on them.
Conversations tagged User Issue shed light on where users get hung up. When you spot a trend it’s time to loop in your product team to remove the roadblock for your users.
You can’t always clear the path though. For example, we integrate with Quickbooks Online and Quickbooks Desktop. If the connection is not configured perfectly - the Quickbooks APIs reports different cryptic errors.
Object "5EED-1464989631" specified in the request cannot be found. QuickBooks error message: The name of the list element is already in use."
New users stare at them say “WTF?”. This is where a detailed troubleshooting guide comes in handy .
Once you figure out the solution, don’t stop there. Add it to your knowledge base. It doesn’t need to be perfect and it shouldn’t take you more than 10 min.
-> Here’s an example our Quickbooks Desktop Troubleshooting guide.
I carefully look at all the Negative feedback tags to discover what we can do better - in our process, our training, our documentation. Sometimes there are real issues to address. Other times a user just vents because they aren’t happy with the “right answer”.
With remote teams there’s a different feedback loop than a co-located team. So Positive feedback gets shared with our team in a company wide Slack channel. Give praise whenever there’s an opportunity - however small.
Wrap it up sir
Whew - you made it to end here. Nice job!
I hate an ending that falls flat, so let’s discuss takeaways.
For those implementing Intercom for supporting your customers
Just do it.
It’s a great platform and I highly recommend it.
For those working on tagging inside Intercom or other help desk
Begin with the end in mind.
That’s a bit cryptic eh? But don’t just blindly use the tags listed here or the tags that Intercom uses. Sometimes we end up tracking metrics we don’t use - simply because it “seems like a good metric to track”. I’m definitely guilty of that.
Picture your end report and work backwards.
If the goal is to improve the product to better solve the XYZ problem, then what data do you need to understand how to solve it?
Use that to create your tag structure and your process surrounding it.
From the Snoop Dogg Experiment
Context is everything.
A simple solution right inside the team’s daily workflow proved more effective than the management “hammer” of trainings, emails, and Slack messages.
Further reading and resources
Here’s a few articles and docs that I found helpful in the process of implementing Intercom and tagging.