33
Salesforce Extension Installation & Configuration Guide

Salesforce Extension Installation and Configuration Guide

Embed Size (px)

Citation preview

Page 1: Salesforce Extension Installation and Configuration Guide

Salesforce Extension Installation & Configuration Guide

Page 2: Salesforce Extension Installation and Configuration Guide

Page | 2

Title Salesforce Extension Installation & Configuration Guide

Revision 03/22/12

Copyright ©2012 inContact, Inc

About inContact inContact, Inc. (NASDAQ: SAAS) has helped over 750 contact centers around the globe create profitable customer experiences through its powerful portfolio of cloud-based contact center software solutions. The company’s services and solutions enable contact centers to operate more efficiently, optimize the cost and quality of every customer interaction, create new pathways to profit, and ensure ongoing customer-centric business improvement and growth. The inContact platform has grown from a powerful ACD with skills-based routing, CTI, and IVR with speech recognition to include an innovative online hiring solution, workforce management functionality, and a customer feedback and survey solution. Because the inContact platform is delivered through a Software-as-a-Service (SaaS) model, inContact customers can realize significant cost savings and flexibility compared to premises-based alternatives. To learn more, visit www.inContact.com.

Contributors Sean Kirkby; Phil van Dijk

Page 3: Salesforce Extension Installation and Configuration Guide

Page | 3

Table of Contents inContact Salesforce.com Plugin Agent Extension ..................................... 4

Installation and Configuration Guide ....................................................................... 4 Configuring Salesforce ............................................................................................. 5

Contents of the Salesforce Extension Admin Package ................................................ 5 Main Salesforce Configuration Steps........................................................................ 5 User Custom Fields (Required) ....................................................................................... 6 Call Data Custom Fields (Optional) .................................................................................. 9 The Salesforce Extension Configuration XML document .......................................................... 10 The Default Search Results Visualforce Page (and other Visualforce pages as needed) ........................ 20 Popping a Query Results Screen .................................................................................... 20 The Call Center Definition .......................................................................................... 24 The Softphone Layout ................................................................................................ 28 No Matching Records ............................................................................................... 29 Single-Matching Record ............................................................................................. 30 Multiple-matching Records ......................................................................................... 30

Configuring the Desktop ......................................................................................... 31 Install the Plugin Agent ............................................................................................. 31 Install the Salesforce Extension ..................................................................................... 33

Page 4: Salesforce Extension Installation and Configuration Guide

Page | 4

inContact Salesforce.com Plugin Agent Extension

Installation and Configuration Guide This guide covers the installation and configuration of the inContact Salesforce.com Plugin Agent Extension. The Salesforce Extension is an extension that works with the Plugin Agent. You can find more information about the Plugin Agent here: https://help.incontact.com/icng/icng_pluginagent/default.htm There are two main steps to installing and configuring the Salesforce Extension:

1) Configure Salesforce 2) Install Desktop Software

You should have downloaded three items from the inContact website in order to complete these steps:

1) The Plugin Agent install 2) The Salesforce Extension Admin package 3) The Salesforce Extension Agent package

These are downloaded from the “Software and Updates” section of the inContact Central Website.

Page 5: Salesforce Extension Installation and Configuration Guide

Page | 5

Configuring Salesforce The Salesforce Extension uses the agent’s Salesforce.com login to access and interact with Salesforce. Certain configuration settings and customizations must be completed within Salesforce.com in order for the Salesforce Extension to be fully operational. Some of the items covered in this document are only necessary if your agents need the corresponding features in the Salesforce Extension. When this is true, it will be noted below.

Contents of the Salesforce Extension Admin Package The Admin Package contains the following items:

• CTI Toolkit v4.0 Call Center Definition XML file • Salesforce Extension configuration XML file • inContact Default Search Results Visualforce page code files • Readme.txt file • Release Notes • Documentation (this Installation Guide, a Background Guide, and a

Customization Guide)

Main Salesforce Configuration Steps Configuring Salesforce.com to work with the Salesforce Extension includes the following steps:

1) Create required custom fields on the User object 2) Create optional custom fields and/or objects in which you want to store

inContact call data 3) Customize the Salesforce Extension Configuration XML document and import

it into Salesforce.com into a documents folder that your agents are able to read

