Intercom Analytics: How to build a dashboard for Customer Success

Customer Success is everywhere. It encompasses everything we do in our customer's lifetime and his interaction with our company. From sales and marketing to the moment the customer signups. From providing support to providing help and finally value.

One of the best definitions of customer success is from Lincoln Murphy:

“Customer success is when your customers achieve their desired outcome through their interactions with your company.” - Lincoln Murphy

Lincoln Murphy has helped 400+ SaaS companies accelerate their growth by optimizing the Customer Lifecycle. Naugh said...

Although you will find his articles all around the web, he usually writes here. You’ll find great stuff in there.

Customer success is also becoming so much important that the whole team must fully engage your customers. If I know that it is important how can I measure it?

“Customer success isn’t a lonely department. It should be engrained in every employee’s position. Work with your entire team to fully engage your customers and to add more value at every stage of the buyer’s journey.” - Shayla Price

Tracking Customer Success Metrics

How do we know if our Customer Success efforts are successful?

There are many different ways that companies track and measure customer success. They range from basic but important metrics to more advanced reports.

One of the most popular Customer Success tools is Intercom. In this post, we will see how we can build a dashboard to track our customer interactions at Intercom. More specifically the performance of our communication with customers.

In order to start with our Intercom analytics, we will need 3 main things.

Get it, Store it, View it 🚀

  1. Get our customer success data: The are SaaS tools for support, CRM, email marketing. All create data that are important for our cause! How can you get your data from so many touchpoints in no time and combine it with Intercom data? We will get there...
  2. Store our customer success data: Most of the SaaS tools today have from poor to really good analytics/reporting abilities. In addition, these reports are not build for all cases and all customers. In order to have the maximum flexibility, you need to store your own data and keep it sync with the latest info. What about our Intercom data? Difficult? Not that much as it sounds...
  3. Build our customer success dashboard populated with Intercom data.

Build it


Intercom Analytics: How to build a dashboard for Customer Success

Pull your Customer Success Data

We first need to connect and get our Intercom data. You may wait your team of devs to build the whole infrastructure for you out OR you can get it up and running in minutes on your own!. Blendo connects to popular SaaS tools and consistently will sync your data into databases like PostgreSQL, MS SQL or Amazon Redshift. Blendo will help us connect in seconds and start pulling our data from the SaaS tool we need. You will need only a few minutes to load your data from Intercom too.

Store your Customer Success Data

If you are thinking you can get everything in excel you are correct. But to achieve the maximum flexibility we will need to store our own data. But these data should always be available and in sync. Blendo will make sure to sync your customer success data with a database of our own choice. You will need to bring your own database, we will take care the rest. Your Intercom data will by sync-ed and available to you in minutes.

The Customer Success Dashboard

You are lucky :) We are able to choose ANY tool from a huge number of services that build custom dashboards or BI tools.

Key Takeaway: You can always download an excel and write google sheet scripts or bringing your own team on board. But if you manage to have only a database with all your customer success data then the options are many more!

Intercom Analytics: Tracking the performance of our communication with customers.

Conversations per day

One of the most important channels of interactions with our customers are our conversations with them. An important metric to uncover how engaged are your customers is the Conversations per Day.

How many new conversations were created in the last 7 days

SELECT date_trunc('day', created_at) AS date,  
       count(id) AS conversations
FROM conversations  
WHERE created_at > CURRENT_TIMESTAMP - interval '7 days'  
  AND conversation_message_author_type != 'admin'
GROUP BY 1  

...28 days

SELECT date_trunc('day', created_at) AS date,  
       count(id) AS conversations
FROM conversations  
WHERE created_at > CURRENT_TIMESTAMP - interval '28 days'  
  AND conversation_message_author_type != 'admin'
GROUP BY 1  

...90 days

SELECT date_trunc('day', created_at) AS date,  
       count(id) AS conversations
FROM conversations  
WHERE created_at > CURRENT_TIMESTAMP - interval '90 days'  
  AND conversation_message_author_type != 'admin'
GROUP BY 1  

Intercom Analytics: How many new conversations were created in the last 7 days

Intercom data give you even more. If you want to get it a step further why not to see in Which day of Week conversations were created (in the last 7/28 or 90 days)?

SELECT to_char(created_at, 'day')AS DAY,  
       count(id) AS conversations
FROM conversations  
WHERE created_at > CURRENT_TIMESTAMP - interval '28 days'  
  AND conversation_message_author_type != 'admin'
GROUP BY 1  

Which Hour of day conversations were created (in the last 7/28 or 90 days)?

SELECT extract('hour'  
               FROM created_at) AS hour,
       count(id) AS conversations
FROM conversations  
WHERE created_at > CURRENT_TIMESTAMP - interval '28 days'  
  AND conversation_message_author_type != 'admin'
GROUP BY 1  

Intercom Analytics:Which Hour of day conversations were created (in the last 7/28 or 90 days)?

OR How busy your team was for the same periods.

SELECT number_of_assignees AS customer_success_heroes,  
       count(number_of_assignees) AS Frequency,
       count(number_of_assignees) * 100. /
  (SELECT count(DISTINCT conversation_id)
   FROM conversations_parts
   WHERE author_type = 'admin') AS Percentage
FROM  
  (SELECT count(DISTINCT author_id) AS number_of_assignees,
                                       conversation_id
   FROM conversations_parts
   WHERE author_type = 'admin'
   GROUP BY conversation_id) assignees_nums
GROUP BY number_of_assignees  
ORDER BY count(number_of_assignees) DESC  

Intercom Analytics:Frequency of the Number of Support Employees Involved in Conversations

Intercom Analytics: Customer support inquiries


A lot of companies use Intercom as support platform too. We are one of them too. Here are some examples on what can you see out of Intercom data.

How many messages each of our customers has exchanged with our customer support?

SELECT name,  
       count(conversations.id) AS total_messages
FROM conversations  
INNER JOIN users ON (conversations.user_id = users.id)  
GROUP BY name  
ORDER BY total_messages DESC  

How many open assigned conversations in total has each one of our customer support heroes?

SELECT DISTINCT name AS customer_success_hero,  
                count(DISTINCT msgs.id)
FROM  
  (SELECT assignee_id,
          id
   FROM conversations
   WHERE OPEN = TRUE) msgs
INNER JOIN admins ON (msgs.assignee_id = admins.id)  
GROUP BY name  

Intercom Analytics:How many open assigned conversations in total has each one of our customer support heroes?

Go here if you want to see more questions you may ask your Intercom data.

Key Takeaway: Intercom and similar customer success tools offer imense value for your commmunication with any customer. If you have the data then you are ready for take off!

How to Apply This to Your Business

Customer success metrics is a huge chapter and varies to the context of each business. Intercom is one of the most popular customer success tools. The purpose of this post was to showcase how we can easily get our customer success data with Blendo and build a dashboard for our Intercom analytics and metrics. If you have your data in place in no time, then you will only need to know the goals and the correct questions to ask.