salesforce.block-adapter-multitab
Section: crm-adapter
Default Value: false
Valid Values: true, false
Changes Take Effect: When the session is started or restarted
Specifies that Gplus Adapter cannot work in more than one browser tab.
salesforce.keep-session-alive
Section: crm-adapter
Default Value: false
Valid Values: true, false
Changes Take Effect: When the session is started or restarted.
Introduced: 9.0.0
Specifies whether to prevent Adapter from logging out of Salesforce when there is no activity in Salesforce beyond a configurable time period. If set to true, Adapter refreshes the Salesforce session at short intervals and keeps Adapter-Salesforce session alive.
salesforce.run-apex.userdata-key-list
Section: crm-adapter
Default Value:
Valid Values: Comma-separated list of fields in userData that will be delivered to Salesforce Apex parameter eventData.
Changes Take Effect: When the session is started or restarted.
Introduced: 9.0.000.63
Specifies a comma-separated list of the userData key names to be delivered to Salesforce Apex. For example: userDataKeyName1, userDataKeyName2, userDataKeyName3.
salesforce.run-apex.class
Section: crm-adapter
Default Value: No default value
Valid Values: Apex Class Name
Changes Take Effect:
Dependencies: salesforce.run-apex.events
Introduced: 9.0.000.51
Specifies the name of the Saleforce Apex Class that is to be executed based on the events specified by the salesforce.run-apex.events option.
salesforce.run-apex.events
Section: crm-adapter
Default Value: No default value
Valid Values: RINGING, DIALING, ESTABLISHED, RELEASED, INVITED, ACCEPTED, CREATED, REMOVED
Changes Take Effect:
Dependencies: salesforce.run-apex.class
Introduced: 9.0.000.51
Modified: 9.0.000.94
Specifies the list of one or more Genesys interaction events that trigger Salesforce Apex Code specified by the salesforce.run-apex.class option to run.
(Update with the copy of version: 9.0.0DRAFT) |
(Modified comment string Workspace Agent Desktop with Agent Workspace) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
=Configuring and Using General Features= | =Configuring and Using General Features= | ||
Gplus Adapter integrates Genesys interaction handling capabilities into Salesforce. The Adapter window is accessed through the Adapter button in the Salesforce Utility Bar. The Adapter window displays agent status at all times. The Adapter window can be docked, undocked, moved, resized, minimized, and maximized. Some Genesys interactions events cause the Adapter window to be maximized automatically. | Gplus Adapter integrates Genesys interaction handling capabilities into Salesforce. The Adapter window is accessed through the Adapter button in the Salesforce Utility Bar. The Adapter window displays agent status at all times. The Adapter window can be docked, undocked, moved, resized, minimized, and maximized. Some Genesys interactions events cause the Adapter window to be maximized automatically. | ||
+ | {{AnchorDiv|SCAPI}} | ||
+ | {{NoteFormat|The information about support for Service Client API in Salesforce has moved here: [[GplusServiceClientAPI|Gplus Adapter support for Service Client API]].|1}} | ||
+ | |||
+ | {{AnchorDiv|RunApex}} | ||
+ | ==Configuring Gplus to run Salesforce Apex== | ||
+ | If you want to customize Salesforce by running Salesforce Apex on Genesys interaction events, you can configure Gplus Adapter to create and execute Salesforce Apex. See the [https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm Salesforce Apex Developer Guide]. | ||
+ | |||
+ | Apex can be initiated by the following Genesys interaction events: | ||
+ | |||
+ | {{{!}} class="wikitable" | ||
+ | {{!}}+Genesys Workspace Web Edition events initiating Run Apex | ||
+ | !Name | ||
+ | !Description | ||
+ | {{!}}- | ||
+ | {{!}} colspan="2"{{!}}'''Voice channel events''' | ||
+ | {{!}}- | ||
+ | {{!}}RINGING | ||
+ | {{!}}Inbound call is ringing. | ||
+ | {{!}}- | ||
+ | {{!}}DIALING | ||
+ | {{!}}Outbound call is ringing | ||
+ | {{!}}- | ||
+ | {{!}}ESTABLISHED | ||
+ | {{!}}Call is established | ||
+ | {{!}}- | ||
+ | {{!}}RELEASED | ||
+ | {{!}}Call is released | ||
+ | {{!}}- | ||
+ | {{!}} colspan="2"{{!}}'''Digital channels events''' | ||
+ | {{!}}- | ||
+ | {{!}}INVITED | ||
+ | {{!}}Digital interaction invitation received | ||
+ | {{!}}- | ||
+ | {{!}}ACCEPTED | ||
+ | {{!}}Digital interaction is accepted | ||
+ | {{!}}- | ||
+ | {{!}}CREATED | ||
+ | {{!}}Digital interaction is created | ||
+ | {{!}}- | ||
+ | {{!}}REMOVED | ||
+ | {{!}}Digital interaction is removed | ||
+ | {{!}}} | ||
+ | |||
+ | Your Apex class should have one method and accept the following two string parameters: eventName and eventData. | ||
+ | |||
+ | For example: | ||
+ | <source lang="text"> | ||
+ | public class tstapex { | ||
+ | public void eventCollector (string eventName, string eventData) { | ||
+ | String data; | ||
+ | Map<String, Object> interaction =(Map<String, Object>)JSON.deserializeUntyped(eventData); | ||
+ | if (eventName == 'RINGING'){ | ||
+ | data=(String)interaction.get('key1'); | ||
+ | } | ||
+ | if (eventName == 'DIALING'){ | ||
+ | data=(String)interaction.get('key2'); | ||
+ | } | ||
+ | if (eventName == 'ESTABLISHED'){ | ||
+ | data=(String)interaction.get('key3'); | ||
+ | } | ||
+ | if (eventName == 'RELEASED'){ | ||
+ | data=(String)interaction.get('key4'); | ||
+ | } | ||
+ | |||
+ | if (eventName == 'INVITED'){ | ||
+ | data=(String)interaction.get('key5'); | ||
+ | } | ||
+ | if (eventName == 'ACCEPTED'){ | ||
+ | data=(String)interaction.get('key6'); | ||
+ | } | ||
+ | if (eventName == 'CREATED'){ | ||
+ | data=(String)interaction.get('key7'); | ||
+ | } | ||
+ | if (eventName == 'REMOVED'){ | ||
+ | data=(String)interaction.get('key7'); | ||
+ | } | ||
+ | |||
+ | data=EncodingUtil.urlDecode(data, 'UTF-8'); | ||
+ | Case c = new Case(); | ||
+ | c.Type = 'ICM'; | ||
+ | c.Origin = 'SHIP'; | ||
+ | c.Status = 'New'; | ||
+ | c.Subject = eventName; | ||
+ | c.Description = data; | ||
+ | Insert c; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Examples of how to use the Run Salesforce Apex on interaction events functionality include: | ||
+ | |||
+ | * Provide Salesforce Alerts to an agent for reminders about how to handle a workflow in Salesforce. | ||
+ | * Link a newly created Salesforce Case record to the existing (Account, Contact, and so on) record. | ||
+ | |||
+ | Configure which events you want to trigger runApex code by using the {{Optionslink|link=Options:Genesys_Web_Services:crm-adapter:salesforce-run-apex-events}} option. | ||
+ | |||
+ | Configure the name of the custom Apex Class to execute by using the {{Optionslink|link=Options:Genesys_Web_Services:crm-adapter:salesforce-run-apex-class}} option. | ||
+ | |||
+ | Gplus Adapter can send a list of interaction userData key-value pairs (KVPs) to Salesforce Apex for the specified interaction event. To specify the list of userData key names, configure the {{Optionslink|link=Options:Genesys_Web_Services:crm-adapter:salesforce-run-apex-userdata-key-list}} option. This feature depends on the '''salesforce.run-apex.events''' option being enabled. When the specified event, such as RINGING, occurs, Gplus Adapter collects the userData KVPs and sends them to the Apex class specified by the '''salesforce.run-apex.class''' option. | ||
+ | |||
+ | When you configure '''salesforce.run-apex.userdata-key-list''', ensure that the key names that you specify exist in the interaction userData; Gplus Adapter skips non-existent key names. To avoid this situation, either add the key name to the userData, remove non-existent key names from the option, or ensure that Apex properly processes non-existent key names. If an empty list is specified for the value of the '''salesforce.run-apex.userdata-key-list''' option, the original interaction object data is sent to the Apex eventData parameter. | ||
+ | |||
+ | {{AnchorDiv|DisasterRecovery}} | ||
+ | ==Support for Smart Failover== | ||
+ | Gplus Adapter supports Genesys Smart Failover for disaster recovery scenarios. This feature enables you to switch agents automatically to a backup URL configured in Salesforce in the event that the primary URL is inaccessible. After Smart Failover has been configured in Genesys Web Services, configure Smart Failover in your Salesforce deployment. | ||
+ | |||
+ | The Gplus Adapter for Salesforce Agent Guide contains information about the [https://all.docs.genesys.com/PEC-GPA/Current/Agent/GPASFLWWE#DisasterRecovery agent experience] during Smart Failover scenarios. | ||
+ | |||
+ | If Adapter cannot establish connection to Genesys data center on the primary URL after the configured timeout ([[GPlusGenFeatures#UseCTIAPI|Use CTI API]]) expires, Adapter will attempt to load from the backup URL ([[GPlusGenFeatures#CTIAdapterBackupURL|CTI Adapter Backup URL]]). After Adapter loads, Genesys Smart Failover handles [https://all.docs.genesys.com/PEC-AD/Current/Agent/ADQuickStart#Disconnection disaster recovery events]. | ||
+ | ===Configuring Smart Failover for Gplus Adapter for Salesforce=== | ||
+ | To perform the following procedure, you need to set up a new call center using an XML file that Genesys provides to you. | ||
+ | |||
+ | [[File:Gplus_900_DRCallCenter_Config.png]] | ||
+ | |||
+ | Before you begin, ensure that you have: | ||
+ | |||
+ | *A Salesforce administrator role account | ||
+ | *The {{Repository|DR-lightning-callcenter.xml|| DR-lightning-callcenter.xml}} file | ||
+ | *Host and port information required to specify call center settings. Genesys provides this information to you. | ||
+ | |||
+ | '''Start''' | ||
+ | <ol> | ||
+ | <li>Get the <tt>DR-lightning-callcenter.xml</tt> file from Genesys and save to a local folder.</li> | ||
+ | <li>Log into Salesforce.com with your administrator credentials to open the '''Home''' page.</li> | ||
+ | <li>Select '''Setup'''.</li> | ||
+ | <li>In the '''Quick Find''' field, type <tt>Call Center</tt>.</li> | ||
+ | <li>Click '''Call Centers'''.</li> | ||
+ | <li>Click '''Import'''.</li> | ||
+ | <li>Click '''Choose File''' and navigate to the folder where you saved the <tt>DR-lightning-callcenter.xml</tt> file.</li> | ||
+ | <li>Click '''Import'''.</li> | ||
+ | <li>Click '''Edit''' and fill in the '''CTI Adapter URL''' and '''CTI Adapter Backup URL''' that Genesys provided to you. Refer to the screen shot for an example of what a configuration looks like. When you paste the URLs that Genesys gives you, add the following parameters to '''CTI Adapter URL''': <tt>?site-1=''<GWSHOST'' from Backup URL''>''</tt> | ||
+ | <p>Here is an example ('''NOTE:''' the URLs in your environment will be different): | ||
+ | <ul> | ||
+ | <li>'''CTI Adapter URL''': <tt><nowiki>https://gwa-usw1.genesyscloud.com/ui/crm-workspace/index.html?site-1=gwa-use1.genesyscloud.com</nowiki></tt></li> | ||
+ | <li>'''CTI Adapter Backup URL'''{{AnchorDiv|CTIAdapterBackupURL}}: <tt><nowiki>https://gwa-use1.genesyscloud.com/ui/crm-workspace/index.html</nowiki></tt> | ||
+ | <p>(reqStandbyUrl) - Represents the location that hosts the backup Adapter URL. The backup Adapter is used after the timeout period has elapsed for the primary Adapter and the '''[https://developer.salesforce.com/docs/atlas.en-us.api_cti.meta/api_cti/sforce_api_cti_notifyInitializationComplete_lex.htm notifyInitializationComplete()]''' for Salesforce method hasn’t been called within the required timeout period. When you specify a backup URL, also specify the timeout value in the '''Use CTI API''' field.</p> | ||
+ | </li> | ||
+ | <li>'''Use CTI API:''' 30000 (default){{AnchorDiv|UseCTIAPI}} | ||
+ | <p>(reqTimeout) - Represents the time in milliseconds after which the backup URL is used to load Adapter. When you specify a required timeout, also specify the Adapter backup URL in the '''CTI Adapter Backup URL''' field.</p> | ||
+ | </li> | ||
+ | </ul> | ||
+ | </p> | ||
+ | </li> | ||
+ | <li>After you add your disaster recovery call center, you must provision the call center with users. If you have a previous Salesforce Call Center, remove users from that Call Center and add the users to the new call center you just added.</li> | ||
+ | </ol> | ||
+ | |||
+ | '''End''' | ||
+ | |||
{{AnchorDiv|Status}} | {{AnchorDiv|Status}} | ||
− | == Agent Status Display in Gplus Adapter == | + | ==Agent Status Display in Gplus Adapter== |
− | Gplus Adapter displays agent status in the Utility Bar whether the Adapter window is minimized or maximized. Agent status is obtained from Workspace | + | Gplus Adapter displays agent status in the Utility Bar whether the Adapter window is minimized or maximized. Agent status is obtained from Agent Workspace. This feature enables agents to monitor their status even when the Adapter window is minimized. |
Agent status in Lightning: | Agent status in Lightning: | ||
Line 23: | Line 171: | ||
==Interaction Events causing the Adapter window to Maximize== | ==Interaction Events causing the Adapter window to Maximize== | ||
If an agent has minimized Adapter to handle other tasks in Salesforce, the Adapter window is automatically maximized by the following events: | If an agent has minimized Adapter to handle other tasks in Salesforce, the Adapter window is automatically maximized by the following events: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | {{AnchorDiv| | + | *Receiving voice, chat, SMS, email, or workitem interactions |
− | == | + | *Releasing interactions |
− | + | *Marking Done interactions | |
+ | *Receiving connections error notifications | ||
+ | *Receiving confirmation that an interaction has been added to the Genesys Universal Contact Server (UCS) database | ||
+ | |||
+ | '''Note''': If an agent receives an SMS from an unassigned contact in the '''[https://all.docs.genesys.com/PEC-AD/Current/Agent/ADSMS#CommunicationTab Communication]''' tab, the Agent Workspace window will be maximize if it was minimized on SMS invite; however, if the contact in the '''Communication''' tab is assigned, no action occurs. | ||
+ | |||
+ | {{AnchorDiv|KeepAlive}} | ||
+ | ==Activity timeout== | ||
+ | Gplus Adapter logs an agent out if there has been a period of inactivity. Use the {{Optionslink|link=Options:Genesys_Web_Services:crm-adapter:salesforce-keep-session-alive}} option to prevent the agent from being logged out of Salesforce when there is no activity in Salesforce beyond the configured time period. If the browser with Gplus Adapter loaded or the agent's device becomes <!--[https://all.docs.genesys.com/PEC-Agent/Login#inactivity idle]-->idle, Keep Alive functionality also becomes idle. | ||
− | + | {{AnchorDiv|Encryption}} | |
+ | ==Salesforce Shield Platform Encryption support== | ||
+ | Gplus Adapter supports [https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/salesforce_platform_encryption_implementation_guide.pdf Salesforce Shield Platform Encryption]. Gplus Adapter works with encrypted Salesforce record fields, such as in the following scenarios: | ||
− | + | *Searching Salesforce data for screen pop with record ID, custom fields, or standard fields. | |
− | + | *Adding data to Salesforce, such as when creating new objects on screen pop or creating Activity Tasks on mark done. | |
− | + | *Updating Salesforce data when an Activity Task is updated after creation or after mark done. | |
− | + | Salesforce Shield Platform Encryption is also supported when you add your own code to a [[ScreenPop#ScreenPopType|Flow]] or to run [[GPlusGenFeatures#RunApex|Apex]] triggered by Adapter, including code that contains functionality that works with the Salesforce database. | |
− | + | {{AnchorDiv|Multitab}} | |
− | + | ==Using Gplus Adapter in multiple browser tabs== | |
+ | Agents can use Gplus Adapter in multiple browser tabs. The following describes how the main Gplus Adapter functions are supported in multiple browser tabs: | ||
− | + | *'''[[ClicktoDial|Click-to-dial]]''': If an agent clicks-to-dial in one Salesforce browser tab, an outbound call is initiated in Adapter in all browser tabs. The agent can continue to handle the interaction in any open browser tab. | |
− | * | + | *'''[[ScreenPop|Screen pop]]''': By default the screen pop is displayed in all browser tabs that are running Gplus Adapter. Screen pop FLOW, screen pop NEW_RECORD_MODAL, and creation and screen pop of new Salesforce record are triggered only in the active tab (refer to [[ScreenPop#ScreenPopType|Screen pop by Salesforce object type]]). |
− | * | + | *'''[[ActivityHistory|Activity history]]''': The activity history on interaction Mark Done or Salesforce screen pop is created once for each interaction irrespective of how many browser tabs are running Gplus Adapter. |
+ | *'''[[GPlusGenFeatures#RunApex|Run Apex]]''': If you have configured Salesforce Run Apex, calls to Run Apex occur in the active browser tab. | ||
− | + | Genesys recommends logging in to Adapter in the first browser tab before opening Gplus Adapter in multiple tabs. Before using Adapter in any open browser tab or opening Adapter in a new tab, make sure that Adapter has finished operations in your active page and is fully loaded. Refer to the [https://all.docs.genesys.com/PEC-AD/Current/Agent/ADNav Agent Workspace] Agent Help for more information. | |
− | + | {{AnchorDiv|OneTab}} | |
+ | ==Load Gplus Adapter in only one browser tab== | ||
+ | If the user opens Salesforce in multiple browser tabs, Gplus Adapter, by default, automatically loads into each browser tab. If you want Gplus Adapter to open only in one of the browser tabs running Salesforce, set the value of the {{Optionslink|link=Options:Genesys_Web_Services:crm-adapter:salesforce-block-adapter-multitab}} option to <tt>true</tt> to prevent Gplus Adapter from opening in multiple browser tabs. | ||
<!-- | <!-- | ||
{{AnchorDiv|Localization}} | {{AnchorDiv|Localization}} | ||
==Localization in Gplus Adapter== | ==Localization in Gplus Adapter== | ||
− | Gplus Adapter automatically selects the same language that Salesforce is configured to display in, if the language is supported by Workspace | + | Gplus Adapter automatically selects the same language that Salesforce is configured to display in, if the language is supported by Agent Workspace; otherwise, Gplus Adapter displays in English. For example, if Salesforce is configured to display in French, then Adapter displays in French. |
Refer to [https://help.salesforce.com/articleView?id=usersetup_lang_time_zone.htm&type=5 Edit Your Language and Locale Settings] for information about setting the display language in Salesforce Lightning. | Refer to [https://help.salesforce.com/articleView?id=usersetup_lang_time_zone.htm&type=5 Edit Your Language and Locale Settings] for information about setting the display language in Salesforce Lightning. | ||
Line 61: | Line 218: | ||
{{AnchorDiv|Recording}} | {{AnchorDiv|Recording}} | ||
− | == Support for Genesys Interaction Recording == | + | ==Support for Genesys Interaction Recording== |
The Gplus Adapter console supports Genesys Interaction Recording (GIR). For an overview of Genesys Interaction Recording, see [[Documentation:CR:Solution:Overview|About Genesys Interaction Recording]]. | The Gplus Adapter console supports Genesys Interaction Recording (GIR). For an overview of Genesys Interaction Recording, see [[Documentation:CR:Solution:Overview|About Genesys Interaction Recording]]. | ||
Line 70: | Line 227: | ||
To manage the call recording features of an agent, see [[ActiveRecordingSetup|Recording setup]]. | To manage the call recording features of an agent, see [[ActiveRecordingSetup|Recording setup]]. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | {{AnchorDiv| | + | {{AnchorDiv|UCS}} |
− | == | + | ==Integrating Genesys Universal Contact Server (UCS)== |
− | + | You can enable agents to use Team Communicator to call a contact that is stored in the Universal Contact Server (UCS). You can view the detailed contact information from the '''Contacts''' tab. For more information, see [[Documentation:HTCC:IWWDep:EnablingComms|Enabling Internal Communications]] in the Web Services and Applications Configuration Guide. | |
− | + | {{AnchorDiv|Supervisor}} | |
− | + | ==Support for Supervisor functions== | |
− | + | Gplus Adapter supports supervisor monitoring, coaching, and barging-in of calls handled by agents. While supervisors are performing these functions, the Gplus Adapter features such as Screen Pop occur only on the supervised agent's Gplus Adapter. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:V:HTCC:9.0.0]] | [[Category:V:HTCC:9.0.0]] |
Latest revision as of 14:33, July 29, 2022
Configuring and Using General Features
Gplus Adapter integrates Genesys interaction handling capabilities into Salesforce. The Adapter window is accessed through the Adapter button in the Salesforce Utility Bar. The Adapter window displays agent status at all times. The Adapter window can be docked, undocked, moved, resized, minimized, and maximized. Some Genesys interactions events cause the Adapter window to be maximized automatically.
Configuring Gplus to run Salesforce Apex
If you want to customize Salesforce by running Salesforce Apex on Genesys interaction events, you can configure Gplus Adapter to create and execute Salesforce Apex. See the Salesforce Apex Developer Guide.
Apex can be initiated by the following Genesys interaction events:
Name | Description |
---|---|
Voice channel events | |
RINGING | Inbound call is ringing. |
DIALING | Outbound call is ringing |
ESTABLISHED | Call is established |
RELEASED | Call is released |
Digital channels events | |
INVITED | Digital interaction invitation received |
ACCEPTED | Digital interaction is accepted |
CREATED | Digital interaction is created |
REMOVED | Digital interaction is removed |
Your Apex class should have one method and accept the following two string parameters: eventName and eventData.
For example:
public class tstapex {
public void eventCollector (string eventName, string eventData) {
String data;
Map<String, Object> interaction =(Map<String, Object>)JSON.deserializeUntyped(eventData);
if (eventName == 'RINGING'){
data=(String)interaction.get('key1');
}
if (eventName == 'DIALING'){
data=(String)interaction.get('key2');
}
if (eventName == 'ESTABLISHED'){
data=(String)interaction.get('key3');
}
if (eventName == 'RELEASED'){
data=(String)interaction.get('key4');
}
if (eventName == 'INVITED'){
data=(String)interaction.get('key5');
}
if (eventName == 'ACCEPTED'){
data=(String)interaction.get('key6');
}
if (eventName == 'CREATED'){
data=(String)interaction.get('key7');
}
if (eventName == 'REMOVED'){
data=(String)interaction.get('key7');
}
data=EncodingUtil.urlDecode(data, 'UTF-8');
Case c = new Case();
c.Type = 'ICM';
c.Origin = 'SHIP';
c.Status = 'New';
c.Subject = eventName;
c.Description = data;
Insert c;
}
}
Examples of how to use the Run Salesforce Apex on interaction events functionality include:
- Provide Salesforce Alerts to an agent for reminders about how to handle a workflow in Salesforce.
- Link a newly created Salesforce Case record to the existing (Account, Contact, and so on) record.
Configure which events you want to trigger runApex code by using the salesforce.run-apex.events option.
Configure the name of the custom Apex Class to execute by using the salesforce.run-apex.class option.
Gplus Adapter can send a list of interaction userData key-value pairs (KVPs) to Salesforce Apex for the specified interaction event. To specify the list of userData key names, configure the salesforce.run-apex.userdata-key-list option. This feature depends on the salesforce.run-apex.events option being enabled. When the specified event, such as RINGING, occurs, Gplus Adapter collects the userData KVPs and sends them to the Apex class specified by the salesforce.run-apex.class option.
When you configure salesforce.run-apex.userdata-key-list, ensure that the key names that you specify exist in the interaction userData; Gplus Adapter skips non-existent key names. To avoid this situation, either add the key name to the userData, remove non-existent key names from the option, or ensure that Apex properly processes non-existent key names. If an empty list is specified for the value of the salesforce.run-apex.userdata-key-list option, the original interaction object data is sent to the Apex eventData parameter.
Support for Smart Failover
Gplus Adapter supports Genesys Smart Failover for disaster recovery scenarios. This feature enables you to switch agents automatically to a backup URL configured in Salesforce in the event that the primary URL is inaccessible. After Smart Failover has been configured in Genesys Web Services, configure Smart Failover in your Salesforce deployment.
The Gplus Adapter for Salesforce Agent Guide contains information about the agent experience during Smart Failover scenarios.
If Adapter cannot establish connection to Genesys data center on the primary URL after the configured timeout (Use CTI API) expires, Adapter will attempt to load from the backup URL (CTI Adapter Backup URL). After Adapter loads, Genesys Smart Failover handles disaster recovery events.
Configuring Smart Failover for Gplus Adapter for Salesforce
To perform the following procedure, you need to set up a new call center using an XML file that Genesys provides to you.
Before you begin, ensure that you have:
- A Salesforce administrator role account
- The DR-lightning-callcenter.xml file
- Host and port information required to specify call center settings. Genesys provides this information to you.
Start
- Get the DR-lightning-callcenter.xml file from Genesys and save to a local folder.
- Log into Salesforce.com with your administrator credentials to open the Home page.
- Select Setup.
- In the Quick Find field, type Call Center.
- Click Call Centers.
- Click Import.
- Click Choose File and navigate to the folder where you saved the DR-lightning-callcenter.xml file.
- Click Import.
- Click Edit and fill in the CTI Adapter URL and CTI Adapter Backup URL that Genesys provided to you. Refer to the screen shot for an example of what a configuration looks like. When you paste the URLs that Genesys gives you, add the following parameters to CTI Adapter URL: ?site-1=<GWSHOST from Backup URL>
Here is an example (NOTE: the URLs in your environment will be different):
- CTI Adapter URL: https://gwa-usw1.genesyscloud.com/ui/crm-workspace/index.html?site-1=gwa-use1.genesyscloud.com
- CTI Adapter Backup URL: https://gwa-use1.genesyscloud.com/ui/crm-workspace/index.html
(reqStandbyUrl) - Represents the location that hosts the backup Adapter URL. The backup Adapter is used after the timeout period has elapsed for the primary Adapter and the notifyInitializationComplete() for Salesforce method hasn’t been called within the required timeout period. When you specify a backup URL, also specify the timeout value in the Use CTI API field.
- Use CTI API: 30000 (default)
(reqTimeout) - Represents the time in milliseconds after which the backup URL is used to load Adapter. When you specify a required timeout, also specify the Adapter backup URL in the CTI Adapter Backup URL field.
- After you add your disaster recovery call center, you must provision the call center with users. If you have a previous Salesforce Call Center, remove users from that Call Center and add the users to the new call center you just added.
End
Agent Status Display in Gplus Adapter
Gplus Adapter displays agent status in the Utility Bar whether the Adapter window is minimized or maximized. Agent status is obtained from Agent Workspace. This feature enables agents to monitor their status even when the Adapter window is minimized.
Agent status in Lightning:
Agent status in Classic:
Dock, undock, move, and resize Adapter
By default, the Adapter window launches in the bottom-left corner in the Salesforce Utility Bar (bottom-right corner in Classic).
Agents can undock the Adapter window then move it to a different location. To undock (pop out) the window, they click the icon in the top-right corner of the Adapter window and drag it where they want to place it. Once the window is undocked, agents can move or resize the window as needed.
Agents can dock (restore) the window back to its original position by clicking the icon.
Interaction Events causing the Adapter window to Maximize
If an agent has minimized Adapter to handle other tasks in Salesforce, the Adapter window is automatically maximized by the following events:
- Receiving voice, chat, SMS, email, or workitem interactions
- Releasing interactions
- Marking Done interactions
- Receiving connections error notifications
- Receiving confirmation that an interaction has been added to the Genesys Universal Contact Server (UCS) database
Note: If an agent receives an SMS from an unassigned contact in the Communication tab, the Agent Workspace window will be maximize if it was minimized on SMS invite; however, if the contact in the Communication tab is assigned, no action occurs.
Activity timeout
Gplus Adapter logs an agent out if there has been a period of inactivity. Use the salesforce.keep-session-alive option to prevent the agent from being logged out of Salesforce when there is no activity in Salesforce beyond the configured time period. If the browser with Gplus Adapter loaded or the agent's device becomes idle, Keep Alive functionality also becomes idle.
Salesforce Shield Platform Encryption support
Gplus Adapter supports Salesforce Shield Platform Encryption. Gplus Adapter works with encrypted Salesforce record fields, such as in the following scenarios:
- Searching Salesforce data for screen pop with record ID, custom fields, or standard fields.
- Adding data to Salesforce, such as when creating new objects on screen pop or creating Activity Tasks on mark done.
- Updating Salesforce data when an Activity Task is updated after creation or after mark done.
Salesforce Shield Platform Encryption is also supported when you add your own code to a Flow or to run Apex triggered by Adapter, including code that contains functionality that works with the Salesforce database.
Using Gplus Adapter in multiple browser tabs
Agents can use Gplus Adapter in multiple browser tabs. The following describes how the main Gplus Adapter functions are supported in multiple browser tabs:
- Click-to-dial: If an agent clicks-to-dial in one Salesforce browser tab, an outbound call is initiated in Adapter in all browser tabs. The agent can continue to handle the interaction in any open browser tab.
- Screen pop: By default the screen pop is displayed in all browser tabs that are running Gplus Adapter. Screen pop FLOW, screen pop NEW_RECORD_MODAL, and creation and screen pop of new Salesforce record are triggered only in the active tab (refer to Screen pop by Salesforce object type).
- Activity history: The activity history on interaction Mark Done or Salesforce screen pop is created once for each interaction irrespective of how many browser tabs are running Gplus Adapter.
- Run Apex: If you have configured Salesforce Run Apex, calls to Run Apex occur in the active browser tab.
Genesys recommends logging in to Adapter in the first browser tab before opening Gplus Adapter in multiple tabs. Before using Adapter in any open browser tab or opening Adapter in a new tab, make sure that Adapter has finished operations in your active page and is fully loaded. Refer to the Agent Workspace Agent Help for more information.
Load Gplus Adapter in only one browser tab
If the user opens Salesforce in multiple browser tabs, Gplus Adapter, by default, automatically loads into each browser tab. If you want Gplus Adapter to open only in one of the browser tabs running Salesforce, set the value of the salesforce.block-adapter-multitab option to true to prevent Gplus Adapter from opening in multiple browser tabs.
Support for Genesys Interaction Recording
The Gplus Adapter console supports Genesys Interaction Recording (GIR). For an overview of Genesys Interaction Recording, see About Genesys Interaction Recording.
Genesys Interaction Recording is only supported for Voice channel and is not supported when Gplus Adapter is popped out of the Salesforce window.
To configure Genesys Interaction Recording for the Gplus Adapter, see Enable Screen Recording in the Genesys Interaction Recording Solution Guide. In this procedure, refer to the Integrating with Workspace Web Edition section.
To manage the call recording features of an agent, see Recording setup.
Integrating Genesys Universal Contact Server (UCS)
You can enable agents to use Team Communicator to call a contact that is stored in the Universal Contact Server (UCS). You can view the detailed contact information from the Contacts tab. For more information, see Enabling Internal Communications in the Web Services and Applications Configuration Guide.
Support for Supervisor functions
Gplus Adapter supports supervisor monitoring, coaching, and barging-in of calls handled by agents. While supervisors are performing these functions, the Gplus Adapter features such as Screen Pop occur only on the supervised agent's Gplus Adapter.