4) Import the Default Search Results Visualforce page, and create any other Visualforce pages and/or custom objects that should be part of the agent’s call handling experience

5) Create a CTI Toolkit v4.0 Call Center definition and assign users/agents to it 6) Create and configure an appropriate “Softphone Layout” and assign it to the

Salesforce profile your agents use 7) Create any custom buttons you intend your agents to use within

Salesforce.com

Each of these steps is outlined below.

Page 6: Salesforce Extension Installation and Configuration Guide

Page | 6

User Custom Fields (Required) Two fields must be defined on the User object in order for the Salesforce Extension to properly interact with the Salesforce application:

• Custom Screenpop (Type: Text Area (Long), Length: 32768, API Name: Custom_Screenpop__c)

• SFDC Query Result (Type: Text Area (Long), Length: 32768, API Name: SFDC_Query_Result__c)

To create these fields, do the following:

1) After logging into Salesforce, select “Setup”:

2) Select “App Setup | Customize | User | Fields” :

Page 7: Salesforce Extension Installation and Configuration Guide

Page | 7

3) Scroll down to the “User Custom Fields” section and click the “New” button:

4) Select the “Text Area (Long)” type for the field and click the “Next” button:

Page 8: Salesforce Extension Installation and Configuration Guide

Page | 8

5) Enter the Field Label (“Custom Screenpop” or “SFDC Query Result”), enter the Length (size of 32,768), and click the “Next” button:

NOTE: Be sure to include spaces in the Field Label, NOT UNDERSCORES. The spaces will automatically be converted into underscores in the Field Name and the API Name.

6) Choose the security level for these custom fields for profiles that will be used by agents. Note that agents MUST be able to write to these fields (they should NOT be “Read Only”), then click the “Next” button:

Page 9: Salesforce Extension Installation and Configuration Guide

Page | 9

7) Select any page layouts that you want these fields to be visible on, and click “Save” (if you do not need to create a second custom field) or “Save and New” (if you need to create a second custom field). Note that it is NOT necessary for either the Custom Screenpop or the SFDC Query Result field to be visible on a page layout. However, it may be convenient for troubleshooting to have them visible on a page layout:

Follow these steps for each custom field (Custom Screenpop and SFDC Query Result).

Call Data Custom Fields (Optional)

Page 10: Salesforce Extension Installation and Configuration Guide

Page | 10

When an agent completes a call, there are likely data points about the call that you would like to store in Salesforce.com. The Salesforce Extension can store any call meta data value and any IVR script variable in any field/object you choose. You must ensure that the fields and objects exist that should receive this data. Here are some guidelines:

• Use “Text” or “Text Area (Long)” field types when possible • Ensure the field size is adequate. If data to be stored is larger than the field

size, the Salesforce Extension will store a null or blank value in the field. inContact recommends that Text and Text Area (Long) field be set to maximum size (255 for Text, and 32,768 for Text Area (Long)). Use Text Area (Long) for values that might reasonably be longer than 255 characters (such as URL’s).

• Preface optional custom field labels and names with something that identifies them as inContact data fields (i.e. “inContact ContactID” or “inContact SkillName”)

NOTE: You will map inContact data to Salesforce fields in the Salesforce Extension Configuration XML document (see below). When you identify an object and field to receive inContact data, the MOST RECENTLY OPENED instance of that object type will be used to store the data. For example, if you map the inContact ANI to a field on the Case object named inContact_ANI, the most recently opened Case object in Salesforce will be the object to receive the ANI. Also note that inContact call data can be stored in standard fields as well as custom fields. It’s not necessary to create custom fields if you can store all of the information you care about in existing standard fields. Keep track of the object and field names you create, as you will use them in the Configuration document.

The Salesforce Extension Configuration XML document The Salesforce Extension uses an XML configuration document to map inContact data onto Salesforce objects and fields for storage. In order to prevent the need to distribute a customized Configuration document to every agent desktop, the Salesforce Extension reads this Configuration document out of Salesforce itself. This allows you to store a single copy of the Configuration document, and have it apply to every agent who logs into Salesforce.

Page 11: Salesforce Extension Installation and Configuration Guide

Page | 11

