Transcription

Technical NoteIntegration of Cisco Agent Desktop for Cisco UnifiedContact Center Express with Salesforce.com CustomerRelationship Management ApplicationOverview Cisco Agent Desktop for Cisco Unified Contact Center Express is a ready-to-use packaged suiteof software applications that contact center agents, supervisors, and administrators use to: Perform customer interaction Automate customer-agent interaction tasks Enable agent-supervisor collaboration Manage performance of the virtual contact centerCisco Agent Desktop has a versatile feature set that allows configuration of its function to suit theunique needs of the global call center or individual agent, but does not require customization orexcessive professional services to implement.Cisco Agent Desktop provides deep integration within the Salesforce.com (SFDC) CustomerRelationship Management (CRM) application through configuration of a standard work flow anduse of a custom Java method for customer record identification. This document discussescustomer benefits and best practices, and tells how to integrate Cisco Agent Desktop withSalesforce.com to meet customer business objectives.Customer ExperienceAn office products and services company wanted to provide a highly tailored customer experiencefor its callers. The company’s goals for integration were to achieve a higher service level, reducecall-handling time, and provide the most expert, personalized assistance possible for itscustomers.To accomplish these objectives, the company chose integration of Cisco Agent Desktop with theSalesforce.com CRM application used by its customer service agents.Now, the company uses customer information collected from an interactive-voice-response (IVR)component and data retrieved from Salesforce.com to make skills-based routing decisions, whichdirect connection of customers with the agents best suited to address their requirements. At thesame time, the integration presents the caller record within Salesforce.com at the agent’s desktopwhen the call is received. As a result, the company has achieved a higher level of performance byreducing call-duration and call-waiting times.Integration RequirementsBefore integrating Cisco Agent Desktop and Salesforce.com, do the following:1.Identify telephony data or user-captured data that you will use to search the Salesforce.comdatabase and present the network-retrievable Webpage from Salesforce.com at the agent’sdesktop as the call is presented.All contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 1 of 19

Technical NoteIn many businesses, not all callers can be readily identified based on automatic numberidentification (ANI). Collecting an alternative identifier, such as an account number, increasesthe probability of successful caller identification. Furthermore, businesses may have multiplerecords for a single ANI or account number, so a best practice is to establish a sequencesimilar to the following to handle these instances: A routing script first looks for ANI. If ANI is not available, the Cisco IP IVR system prompts the caller for a phone number or anaccount number. If no Salesforce.com database matches are found on ANI, phone number, or accountnumber, the automatic call distributor (ACD) sends the call to an agent and a blankAdvanced Search results page appears within the Cisco Agent Desktop integrated browser. If multiple matches are found, a Salesforce.com Advanced Search results page, whichshows the agent the contact listings, appears within the Cisco Agent Desktop integratedbrowser. If a single match is found, the Account Detail Salesforce.com page containing the uniquecustomer record appears within the Cisco Agent Desktop integrated browser.2.Determine Cisco Agent Desktop work-flow (Events, Rules, and Actions) assignments.In Cisco Agent Desktop, agents are assigned to work-flow groups so that specific desktopbehaviors can be applied. It is a best practice to have these groups configured for individualagents or multiple agents who have common tasks. Within these work-flow groups, taskautomation and agent management work flows can be configured to satisfy many automatedfunctions. A work flow is a rules-based, event-affected action. When an event occurs, theCisco Agent Desktop work flow executes a basic sequence wherein it applies the definedrules to the event. If the event conditions fall within the rules, a list of actions is executed. Inthis example, when the call is presented with appropriate Salesforce.com enterprise data, awork-flow HTTP Action is executed as illustrated below.Cisco Agent Desktop Work Flow for Call with ANI or Account NumberEvent: RingingRule: ANI or SFDC Record ID enterprise data is presentAction: Launches Salesforce.com-specific URL3.Determine which Salesfore.com URLs will produce the required customer-specific networkretrievable Webpage used by agents to process customer calls.Specific Salesforce.com URLs are used to configure the standard Cisco Agent Desktop HTTPAction within the work flow to open the appropriate Salesforce.com Webpage within the CiscoAgent Desktop integrated browser. Because of the way Salesforce.com presents an AccountDetail page, whereby the customer-specific record can be accessed only by a direct URL, theIVR application uses a Java method to identify the specific customer record. Use of a customJava method is a common technique to perform database lookups in the IVR system, andprocess the retrieved data for skills-based routing decisions or integration with third-partyapplications.Integration MethodA. Telephony Interface – Capturing and Processing Enterprise DataThis section describes the call processing between the Cisco IP IVR application, custom Javamethod, and Salesforce.com for capturing caller-specific information and using expanded-callcontext (ECC) variables to pass this data to Cisco Agent Desktop. In this example, the IVR systemuses a custom Java method designed to look up the caller’s Salesforce.com Record ID informationAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 2 of 19

