Integrating Talkdesk and Salesforce for Smarter Call Routing—and Happier Customers


When you think about the trades industry, it can be difficult to wrap your head around the size of this sector, the impact it has on the world, and the day-to-day lives of every single person in it. Plumbers, electricians, HVAC specialists, commercial landscapers, pest exterminators, and so many other contractors and businesses are part of this massive space.

ServiceTitan is a cloud-based software platform built to power the trades by giving contractors an end-to-end SaaS solution to manage every aspect of their business, unlock the power of their own data, and equip them with the advanced technology they need to keep the world running.

As a senior business systems analyst at ServiceTitan, I help manage the technology that empowers our employees to better serve our customers. Most of what I do focuses on supporting our post-sales organizations: onboarding, training, support, success, and customer experience. I work across various platforms to improve multiple aspects of the customer journey, especially Salesforce and Talkdesk

ServiceTitan initially adopted Talkdesk because we needed a call center solution with a more robust feature set. We wanted a more sophisticated and dynamic call routing system, with call recording features, machine learning tools to review those recordings, and workforce management to schedule our support staff. Having one centralized system through Talkdesk, rather than multiple ones, allowed us to reduce technical debt and make a significant step toward a more streamlined, modern call center. When I took over the Talkdesk system a year ago, I wanted to see how we could take this even further.

First, Better Routing

At the end of 2021, chat was being handled in Salesforce while calls were going through Talkdesk. We realized that simultaneously managing these separate routing sets wouldn’t be scalable in the long term, so we looked for ways to centralize the process while making our routing more intelligent. 

Previously, all routing was queue based, so when customers contacted us they would go into a specific agent queue based on what they said they needed help with. At that time, we weren’t able to match a repeat customer issue with more seasoned agents, or ensure newer agents were only routed to less complex interactions for product areas they had been trained on. These mismatches could be frustrating for the customer and stressful for the agent. It also negatively impacted wait times and first-call resolution (FCR) rates. We always aim to resolve an issue on a customer's first call, but weren’t able to do that as often as we would have liked.

This issue became the impetus for our Intelligent Routing project. We were determined to find a way to precisely match and route customer interactions to the best agent based on their skill set, and what we already knew about the customer. We started by designing the architecture for a central routing tool that would make use of Salesforce skill-based routing, and the newly available attribute-based routing in Talkdesk’s Omnichannel Orchestration and Routing. Using a phased approach, we implemented first in Salesforce Chat, and with that success, moved on to implementing in Talkdesk. We were fortunate in our timing as the technology for Omnichannel Flows for chat routing didn't exist in Salesforce until their summer 2021 release, and the attribute routing features in Talkdesk arrived in 2022. We were at the forefront of both technologies.

Being an early adopter is not without its challenges. Much of the documentation for both systems was still in development, and the formatting of the skill/attribute assignments to the interactions was largely built through trial and error. However, the hours spent by our internal development teams were well worth it, because in the end, we had a rules-based engine that took the guesswork out of answering customer service calls.

By identifying who the customer is, and why they likely need help, we are able to route them to an agent quickly, without burying them in menu options.

A Rules-Based Engine Helps Us Know Our Customer

We've all been on those calls where you get stuck in sub-menu after sub-menu, and you end up hitting "0" out of frustration because you just want to talk to a human being. We wanted to avoid that situation while still gaining information about the customer. The Salesforce data dips offered a solution. Inbound calls come through Talkdesk, which then refers the inbound phone number to Salesforce to pull up the customer's account. By identifying who the customer is, and why they likely need help, we are able to route them to an agent quickly, without burying them in menu options. 

We accomplished this with our Intelligent Routing system, which uses configurable queries to add tags to an interaction. Those queries allow us to identify things like whether an account has had an open case for the same issue within the last two weeks, if the caller gave us a negative CSAT score in the previous three months, and what features they currently utilize. With all of this information available in Salesforce, our rules-based engine can determine which calls require the highest-priority routing and which skills an agent needs to handle the call.