The Extension Configuration Document MUST be imported into Salesforce for the Extension to work! (Read below to see how to customize and import it.) A sample/default Configuration XML document is supplied in the Salesforce Extension Admin package. It is configured as a minimal document, with no data field mappings. You may import this document and use it as-is, or you may customize it if you wish. If you customize it, you must ensure that the objects and fields it names actually exist in your Salesforce instance. You must do the following to use the Configuration document:

• Modify the Configuration document to your requirements • Create a “public” folder to store the document in. (NOTE: Agents will not

need “Read/Write” access to this folder or document. “Read Only” access is fine.)

• Import the document

Modifying the Configuration document The Configuration document is an XML file that contains a collection of “profile” definitions. Each profile definition matches to a Salesforce profile. (One profile definition, named “_default”, matches every Salesforce profile that isn’t explicitly defined in the Configuration document.) Each profile definition in the Configuration document can contain the following elements:

• Object and field definitions • Automatic call activity task creation settings • Softphone layout settings

Objects and fields: Within each profile definition is defined the Salesforce objects in which you want to store inContact data. Within each object, the specific fields are named, along with the inContact value that should be stored in that field. The name of the XML tag is comprised of the Salesforce object and field names into which you would like to store the inContact data. The value of the XML tag indicates which inContact value to store in the Salesforce object and field:

<Object.FieldName>inContact_Value</Object.FieldName> The Object.FieldName used as the XML tag name can be any object (standard or custom) and any field (standard or custom). Be sure to suffix custom object and tag names with “__c” (two underscores and a “c”). This is Salesforce.com’s standard for identifying custom objects and fields.

Page 12: Salesforce Extension Installation and Configuration Guide

Page | 12

There are two types of inContact values that can be stored in Salesforce objects and fields: CallInfo and ScriptVariable. CallInfo values are default meta data about the call. These values are available whether or not they are explicitly published from the IVR script. The following CallInfo values can be used:

CallInfo.ANI (the ANI of the caller – their phone number) CallInfo.DNIS (the DNIS - the phone number the caller dialed) CallInfo.CallDirection (“inbound” or “outbound”) CallInfo.CallDurationInSeconds (the length of the call, in seconds) CallInfo.DispositionValue (the disposition code selected by the agent, if the call was routed to a disposition skill queue) CallInfo.SkillName (the name of the skill the call was routed to)

In addition, you can access any published variables from the IVR script. To publish a variable, the variable’s “screen pop” setting must be “true”. See the Customization Guide for more details. If a variable is published from the IVR script, you can reference it from the configuration file using the following syntax:

ScriptVariable.VariableName --where “VariableName” is replaced by the name of the variable. For instance, if you create and publish a variable from your IVR script with the name of “ProductFamily”, you can map the value of this variable into a Salesforce field using the following syntax:

<Object.FieldName>ScriptVariable.ProductFamily</Object.FieldName> (NOTE: In the example above, “Object.FieldName” is not actually a real Salesforce.com object and field name. This naming is used in the example to demonstrate that an inContact IVR script variable can be mapped into any field on any object in Salesforce.) Softphone Layout settings: Within Salesforce.com, you will create and customize a “Softphone Layout” (see below). The Sofphone Layout defines (among other things) how the Salesforce Extension should pop objects when a call is received (or placed, for outbound calls). You can specify settings for three scenarios related to the query that is performed for objects that match the caller:

• No matching records (no matching objects were found)

Page 13: Salesforce Extension Installation and Configuration Guide

Page | 13

• Single-matching record (a single matching object was found) • Multiple-matching records (more than one matching object was found)

For each scenario, one of the options you can select is to open a custom Visualforce page in response to the query. When making this selection, you browse to and select a specific Visualforce page to pop. The Salesforce.com API allows the Salesforce Extension to see that you have selected “Pop to Visualforce page”; however, the Salesforce.com API does not allow the inContact Salesforce Extension to see the name of the Visualforce page you have selected. The Softphone Layout Settings element in the profile definition in the Extension Configuration document allows you to indicate to the Extension the name of the Visualforce page that should pop. In addition, for the No Match scenario, one of the options you can select is to pop to a “Create New…” page for any type of object. When making this selection, you browse to and select the specific type of object to create when no matching objects are found. The Salesforce.com API allows the Salesforce Extension to see that you have selected “Pop to New…”; however, the Salesforce.com API does not allow the inContact Salesforce Extension to see the name of the object type you wish to create. The Softphone Layout Settings element in the profile definition in the Extension Configuration document allows you indicate to the Extension the name of the object type that you wish to create if no matching objects are found. “Create Task” settings: Lastly, each profile definition contains an XML element that defines if a “phone activity task” is automatically created for each call, and whether that task should automatically pop at the end of the call (for Classic View users… Service Cloud Console users do not have a task pop.) Sample Extension Configuration document: For example, assume that the following profile definition exists in the Configuration document:

<profiles> <profile id=”System Administrator”>

<Task> <ANI__c>CallInfo.Ani</ANI__c>

Page 14: Salesforce Extension Installation and Configuration Guide

Page | 14

<DNIS__c>CallInfo.DNIS</DNIS__c> <CallType>CallInfo.CallDirection</CallType> <CallDurationInSeconds>

CallInfo.CallDurationInSeconds </CallDurationInSeconds>

<SkillName__c>CallInfo.SkillName</SkillName__c> <CallDisposition>

CallInfo.DispositionValue </CallDisposition>

<ContactID__c>CallInfo.ContactID</ContactID__c> </Task> <Case> <ProductFamily__c>

ScriptVariable.ProductFamily </ProductFamily__c>

</Case> <SoftphoneLayoutSettings> <NoMatch>CustomVisualforcePage</NoMatch> <SingleMatch>CustomVisualforcePage</SingleMatch> <MultipleMatch>CustomVisualforcePage</MultipleMatch> </SoftphoneLayoutSettings> <CreateTask> <Create>true</Create> <Pop>true</Pop> </CreateTask>

</profile> <profile id=”_default” >

<CreateTask> <Create>true</Create> <Pop>true</Pop> </CreateTask>

</profile> </profiles>

This profile definition indicates field mappings to be used for users who are assigned to the “System Administrator” profile in Salesforce. It maps the following inContact values onto fields in a Salesforce.com task (the call activity record):

• ANI • DNIS • Call Direction • Call Duration • Skill Name • Disposition Code • inContact Contact ID

Page 15: Salesforce Extension Installation and Configuration Guide

Page | 15

It also maps an IVR script variable called “ProductFamily” onto a field in a Case object. (Presumably, IVR input by the caller enabled the IVR script to determine the “product family” the caller is calling about, and store that value in a “script variable” named “ProductFamily” that is published to the Extension… the Extension can then store this value in a field on a Case object.) In addition, the Softphone Layout setting is configured to pop a custom Visualforce page in all query scenarios (i.e. no match, single match, and multiple match). All three scenarios are configured to pop the same page. The page to be popped is named “CustomVisualforcePage”. NOTE: These settings will have no effect unless the corresponding scenario setting in the Softphone Layout Settings in Salesforce.com are configured to “Pop to Visualforce page”. Lastly, this configuration indicates that a phone activity task should be created and popped when the call ends. (This is for the Classic View, not the Service Cloud Console View; the Service Cloud Console view does NOT pop an activity task, as it provides a constant UI for creating and modifying the task during the call in the “Interaction Log”.) This Extension Configuration document defines field mappings and settings for a single Salesforce.com profile. Note that you can have multiple profile definitions in the Configuration document. If an agent is assigned to a profile that is named in the document, then the settings in that profile definition will apply to the agent. If the agent’s Salesforce profile is not defined in the Configuration document, then the profile named “_default” will apply to the agent. There MUST be a _default profile in the configuration document. It can be empty:

<profile id=”_default”/> If a profile definition is empty, or does not contain a <CreateTask> element, the default is to create and pop a task. Once you have customized the Extension Configuration document, you must save it in Salesforce in order for the Salesforce Extension to find and use it. Create a public “Read Only” folder to store the document You should store the Extension Configuration document in a folder that is publicly visible. It does not have to be “Read/Write”. To create a folder, do the following:

1) View the “Documents” tab in Salesforce and click “Create New Folder”:

Page 16: Salesforce Extension Installation and Configuration Guide

Page | 16

2) Name the folder (it can have any name), select “Read Only”, and select “This folder is accessible by all users” and save the folder:

Import the Configuration Document

Page 17: Salesforce Extension Installation and Configuration Guide

Page | 17

Once your folder is created, you must import the Configuration document into it. Do this by selecting/viewing the folder, and clicking the “New Document” button:

Enter the document name. NOTE: The document name should be “inContact Salesforce Extension Config”. This is the default name for which the Salesforce Extension will search. If you save the Configuration document using a different name, you must modify the Extension configuration file on the agent’s local machine (which is what we are trying to avoid in the first place!) But the Configuration document name can be customized, if needed.

Be sure your public folder is selected and click “Choose File” to browse to and choose the Configuration XML document on your local machine. Click “Save”:

Page 18: Salesforce Extension Installation and Configuration Guide

Page | 18

Once the document is imported, you can verify its contents by selecting the document, and clicking the “View File” link:

If you need to modify the contents of the Configuration document, you will need to modify your local copy of the XML file, and “replace” the document in Salesforce. Once you have modified the local text file, select the Configuration document in Salesforce, and click on the “Replace Document” button:

Page 19: Salesforce Extension Installation and Configuration Guide

Page | 19

This opens the “replace document” screen. Select “Choose File”, browse to the local XML file and select it, and click the “Replace Document” button:

Page 20: Salesforce Extension Installation and Configuration Guide

Page | 20

The Default Search Results Visualforce Page (and other Visualforce pages as needed) The Softphone Layout can be configured to pop different things in response to the query the Extension performs on an inbound or outbound call. Among the options are:

• Pop the query results screen (if multiple matches are found) • Pop a custom Visualforce page

This section covers how you can enable both of these scenarios.

Popping a Query Results Screen When a call is delivered to the agent’s desktop from the inContact platform, the Salesforce Extension will perform a query to find matching entities within Salesforce. There are two types of queries that can be performed:

• A Default Query • A Controlled Query

A Default Query is performed if no “query control variables” are published from the IVR script. The Default Query searches for object types listed in the Softphone Layout. It searches for the caller’s ANI (the phone number they are calling from) in all “Phone” type fields in the object types listed. A Controlled Query is performed if one or more “query control variables” are published from the IVR script. (Query control variables are discussed in the Customization Guide.) In short, query control variables specify exactly what the Extension should search for (rather than defaulting to searching for the ANI). For example, query control variables can direct the Extension to search for a specific case object based on its ID or case number. Whether a Default or Controlled query is performed, the Softphone Layout settings specify what the Extension should “pop” or open, based on the results of the query. Every query will result in one of the following scenarios:

• No matching records • A single-matching record is found • Multiple-matching records are found

Page 21: Salesforce Extension Installation and Configuration Guide

Page | 21

If multiple matches are found, the query results screen can be popped. This is configured in the Softphone Layout, under the “Multiple-Matching Records” section:

For a default query, a default “Advanced Query Results” page is opened in Salesforce, based on the SOFL search for the ANI in the “phone” fields of object types listed in the Softphone Layout settings in Salesforce. Multiple object types can be displayed on the advanced search results page, depending on what object types were searched. A controlled query can result in multiple objects being found, and even multiple object types. Because a controlled query is performed using SOQL (rather than SOFL), a different page is used to display multiple matching records. In order to display multiple matching records from a controlled query, you must create and import a custom Visualforce page provided by inContact in the Salesforce Extension Admin package. To do this, you must do the following in order:

1. Login to Salesforce.com as a System Administrator.

2. Goto Your Name | Setup | Develop | Apex Classes | New

Page 22: Salesforce Extension Installation and Configuration Guide

Page | 22

3. Paste the “inContactCustomSearchController” class code in the “Apex Class” area as shown in Step 2. Click “Save”.

4. Click Your Name | Setup | Develop | Pages | New

Page 23: Salesforce Extension Installation and Configuration Guide

Page | 23

5. In the label field, type “inContactCustomSearchPage” (no spaces).

6. Paste the “inContactCustomSearchPage” Visualforce page code in the Visualforce Markup area as shown in the figure (Step 2). Click “Save”.

Page 24: Salesforce Extension Installation and Configuration Guide

Page | 24

The page and controller names must match the corresponding file names from which you will paste the code. Once the page and controller are imported, Controlled Queries resulting in multiple matching records can be displayed (if the “Multiple-matching Records” setting in the Softphone Layout is configured to pop the search results.)