Technical Notebased on the caller’s ANI or phone number collected from an IVR prompt. If ANI is present, theIVR system then queries the Salesforce.com Contact Object and Account Object records using aSalesforce.com Java application programming interface (API). For reference, a no-cost sample ofthe Java method used in this example is available; send an e-mail requesting this information [email protected] the Salesforce.com Account ID lookup on ANI is successful, Cisco Unified Contact CenterExpress passes the caller’s Account ID from the Cisco IP IVR application to Cisco Agent Desktopas an ECC variable. The ECC variable used in this example, SFDCRecID, is defined in ContactCenter Express system. As the call is delivered to the agent, Cisco Agent Desktop applies a workflow to evaluate the value of the ECC variable provided and initiate a corresponding action thatdisplays the customer-specific Salesforce.com record within the agent’s integrated browser. Figure1 and Tables 1 and 2 give an example of integration based on ANI or phone number for theSalesforce.com and Cisco IP IVR data elements of interest for this integration method.If no ANI is available, the IVR prompts callers to enter their phone number. If a single match isfound in the Contact Object or Account Object lookup, the IVR application collects thecorresponding unique Account ID associated with this contact. The customer response solutions(CRS) system, in turn, sends this information as an ECC variable (SFDCRecID) to Cisco AgentDesktop when the call is presented to the agent. As in the previous example, Cisco Agent Desktopapplies a work flow to evaluate the value of the SFDCRecID ECC variable and initiate acorresponding action that displays the customer-specific Salesforce.com record within the agent’sintegrated browser.If there is no match for the given ANI or phone number in either the Contact Object or AccountObject lookups, the IVR application returns a predefined “NoMatchFound” text to the CRS systemas the SFDCRecID ECC variable value. Similarly, when there is a System Failure scenario due toSalesforce.com downtimes or slow response time, the IVR application returns the predefined text,“SystemFailure” to the CRS system as the SFDCRecID ECC variable. In both these situations, theCRS system sends the predefined text in the SFDCRecID ECC variable to Cisco Agent Desktop.Cisco Agent Desktop again applies a work flow to evaluate the SFDCRecID ECC variable valuesand initiates a Salesforce.com Advanced Search Results URL in the Cisco Agent Desktopintegrated browser address bar.If multiple matches for ANI or phone number are found in either the Contact Object or AccountObject searches, the Cisco IP IVR application passes the predefined “MultipleMatchesContact” or“MultipleMatchesAccount” text to the CRS system as the SFDCRecID ECC variable value. As inthe previous examples, the text is passed as the SFDCRecID ECC variable to Cisco AgentDesktop. Cisco Agent Desktop again applies a work flow to evaluate the SFDCRecID ECCvariable value and initiate a dynamic URL that redirects the integrated browser to theSalesforce.com Advanced Search results page.Figure 1.Salesforce.com Call FlowAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 3 of 19

Technical NoteFigure 1.Salesforce.com Call Flow – ContinuedAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 4 of 19

Technical NoteTable 1.Integration Based on ANI, Phone Number, or Account Lookup – Fields of Interest inSalesforce.comFieldDescriptionaccountIdUnique ID associated with this account: This field is a member of the SObject class.firstNameFirst name of the contactlastNameLast name of the contactPhoneThe phone number associated with this contact; the ANI or phone number lookup is done usingthis field.Table 2.Integration Response Based on ANI or Phone Number – IVR Transaction Data sFieldDescriptionData TypePhoneANI or phone numberInputResultCodeAccount ID (Successful Match Found)Output001 (Multiple Account Object Match Found)003 (Multiple Contact Object Match Found)NoMatchFound (No Record Match Found)SystemError (Salesforce.com down, slow response times, or other system error situation)B. Cisco Desktop Administrator Work-Flow ConfigurationAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 5 of 19

Technical NoteThe previous section establishes the ECC variable data (SFDCRecID) that is passed from theCisco IP IVR system to Cisco Agent Desktop in this example. The Cisco Agent Desktop work flowuses the SFDCRecID ECC variable containing the Account ID to create a unique Salesforce.comURL and perform the screen pop. To accomplish the sequences discussed previously in theagent’s integrated browser window, the application must be configured in Cisco DesktopAdministrator.The first step in the configuration process requires the addition of a work-flow group and userinterface to display the Salesforce.com homepage within the Cisco Agent Desktop integratedbrowser. Figure 2 illustrates using File New menu to add a work-flow group. Figure 3 showsconfiguration of the User Interface Browser Setup for the new work-flow group to enable operationof the agent’s integrated Web browser to default on the Salesforce.com login homepage.Figure 2.Add a Work-Flow Group – Work-Flow Group Name EditorFigure 3.Work-Flow Group – User Interface Browser SetupAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 6 of 19

