Enterprise Routing with DaVinci and Twilio TaskRouterJune 1, 2019Written by Anthony X. Uliano, Founder / CTO of AMC Technology – Originally posted by Twilio.Customer service has come a long way in the past few years. Businesses have made a significant investment in their systems to improve the customer experience, and they’re seeing the results in higher CSAT scores. However, many of these companies now find themselves with critical features spread across several different platforms. Operating siloed systems can lead to overly complicated workflows and ever-increasing support and maintenance costs. And often, businesses feel the pain of siloed systems the most when it comes to their CRM.The CRM application Salesforce has made great advances in workforce optimization, work item queuing, and agent metrics reporting through Salesforce Omni-Channel. At the same time, businesses that have selected advanced communication platforms, like Twilio Flex, are equipped with state-of-the-art routing and queuing across voice, messaging, and other channels through Twilio’s TaskRouter component. In order to streamline the customer experience and maximize operational efficiency, it’s critical that these two—the CRM and the contact center—are tightly integrated.That’s why businesses that want to take their customer service practices to the next level are looking for a way to combine the best capabilities from all of these platforms into their ultimate contact center vision. However, there are several challenges to consider. Work streams may come from different sources. For example, Leads and Cases may originate in Salesforce, while voice and SMS interactions originate in Twilio Flex. In the quest to create a pure blended agent experience, many businesses still rely on third-party integrations. When they try to measure the effectiveness of their strategy, they’re unable to view these work streams through a consolidated reporting mechanism. We built DaVinci to help companies who need support with combining all of these capabilities.DaVinci and Twilio FlexAMC’s new cloud native offering, DaVinci, allows companies to select a configuration that best matches their strategic vision, while providing agents with an embedded experience. DaVinci can coordinate separate work streams, allowing TaskRouter to be the single routing platform, and present those work items to the agent in a blended user interface, while providing consolidated reporting through reporting engines like Salesforce Omni-Channel Reporting.DaVinci integrates with Twilio Flex in two ways. First, the DaVinci Toolbar connects to Twilio Flex services to support voice, SMS, and other channel delivery directly to agents and gives agents control over each interaction, like answering a call, placing a call on hold, ending an SMS interaction, etc. The DaVinci App for Twilio Flex is integrated at the Twilio Flex Programmable UI layer through custom-built UI components using React. Because DaVinci provides an interface embedded within each business application, it must be integrated directly with Twilio Flex services so a custom UI can be tailored to each application. The second way DaVinci integrates with Flex is through a connection with TaskRouter, allowing work items to be passed between TaskRouter and CRM systems, like Salesforce. DaVinci connects with TaskRouter through a server-based interface supporting asynchronous routing of work items. Twilio Flex supports integration at every level of it’s platform, making it unlike any other cloud communication platform available today. The integration AMC has built is only possible because of the way Twilio Flex has been designed for full customization. DaVinci’s integration with Twilio Flex supports a large number of use cases, including inbound call and SMS handling, click-to-dial from business records, screen pop based on attributes included by Twilio for each interaction, agent and channel metrics, co-residence with other channels like premise telephony, and skills-based routing of business application work items by TaskRouter. Routing Between Twilio Flex and Salesforce When it comes to routing, DaVinci can take work items from Salesforce Omni-Channel—like Leads and Cases—and process route requests from the Salesforce Omni-Channel External Routing Interface. Those route requests can then be sent to TaskRouter, which can then act as a single routing platform for the Salesforce work items, voice, and SMS channels. When the work streams are routed to a particular agent, DaVinci Agent can present those work items in a single user interface, embedded in Salesforce. DaVinci then ensures that all agent and channel metrics are sent to Salesforce for display through the Salesforce Omni-Channel Reporting Dashboard. A specific workflow example is illustrated in Figure 1 below. A flow of work item routing from customer to agent via DaVinci, Twilio TaskRouter, and Salesforce.Work Item FlowUser submits a Case in Salesforce.Salesforce pushes a notification to DaVinci.DaVinci queries for additional data.DaVinci sends Case details to Twilio.Twilio makes a routing decision and returns the best agent to handle the Case to DaVinci.DaVinci creates a pairing of Case to agent and pushes the assignment to Salesforce.Salesforce routes the object to the specified agent through the embedded DaVinci Toolbar.Using this approach, agent availability is managed by Twilio Flex and work items can be blended from different sources. The flow of voice and SMS is slightly different, as they originate from Twilio, but after they are queued to TaskRouter, DaVinci presents them to the appropriate agent. Reporting for all of these queued work items is centrally displayed in Salesforce Omni-Channel reporting.The following figures detail the visual flow of work items from Salesforce to Twilio Flex and then to the appropriate agent.Figure 2 – Task Router with assigned work for an agentIn Figure 2, you can see the Lead work item that came from Salesforce being assigned to the agent. This information is then sent back to Salesforce Omni-Channel.Figure 3 – Omni-Channel Dashboard showing assigned work to an agent.Salesforce Omni-Channel then routes the work item to the assigned agent and once the agent accepts the work item, Omni-Channel shown in Figure 3 displays the work item assigned to the agent. The screenshot shows a Salesforce screen with the DaVinci agent after routing a work item.Figure 4 – Agent experience in SalesforceIn Figure 4, the agent experience is displayed with the work item details being launched in the main window of Salesforce and the DaVinci Agent displayed in the lower right. In this configuration, all work items are queued and routed using Twilio Flex TaskRouter, while still leveraging the capabilities of Salesforce Omni-Channel to define work items, agent workload limits, and work item reporting. DaVinci is the platform responsible for passing routing events and data between Twilio Flex and Salesforce and for presenting the work items to the agents once assigned. Best of Both WorldsUsing an approach like this is ideal for businesses looking to maximize their customer service capabilities while implementing the best of breed features from their CRM and contact center platforms, like Salesforce and Twilio Flex.Businesses who face the recurring challenges that come with siloed systems—communication channels, agent interfaces, and customer records that won’t integrate—are often prevented from delivering frictionless customer experiences. If you’re using Salesforce and want to put your customer data to work in your contact center, this doesn’t have to be your reality.Talk to AMC about integrating Twilio Flex with your CRM, or learn more about how you can work with AMC on your integration.Anthony UlianoAnthony X. Uliano, Founder / CTO of AMC Technology. I’m a CRM and contact center integration specialist, responsible for product development and strategy at AMC, a company I founded in 1995. I got my start as the architect for SAP’s Customer Interaction Center, which I sold to SAP back in 1997, launching my 23 year obsession with CRM and CTI integration. I split my time in Richmond VA and Bar Harbor Maine, where I live with my wife and 3 children. When I’m not running AMC, I’m an avid film buff and volunteer at several non-profits.