We still ask why the customer needs help—we never want to assume—but we can also use the information we already have on the customer to make better-informed decisions about how to help them, even before the agent takes the call.

Reducing Administrative Overhead 

Using skills to determine customer routing was a huge improvement over queue-based routing, but it came with its own set of challenges. As a software company, we're constantly innovating and changing, so we have to continually update our agents' skills and knowledge of new features. From an administrative standpoint, imagine you have 12–15 skills assigned to each agent, including certifications. Those skills are constantly changing and you have to manage it all in both Salesforce and Talkdesk.

In order to simplify the management of the agent skills, and have one central source of truth, we built a custom API that syncs the Salesforce skills to the agent attributes so we can manage everything from one location within Salesforce. This API saves me around 10 hours a month in administrative work, leaving me more time to focus on areas of the business that I previously did not have bandwidth for.

Improving Business Continuity

Our next step was to design and build a more robust business continuity plan, especially when it came to emergency after-hours support. The prior setup required various supervisors with administrative access to reroute calls to their cell phones. It was all manual, and we didn't have notification options for other team members in the instance that the on-call supervisor missed a call. We wanted to automate the process for better continuity and have fewer cooks in the kitchen making manual changes to reduce backlog.

Once again, we turned to Salesforce data dips for our continuity plan by using a specially designated record in Salesforce to act as our administrative control for Talkdesk settings. Using fields in that record, we can determine what happens in the Talkdesk Studio flow. For example, if we have a significantly high call volume and remove the option for callbacks, our supervisors can uncheck that option in Salesforce, and new calls can't request a callback. We can also use that quick switching feature for emergency messaging, such as informing callers of an interruption to the call service center, or if another communication method, like chat, is a better bet. If the appropriate audio recording doesn't already exist, supervisors can type out the message and it will play through text-to-speech.

Proof of Our Success: Happier Customers

The best thing we can say about these projects is that we now provide better customer service. Since implementing our new call routing, our FCR stats are above the industry standard range of 70–79%. We've reduced the average time to answer by seven minutes, and our average handle time is also down by a minute. Call volume is down—which is a good thing! Lower call volumes mean fewer customers need to call us at all.

We think our customers are definitely happier. We're leveling our calls better too. More seasoned agents now receive the more complex calls, and it's all done seamlessly, behind the scenes. It's a subtle change, but it results in an improved FCR rate and less frustration for customers and agents alike.

Making the Most of Talkdesk

I'm proud to say the final delivered product is almost exactly what we envisioned at the beginning of the process. That's a testament to how much planning and analysis our team put into the project. Even though we executed the majority of the Studio Flow build ourselves, we relied on the Talkdesk team's expertise, which they were happy to provide. From the beginning, through the design and build process, they were always willing to seek out answers—and if they didn't have them immediately, they would connect us directly with their product developers. Many of our questions were about how Talkdesk works, so it was incredibly helpful to get that level of access. Our technical lead was able to help us better understand the connection points and formatting needs when building our custom API connecting Talkdesk to Salesforce.

And there's a lot more to accomplish on our roadmap. We've recently launched an extension of our business continuity plan, a new API connection that allows customers to call us through our product and community sites. Currently, they can request a callback from those sites during regular business hours, but they can't call us directly from the site, which isn’t ideal as it is where most of our customer interactions start. With this new extension, the customer can click a button on our sites and drop directly into our phone queue for the same experience as if they had dialed us on their phone.

We're also excited to gain even more granularity through the dynamic assignment of attribute skill levels. Currently, we can variably assign which attributes we think an interaction should have, but we can't match the skill level to the attribute in a key pair (e.g., attribute two should be matched with attribute two skill level). Since everything is returned dynamically from the routing service right now, we can't guarantee an attribute will always be returned in the same order. We want to make sure to connect the right attribute and skill level, and we are working to scale our agents at an even more detailed level than we have with this project so far.

ServiceTitan is a unique business, but we share something with other successful companies: a maniacal focus on our customers. This project enabled us to remove friction from the process, streamline our interactions with customers, and get them to the right people who could help them out the fastest.