The Call Center Definition A Call Center definition must be created in Salesforce in order for the Salesforce Extension to work properly. The Call Center definition contains settings used by Salesforce to communicate with the Extension running on the agent’s local desktop. The Salesforce Extension Admin package includes an XML file that can be imported to create the correct Call Center definition:

inContact_Call_Center_40.xml To create the call center, you simply import the file. Do the following:

1) Select “Setup”:

Page 25: Salesforce Extension Installation and Configuration Guide

Page | 25

2) Select “App Setup | Customize | Call Center | Call Centers” :

3) Click the “Import” button:

Page 26: Salesforce Extension Installation and Configuration Guide

Page | 26

4) Click “Choose File” and browse to the import file, then click “Import”:

After importing the call center definition, you must assign it to any users/agents who will be using the Salesforce Extension.

Page 27: Salesforce Extension Installation and Configuration Guide

Page | 27

NOTE: If you have agents who are using the existing Salesforce CTI Adapter v3.x from inContact, they will NOT be able to simultaneously run that Adapter and the new Salesforce Extension. This is because they can only be assigned to a single call center definition at one time, and each of those solutions requires a different call center definition. You can also edit the call center definition and add multiple users to it. Note that you will need to UNASSIGN users from existing call center definitions before Salesforce will allow you to assign them to a new call center definition using this method.

Page 28: Salesforce Extension Installation and Configuration Guide

Page | 28

The Softphone Layout Once you have the call center definition created and users assigned, you should configure your Softphone Layout. This is a collection of settings that controls how the Extension queries for matching entities within Salesforce, and what to pop once the query is completed. There are two main settings in the Softphone Layout that the extension uses:

• “Display these salesforce.com objects:” • “Screen Pop Settings”

Under the first group, labeled “Display these…”, you can specify a collection of objects what are searched in a Default Query:

The “phone” fields of these objects will be searched for the caller’s ANI if no “query control variables” are published from the IVR script. (See the Salesforce Extension Customization Guide for details on publishing query control variables from the IVR script.) Under the second group, labeled “Screen Pop Settings”, you specify what action the Extension should take based on query results (whether a Default Query or a Controlled Query):

Page 29: Salesforce Extension Installation and Configuration Guide

Page | 29

No Matching Records You can instruct the Extension to not pop anything, or to pop to a “new” page for any object, or to pop to a custom Visualforce page if there are not matching results in the query. If you elect to pop to a Visualforce page, you must specify the page name in the Configuration document (see above). If you elect to pop to a “new” object page, you must also specify the object name in the Configuration document (see above).

Page 30: Salesforce Extension Installation and Configuration Guide

Page | 30

Single-Matching Record You can instruct the Extension to not pop anything, to pop the details page of the single found object, or to pop to a custom Visualforce page if there is a single matching result in the query. If you elect to pop to a Visualforce page, you must specify the page name in the Configuration document (see above).

Multiple-matching Records You can instruct the Extension to not pop anything, to pop the search results page containing multiple found objects, or to pop a custom Visualforce page if there are multiple matching results in the query. If you elect to pop to a Visualforce page, you must specify the page name in the Configuration document (see above). If “Multiple-Matching Records” is configured to pop the search results page, the extension will pop an Advanced Query Results page if a Default Query is performed, and it will pop the custom inContact Search Results page if a Controlled Query is performed. (i.e. If query control variables are published from the IVR script. See the Salesforce.com Extension Customization Guide for more info on publishing query control variables from an IVR script.)

Page 31: Salesforce Extension Installation and Configuration Guide

Page | 31

Configuring the Desktop To configure the agent’s desktop, do the following:

1) Install the Plugin Agent 2) Install the Salesforce Extension

Install the Plugin Agent To install the Plugin Agent, download the Plugin Agent installer from the Software and Updates section of the inContact Central Website:

The Salesforce Extension provides its own Disposition user interface when a call must be dispositioned. Because of this, when you install the Plugin Agent, you should disable the default Disposition extension that is typically installed with the Plugin Agent. When you install the software, select “Custom” and disable the Disposition extension:

Page 32: Salesforce Extension Installation and Configuration Guide

Page | 32

Page 33: Salesforce Extension Installation and Configuration Guide

Page | 33

Install the Salesforce Extension To install the Salesforce Extension, simply run the icCRM_Salesforce_Voice_Extension_v1.0BETA_Agent.msi file. There are no custom settings or configurations to the install.