Technical NoteNow that the Sable work-flow group is established and integrated browser behavior is configured,the second step in the process is to establish the enterprise data that will be made available in thespecific work flow that will be delivered to the desktop to perform the Salesforce.com integration.Figure 4 shows the Layout Editor window where the data variables available from the CRS systemare assigned for display in the Enterprise Data pane. These variables are defined in the CRSsystem, and those selected in Layout Editor will be displayed in the Enterprise Data pane of CiscoAgent Desktop for all agents who are assigned to the Sable work-flow group. The work flow usesthe SFDCRecID variable to determine which specific URL will be displayed in the Cisco AgentDesktop integrated browser.Figure 4.Enterprise Configuration – Layout EditorAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 7 of 19

Technical NoteThe next step in the configuration process is to add a work flow to the Sable work-flow group. It isthe work flow that will evaluate the SFDCRecID ECC variable data and direct the Salesforce.comspecific agent screen by initiating a corresponding action. In this example, the Sable work flow iscreated to accommodate all call flow-specific scenarios.C. Work-Flow Rules and HTTP ActionFor the Sable work flow, an Event-Rule-Action sequence is configured that will execute based onthe value provided in the SFDCRecID ECC variable from the IVR system through the CRS system.In this case, the triggering event is ringing of the agent’s phone. Cisco Agent Desktop initiates theSable work flow as the call is presented when data in the SFDCRecID ECC variable is present. Ifthe rules associated with the work flow apply, the corresponding action associated with the workflow rule is then initiated. Figures 5 through 9 illustrate the configuration of the Sable work-flowclassification and the associated rules and actions for each SFDCRecID ECC variable condition.Details of work-flow setup and configuration are available in the Cisco Desktop Administrator UserGuide located /ps1846/products user guide list.html.Figure 5.Sable Work Flow – SystemErrorAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 8 of 19

Technical NoteFigure 6.Sable Work Flow – NoMatchAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 9 of 19

Technical NoteAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 10 of 19

Technical NoteFigure 7.Sable Work Flow – MultipleContactAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 11 of 19

Technical NoteFigure 8.Sable Work Flow – MultipleAccountAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 12 of 19

Technical NoteAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 13 of 19

Technical NoteFigure 9.Sable Work Flow – SuccessAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 14 of 19

Technical NoteD. Assigning Agents to Work-Flow GroupsAfter the telephony interface, work-flow group, and work-flow elements are configured and tested,the final step is to assign agents to the new work flow. By highlighting the agents’ names in thePersonnel Configuration, agent properties can be assigned to the Sable work flow, as shown inFigure 10.Figure 10.Personnel Configuration – Agent PropertiesAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 15 of 19

Technical NoteExecuting the Screen PopAt this point, Salesforce.com integration configuration is complete. The following sequencedemonstrates how the screen pop of Salesforce.com within the Cisco Agent Desktop integratedbrowser is executed in this example.Single Match Found: If a unique Account ID is found from the Contact or the Account Object query,the Cisco Agent Desktop integrated browser is redirected to the Account tab of the Salesforce.comWebsite with the customer-specific account information displayed, as shown in Figure 11.Figure 11.Success – Single Match FoundAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 16 of 19

Technical NoteMultiple Matches Found using ANI or phone number: If more than one ID is found in theSalesforce.com Contact Object or Account Object lookup using the given ANI or phone number,the Cisco Agent Desktop browser is redirected to the Salesforce.com Advanced Search resultspage where the multiple contacts associated with the given ANI or phone number are displayed,as shown in Figures 12 and 13.Figure 12.Multiple Matches Found in Contact ObjectAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 17 of 19

Technical NoteFigure 13.Multiple Matches Found in Account ObjectAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.Page 18 of 19

Technical NoteNo Match Found or System Failure: If both the Salesforce.com Contact Lookup and AccountLookup queries return no match for a given ANI or phone number, the Cisco Agent Desktopbrowser is redirected to the Salesforce.com Advanced Search results page, as shown in Figure14.Figure 14.No Match Found or System FailureSummaryCisco Agent Desktop work flows using HTTP Actions enable the use of call-based data to executelaunch of a specific Salesforce.com URL within the Integrated Browser window. The Cisco AgentDesktop work flow with HTTP Action in combination with an IVR script and Java method enablesdelivery of personalized customer service and reduced call duration by automating record retrievaland eliminating agent keystrokes.Printed in USAAll contents are Copyright 1992–2007 Cisco Systems, Inc. All rights reserved. This document is Cisco Public Information.C17-407701-00 05/07Page 19 of 19

customer record appears within the Cisco Agent Desktop integrated browser. 2. Determine Cisco Agent Desktop work-flow (Events, Rules, and Actions) assignments. In Cisco Agent Desktop, agents are assigned to work-flow groups so that specific desktop behaviors can be applied. It is a bes