Scaling Customer Support
What happens when you open the floodgates to a direct line of customer support on a platform with 25.000 Daily Visitors?
What happens when you open the floodgates to a direct line of customer support on a platform with 25.000 Daily Visitors?AIESEC boasts over 40.000 volunteers working on the ground, running its operations. Around 10.000 of these are serving our youth customers who visit our platform on aiesec.org everyday.
In 2016, AIESEC implemented a live-chat customer support tool (Intercom) on that platform to improve our customer support capabilities. We wanted to be able to engage visitors, support them on their way to sign up and ask them for live feedback.In AIESEC, we put a lot of emphasis on the human touch. This is why, as soon as a customer signs up, we assign them their personal experience manager. However, before they sign up we used to offer very littlesupport.This small change would change our customer behavior in a way that we did not foresee and dramatically impacted ourKPIs:
- Before, users would create accounts just so they could get in touch with us. Now they messaged us on Intercom to clear their doubts.
- If engaged through auto-messages, our customers would want to have real conversations
- Our customers preferred Intercom support over their experience managers supporting them.
All those changes in customer behavior theoretically were amazing. Our customers loved the new support channel… That is until our support team started to burn out.
You see, AIESEC is a network organization, so every national office is its own entity with its own CEO. The global office acts as a service body with zero executive power to force the national office to do something, if they don’t wish to. Any strategic direction driven down from the global office needs to follow strict and proper change management plans, generating buy-in and on-boarding everyone to see something through. Since aiesec.org is managed from the global office, so was the customer support team. We had 5 peeople handling 200+ queries a day. It was not sustainable. Satisfaction rates plummeted, the team (volunteers working in their free time) lost motivation and soon after I found myself with an intercom inbox of 2000 open queries. I knew I needed to change something. As we have 120+ national offices backing us up, I would spend my focus on getting as many of them onboard as possible to have their own customer support teams on Intercom to cover all 190+ countries and territories in the world. AIESEC is not present in all countries (121 to date) and hence we do not cover the whole globe. Still, we get visitors from all over the world who would contact us asking why they could not signup.
We needed to find a way to
a. Manage queries from users in countries we do not have offices in.
b. Manage queries from users in countries we do have offices in but no dedicated customer support team.
To solve this we created a matrix that included all countries and territories and the number of users they would get. Based on the main language there, we would assign them to a team capable to answer in that language. We built clusters that would be responsible for a roughly equal amount of volume in customer queries as to not overload a team. In order to generate buy-in, I created a document laying out the benefits a national office would get from having its own dedicated customer support team. I literally took the feature pages from the Intercom website and translated it into concrete examples relevant to AIESEC. I splurged on the premium version of Intercom, giving us all features and especially the kind of features our national offices would desire. We’re basically talking about the ability to create custom campaigns with triggers and messages, allowing them to do targeted promotion and tailored user onboarding. We even went so far to implement custom fields in Intercom and created documentation on how to use these the most effectively.
We started with personally talking to and inviting our most performing national offices under the condition that they would take over serving customers from markets that were not yet covered by the respective national offices. Our most performing offices are also the most influential. They have leverage over smaller offices and when they asked them to join — as they got tired handling other markets’ customers — our number of participating offices quickly grew. Within a few weeks, we actually had assignment rules set up for over 80 teams (Intercoms powerful assignment rules feature helped us greatly).
So we ended up achieving our goal and all is well, right? Unfortunately not. What had happened to my team as described earlier — burning out — quickly started to happen to other teams as well. Team members from support teams across the globe started dropping out, their respective teams’ inboxes filling up and our users get dissatisfied. However, it was hard to see where exactly the bottleneck was, which team or which individual member was lacking in performance and in which KPI. The global team’s role elevated to track other teams. I split up the different markets among them and their responsibility was to follow up and track them to clear their inbox in time and properly with high user satisfaction.
We quickly realized that this was a behemoth task. Until then I had taught my members to solely use functions inside intercom, i.e. tagging and the reports function. At that time, reports were insufficient, because they would not allow you to get a birds-eye view over all teams at once. Looping through 80 report pages was not practical and tagging people did not work as our support agents were not even logging into the Intercom platform anymore.
My idea to solve this was simple: create a google spreadsheet that clearly shows in one table the most customer support KPIs (Open Conversations, Conversations Participated In, Satisfaction Rate, First Median Response Rate, Conversations Closed, Median Time to Close the Conversation) for all teams, for everyone to see to create peer pressure. Plus, I would be able to get this birds-eye view and track my team to track their teams. Should be simple, right? After all, Intercom offers an open API. Well… it turned out to be close to impossible. Yes, Intercom does have an API, but it actually does not give access to the reports API and does not offer the ability to retrieve the report KPIs in a simple way. Observing network requests in the browser shows Intercom does not use the public API but uses an internal one that is impossible to access from the outside.
Researching on how to solve this, I would find one option: to use a headless browser to scrape the data. I’m not gonna bore you of all the trial & error I went through, but rather present the final solution of a series of node.js scripts that would use google chromes headless browser version, log into intercom by itself, loop through all teams and their reports and download the data in HTML format. These pages would then be parsed by a PHP script to build one CSV file, storing it on a server to be imported in a Google Spreadsheet to present it in a more visual way.
This spreadsheet allowed me to easily tag people with their email address, asking for clear deadlines and having it show up in their actual work mail inbox. Bringing this kind of data outside of the intercom platform additionally allowed me to easily loop in the respective team leaders and supervisors to drive accountability.
All of this seemed to work. We got a grip on our KPIs and low performing teams started to perform. Almost every office would have its own dedicated team. And then, Intercom decided to change its pricing structure to seat-based, paying for every agent that we had on the platform. Well, we had over 200 agents there, which drove the price into not being sustainable for us.
Since then, I actually rose up to lead my department at AIESEC and one of my members took over this responsibility. He decided to implement crisp and he is currently running through the same process that I had run-through again.