<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://all.docs.genesys.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mgionet</id>
	<title>Genesys Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://all.docs.genesys.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mgionet"/>
	<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/Special:Contributions/Mgionet"/>
	<updated>2026-05-01T05:45:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:Feature_capabilities_horizontal_example.png&amp;diff=125984</id>
		<title>File:Feature capabilities horizontal example.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:Feature_capabilities_horizontal_example.png&amp;diff=125984"/>
		<updated>2022-08-03T18:21:43Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:Validation_failure.png&amp;diff=124438</id>
		<title>File:Validation failure.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:Validation_failure.png&amp;diff=124438"/>
		<updated>2022-07-14T09:58:17Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:WidgetsWebChat_PlayMessageBlock2_042022.png&amp;diff=119366</id>
		<title>File:WidgetsWebChat PlayMessageBlock2 042022.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:WidgetsWebChat_PlayMessageBlock2_042022.png&amp;diff=119366"/>
		<updated>2022-04-27T19:25:04Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=WID/Current/SDK/WebChatService-combined&amp;diff=116765</id>
		<title>WID/Current/SDK/WebChatService-combined</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=WID/Current/SDK/WebChatService-combined&amp;diff=116765"/>
		<updated>2022-03-25T12:47:15Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=WebChatService&lt;br /&gt;
|TocName=WebChatService&lt;br /&gt;
|Context=Learn how to use Genesys chat services.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Developer&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|sectionHeading=Overview&lt;br /&gt;
|anchor=overview&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=WebChatService exposes high-level API access to Genesys chat services, so you can monitor and modify a chat session on the front end, or develop your own custom WebChat widgets. Compared to developing a custom chat UI and using the chat REST API, WebChatService dramatically simplifies integration—improving the reliability, feature set, and compatibility of every widget on the bus.&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
&lt;br /&gt;
WebChatService and the matching WebChat widget work together right out of the box and they share the same configuration object. Using WebChat uses WebChatService.&lt;br /&gt;
&lt;br /&gt;
You can also use WebChatService as a high-level API using bus commands and events to build your own WebChat widget or other UI features based on WebChatService events.&lt;br /&gt;
&lt;br /&gt;
===Namespace===&lt;br /&gt;
&lt;br /&gt;
The WebChat Service plugin has the following namespaces tied to each of the following types:&lt;br /&gt;
&lt;br /&gt;
{{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Namespace&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}{{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=config|display text=Configuration}}&lt;br /&gt;
{{!}}{{!}}webchat&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}CXBus—{{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=commands|display text=API commands}} &amp;amp; {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=events|display text=API events}}&lt;br /&gt;
{{!}}{{!}}WebChatService&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
===Customization===&lt;br /&gt;
&lt;br /&gt;
WebChatService has many configuration options but no customization options. It is a plug-and-play plugin and works as is.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Configuration&lt;br /&gt;
|anchor=config&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=WebChat and WebChatService share the '''_genesys.widgets.webchat''' configuration namespace. WebChat contains the UI options and WebChatService contains the connection options.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Starting with version 9.0.008.04, WebChatService allows you to choose between the types of chat services available in Genesys via the transport section in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=options|display text=configuration options}}.|}}&lt;br /&gt;
&lt;br /&gt;
{{AnchorDiv|example}}&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// When using v2 API &lt;br /&gt;
&lt;br /&gt;
window._genesys.widgets.webchat = {&lt;br /&gt;
&lt;br /&gt;
	apikey: 'n3eNkgxxxxxxxxxxxx8VA',&lt;br /&gt;
	dataURL: 'https://api.genesyscloud.com/gms-chat/2/chat',&lt;br /&gt;
	enableCustomHeader: true,&lt;br /&gt;
&lt;br /&gt;
	userData: {},&lt;br /&gt;
	emojis: true,&lt;br /&gt;
	actionsMenu: true,&lt;br /&gt;
&lt;br /&gt;
	autoInvite: {&lt;br /&gt;
&lt;br /&gt;
		enabled: false,&lt;br /&gt;
		timeToInviteSeconds: 10,&lt;br /&gt;
		inviteTimeoutSeconds: 30&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	chatButton: {&lt;br /&gt;
&lt;br /&gt;
		enabled: true,&lt;br /&gt;
		template: '&amp;lt;div&amp;gt;CHAT NOW&amp;lt;/div&amp;gt;',&lt;br /&gt;
		effect: 'fade',&lt;br /&gt;
		openDelay: 1000,&lt;br /&gt;
		effectDuration: 300,&lt;br /&gt;
		hideDuringInvite: true&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// When using v3 API&lt;br /&gt;
&lt;br /&gt;
window._genesys.widgets.webchat = {&lt;br /&gt;
&lt;br /&gt;
	emojis: true,&lt;br /&gt;
	userData: {},&lt;br /&gt;
	transport: {&lt;br /&gt;
&lt;br /&gt;
		type: 'pureengage-v3-rest',&lt;br /&gt;
		dataURL: https://&amp;lt;hostname&amp;gt;/nexus/v3/chat/sessions,&lt;br /&gt;
		endpoint: 'xxxxxxxxx',&lt;br /&gt;
		headers: {&lt;br /&gt;
			'x-api-key': 'xxxxxxxx'&lt;br /&gt;
		},&lt;br /&gt;
		async: {&lt;br /&gt;
&lt;br /&gt;
			enabled: true, &lt;br /&gt;
&lt;br /&gt;
			getSessionData: function(sessionData, Cookie, CookieOptions) {&lt;br /&gt;
&lt;br /&gt;
				// Note: You don't have to use cookies. You can, instead, store in a secured location like a database.&lt;br /&gt;
				Cookie.set('customer-defined-session-cookie', JSON.stringify(sessionData), CookieOptions);&lt;br /&gt;
			},&lt;br /&gt;
&lt;br /&gt;
			setSessionData: function(Open, Cookie, CookieOptions) {&lt;br /&gt;
&lt;br /&gt;
				// Retrieve from your secured location.&lt;br /&gt;
				return Cookie.get('customer-defined-session-cookie');&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
&lt;br /&gt;
	chatButton: {&lt;br /&gt;
&lt;br /&gt;
		enabled: true,&lt;br /&gt;
		template: '&amp;lt;div&amp;gt;CHAT NOW&amp;lt;/div&amp;gt;',&lt;br /&gt;
		effect: 'fade',&lt;br /&gt;
		openDelay: 1000,&lt;br /&gt;
		effectDuration: 300,&lt;br /&gt;
		hideDuringInvite: true&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{AnchorDiv|options}}&lt;br /&gt;
===Options===&lt;br /&gt;
&lt;br /&gt;
{{AnchorDiv|v2}}&lt;br /&gt;
====Version 2 API====&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
!Default&lt;br /&gt;
!Required&lt;br /&gt;
!Introduced/Updated&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}apikey&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Apigee Proxy secure token.{{NoteFormat|This option is only supported in GMS REST mode.|}}&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}Yes, if using Apigee Proxy&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}endpoint&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Manually select the endpoint on which to initiate chat.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}dataURL&lt;br /&gt;
{{!}}string (URL)&lt;br /&gt;
{{!}}URL for GMS REST chat service. If cometD.enabled is set to true, this property will be ignored.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}Always&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}enableCustomHeader&lt;br /&gt;
{{!}}boolean&lt;br /&gt;
{{!}}Enables the use of the custom authorization header defined in _genesys.widgets.main.header static config. Attaches the custom authorization header to all WebChatService request.&lt;br /&gt;
{{!}}false&lt;br /&gt;
{{!}}No&lt;br /&gt;
{{!}}9.0.002.06&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}userData&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}Arbitrary attached data to include when initiating a chat.&lt;br /&gt;
{{!}}{}&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}ajaxTimeout&lt;br /&gt;
{{!}}number&lt;br /&gt;
{{!}}Number of milliseconds to wait before AJAX timeout.&lt;br /&gt;
{{!}}3000&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}xhrFields&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}Allows you to set the properties for the AJAX xhrFields object (for example, {withCredentials: false}).{{NoteFormat|This option is only supported in GMS REST mode.|}}&lt;br /&gt;
{{!}}{withCredentials: false}&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}pollExceptionLimit&lt;br /&gt;
{{!}}number&lt;br /&gt;
{{!}}Number of successive poll exceptions (chat server offline) before WebChatService publishes 'chatServerWentOffline'.&lt;br /&gt;
{{!}}5&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}restoreTimeout&lt;br /&gt;
{{!}}number&lt;br /&gt;
{{!}}Number of milliseconds before restore timeout. Prevents the chat session from restoring after a certain time away from the session (for example, user navigated to a different site during chat and never ended the session).&lt;br /&gt;
{{!}}60000&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
{{AnchorDiv|v3}}&lt;br /&gt;
====Version 3 API====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
!Default&lt;br /&gt;
!Required&lt;br /&gt;
!Introduced/Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}Object containing the transport service configuration options.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}Yes, when using new transport services available with WebChat.&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.type&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Select the type of transport service that needs to work with WebChat UI plugin. For Pure Engage v3 REST API, the value is 'pureengage-v3-rest'.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}Yes, when using Pure Engage v3 REST API.&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.dataURL&lt;br /&gt;
{{!}}string (URL)&lt;br /&gt;
{{!}}URL for Pure Engage v3 REST API chat service. Please contact your local Genesys customer representative to obtain a valid dataURL.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}Always&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.endpoint&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The endpoint for Genesys Multicloud CX v3 API.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}Yes&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.headers&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}Object containing key value pairs of any custom headers.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}Yes&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.headers[x-api-key]&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The API key provided from Genesys. Please contact your local Genesys customer representative to obtain a valid API key.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}Yes&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.async&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}Object containing Async mode configuration options.{{NoteFormat|To properly restore a chat session that has ended previously, you'll need to navigate back to the page and open the WebChat Widget. This way, the chat session is restored in the background and is ready. Presently, this is a current limitation in Async WebChat.|}}&lt;br /&gt;
{{!}}{}&lt;br /&gt;
{{!}}No&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.async.enabled&lt;br /&gt;
{{!}}boolean&lt;br /&gt;
{{!}}Enable Asynchronous Chat where a chat session can be active indefinitely. When you close WebChat without ending the chat session, the session will simply go dormant. When you open WebChat again, the session will restore and continue chatting where left off.&lt;br /&gt;
{{!}}false&lt;br /&gt;
{{!}}Yes, when Async WebChat mode is enabled&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.async.getSessionData&lt;br /&gt;
{{!}}function&lt;br /&gt;
{{!}}A function that you can define to retrieve updated session data from the WebChatService plugin. This function is called back when starting a new Async chat session for the first time, or when the sessionData changes over the course of an active chat session. This function takes the following arguments: sessionData (current active session data), Cookie (Widgets Internal cookie reference), and CookieOptions (a parameter that is needed when using Widgets Cookie). The purpose of this function is to provide you with the active session data so that it can be stored somewhere safe and secure. Later this needs to be provided in the below '''setSessionData''' function to restore the chat session. Refer to the {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=example|display text=example}} for usage.&lt;br /&gt;
{{!}}none&lt;br /&gt;
{{!}}Yes, when Async WebChat mode is enabled&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.async.setSessionData&lt;br /&gt;
{{!}}function&lt;br /&gt;
{{!}}A function that you can define to return the session data to the WebChatService plugin. During initialization, the WebChatService plugin will call this function to check if any session data is returned. If found, WebChatService tries to restore the chat session using this session data and open the WebChat Widget. WebChatService will also pass the following arguments into this function: Open (WebChat current open state value), Cookie (Widgets Internal cookie reference), and CookieOptions (a parameter that isneeded when using Widgets Cookie). Refer to the {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=example|display text=example}} for usage.&lt;br /&gt;
{{!}}none&lt;br /&gt;
{{!}}Yes, when Async WebChat mode is enabled&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}transport.async.deleteSessionData&lt;br /&gt;
{{!}}function&lt;br /&gt;
{{!}}A function that you can define to delete the session data from your secret storage, it will be called by WebChatService plugin when Async chat session is lost or cannot find anymore due to unknown reasons. This function will enable you write the script for deleting the session data from your secret storage, in this way WebChat will try to start a new chat normally rather than trying to restore a lost chat session. WebChatService will also pass the following arguments into this function - errorData (lost session and error details), Cookie (Widgets Internal cookie reference) and CookieOptions (a parameter that will be needed when using Widgets Cookie).&lt;br /&gt;
{{!}}none&lt;br /&gt;
{{!}}Yes, when Async WebChat mode is enabled&lt;br /&gt;
{{!}}9.0.015.12&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}userData&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}Arbitrary attached data to include when initiating a chat.&lt;br /&gt;
{{!}}{}&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}ajaxTimeout&lt;br /&gt;
{{!}}number&lt;br /&gt;
{{!}}Number of milliseconds to wait before AJAX timeout.&lt;br /&gt;
{{!}}3000&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Localization&lt;br /&gt;
|anchor=localize&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=WebChatService doesn't have any localization options.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=API commands&lt;br /&gt;
|anchor=commands&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Once you've registered your plugin on the bus, you can call commands on other registered plugins. Here's how to use the global bus object to register a new plugin on the bus.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|The global bus object is a debugging tool. When implementing Widgets on your own site, do not use the global bus object to register your custom plugins. Instead, see {{Link-SomewhereInThisVersion|manual=SDK|topic=GWCBusExtensions|display text=Genesys Widgets Extensions}} for more information about extending Genesys Widgets.|1}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin');&lt;br /&gt;
&lt;br /&gt;
oMyPlugin.command('WebChatService.getAgents');&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Starting with version 9.0.008.04, WebChatService allows you to choose between the types of chat API services available in Genesys via the transport section configuration options. For more information, see the Options table in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=options|display text=configuration options}}.|1}}&lt;br /&gt;
&lt;br /&gt;
===configure===&lt;br /&gt;
&lt;br /&gt;
Internal use only. The main App plugin shares configuration settings to widgets using each widget’s &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; command. The &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; command can only be called once at startup. Calling &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; again after startup may result in unpredictable behavior.&lt;br /&gt;
&lt;br /&gt;
===startChat===&lt;br /&gt;
&lt;br /&gt;
Initiates a new chat session with the chat server via GES or with the service configured under the transport section. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.startChat', {&lt;br /&gt;
&lt;br /&gt;
  form:{&lt;br /&gt;
  	nickname: 'Jonny',&lt;br /&gt;
  	firstname: 'Johnathan',&lt;br /&gt;
  	lastname: 'Smith',&lt;br /&gt;
  	email: 'jon.smith@mail.com',&lt;br /&gt;
  	subject: 'product questions',&lt;br /&gt;
  	userData: {}&lt;br /&gt;
  }&lt;br /&gt;
}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService started a chat successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to start chat&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}nickname&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Chat Entry Form Data: 'nickname'.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}firstname&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Chat Entry Form Data: 'firstname'.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}lastname&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Chat Entry Form Data: 'lastname'.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}email&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Chat Entry Form Data: 'email'.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}subject&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Chat Entry Form Data: 'subject'.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}userData&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}Arbitrary data to attach to the chat session (AKA attachedData). Properties defined here will be merged with default userData set in the configuration object.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Server confirms session started&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}A chat session is already active&lt;br /&gt;
{{!}}'There is already an active chat session'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}AJAX exception occurs&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Server exception occurs&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}userData is invalid&lt;br /&gt;
{{!}}'malformed data object provided in userData property'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===endChat===&lt;br /&gt;
&lt;br /&gt;
Ends the chat session with the chat server via GES or with the service configured under transport section. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.endChat').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService ended a chat successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to end chat&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Active session is ended successfully&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}No chat session is currently active&lt;br /&gt;
{{!}}'There is no active chat session'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===sendMessage===&lt;br /&gt;
&lt;br /&gt;
Sends a message from the client to the chat session. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.sendMessage', {message: 'hi'}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService sent a message successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to send a message&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}message&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The message you want to send&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Message is successfully sent&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}No message text provided&lt;br /&gt;
{{!}}'No message text provided'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}No chat session is currently active&lt;br /&gt;
{{!}}'There is no active chat session'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}AJAX exception occurs&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===sendCustomNotice===&lt;br /&gt;
&lt;br /&gt;
Sends a custom notice from the client to the chat server. This request is used to deliver any custom notification between a custom client application and a custom agent desktop. Neither Genesys Widgets, nor Workspace, uses this out of the box.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.sendCustomNotice', {message: 'bye'}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService sent a custom message successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to send a custom message&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}message&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}A message you want to send along with the custom notice&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
!Introduced/Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Message is successfully sent&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}AJAX exception occurs&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The server doesn't support receiving custom notices&lt;br /&gt;
{{!}}This transport doesn't support sendCustomNotice command.&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===sendTyping===&lt;br /&gt;
&lt;br /&gt;
Sends a &amp;quot;''Customer typing''&amp;quot; notification to the chat session. A visual indication will be shown to the agent. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.sendTyping').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService sent typing successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to send typing&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Message&lt;br /&gt;
{{!}}String&lt;br /&gt;
{{!}}The message you want to send along with the typing notification&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}AJAX request is successful&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}AJAX exception occurs&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}No chat session is currently active&lt;br /&gt;
{{!}}'There is no active chat session'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
{{AnchorDiv|sfm}}&lt;br /&gt;
===sendFilteredMessage===&lt;br /&gt;
&lt;br /&gt;
Sends a message along with a regular expression to match the message and hide it from the client. Useful for sending codes and tokens through the WebChat interface to the Agent Desktop.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Filters are now automatically stored and recalled on chat restore for the duration of the session.}}&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.sendFilteredMessage', {&lt;br /&gt;
&lt;br /&gt;
	message: 'filtered message',&lt;br /&gt;
	regex: /[a-zA-Z]/&lt;br /&gt;
&lt;br /&gt;
}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService sent filtered message successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to send filtered message&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}message&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Message you want to send but don't want to appear in the transcript&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}regex&lt;br /&gt;
{{!}}RegExp&lt;br /&gt;
{{!}}Regular expression to match the message&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}There is an active session&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}No chat session is currently active&lt;br /&gt;
{{!}}'No active chat session'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
 {{AnchorDiv|ap}}&lt;br /&gt;
===addPrefilter===&lt;br /&gt;
&lt;br /&gt;
Adds a new pre-filter regular expression to the pre-filter list. Any messages matched using the pre-filters will not be shown in the transcript&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Filters are now automatically stored and recalled on chat restore for the duration of the session.}}&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.addPrefilter', {filters: /[a-zA-Z]/}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService added filter successfully&lt;br /&gt;
	// e == Object of registered prefilters&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to add filter&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}filters&lt;br /&gt;
{{!}}RegExp or Array of RegExp&lt;br /&gt;
{{!}}Regular Expression(s) to add to the prefilter list&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Valid filters are provided&lt;br /&gt;
{{!}}Array of all registered prefilters.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Invalid or missing filters provided&lt;br /&gt;
{{!}}'Missing or invalid filters provided. Please provide a regular expression or an array of regular expressions.'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===updateUserData===&lt;br /&gt;
&lt;br /&gt;
Updates the userData properties associated with the chat session. If this command is called before a chat session starts, it will update the internal userData object and will be sent when a chat session starts. If this command is called after a chat session starts, a request to the server will be made to update the userData on the server associated with the chat session.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.updateUserData', {firstname: 'Joe'}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService updated user data successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to update user data&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}userData object you want to send to the server for this active session&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
!Introduced/Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Session is active and userData is successfully sent&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Session is active and AJAX exception occurs&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Session is not active and internal userData object is merged with new userData properties provided&lt;br /&gt;
{{!}}The internal userData object that will be sent to the server&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Session is active and the server doesn't support updating userData&lt;br /&gt;
{{!}}This transport doesn't support updating userData during an active chat session.&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===poll===&lt;br /&gt;
&lt;br /&gt;
Internal use only. Starts polling for new messages. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.poll').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService started polling successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to start polling&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
!Introduced/Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}There is an active session&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}WebChatService isn't calling this command&lt;br /&gt;
{{!}}'Access Denied to private command. Only WebChatService is allowed to invoke this command.'&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}No chat session is currently active&lt;br /&gt;
{{!}}'previous poll has not finished.'&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The server doesn't support polling&lt;br /&gt;
{{!}}'This transport doesn't support polling.'&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===startPoll===&lt;br /&gt;
&lt;br /&gt;
Starts automatic polling for new messages. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.startPoll').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService started polling successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to start polling&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
!Introduced / Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}There is an active session&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}No chat session is currently active&lt;br /&gt;
{{!}}No active chat session&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The server doesn't support polling&lt;br /&gt;
{{!}}This transport doesn't support polling&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===stopPoll===&lt;br /&gt;
&lt;br /&gt;
Stops automatic polling for new messages. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.stopPoll').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService stopped polling successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to stop polling&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
!Introduced / Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}There is an active session&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}No chat session is currently active&lt;br /&gt;
{{!}}No active chat session&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The server doesn't support polling&lt;br /&gt;
{{!}}This transport doesn't support polling&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===resetPollExceptions===&lt;br /&gt;
&lt;br /&gt;
Resets the poll exception count to 0. pollExceptionLimit is set in the configuration.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.resetPollExceptions').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService reset polling successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to reset polling&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
!Introduced / Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Always&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The server doesn't support polling&lt;br /&gt;
{{!}}This transport doesn't support resetPollExceptions command.&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===restore===&lt;br /&gt;
&lt;br /&gt;
Internal use only. You should not invoke this manually unless you are using Async mode.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.restore').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService restored successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to restore&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
!Accepted Values&lt;br /&gt;
!Introduced / Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}sessionData&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The session data that is needed to restore the WebChat in Async mode. It is a JWT token string value. Applicable only when using WebChat with Genesys Multicloud CX v3 API. For more information, see the “Genesys Multicloud CX v3” tab in the “Options” table in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=options|display text=configuration options}}.&lt;br /&gt;
{{!}}(JWT string token)&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
!Introduced / Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Session has been found&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Session cannot be found&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Restoring chat session is in progress&lt;br /&gt;
{{!}}Already restoring. Ignoring request.&lt;br /&gt;
{{!}}9.0.002.06&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Chat session is already active&lt;br /&gt;
{{!}}Chat session is already active, ignoring restore command.&lt;br /&gt;
{{!}}9.0.002.06&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Trying restore chat session manually&lt;br /&gt;
{{!}}Access Denied to private command. Only WebChatService is allowed to invoke this command in Non-Async mode.&lt;br /&gt;
{{!}}9.0.002.06&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===getTranscript===&lt;br /&gt;
&lt;br /&gt;
Fetches an array of all messages in the chat session.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|1=For more information on the fields included in JSON response, see {{#Widget:ExtLink|link=https://docs.genesys.com/Documentation/GMS/latest/API/APIResponses#Digital_Channels_Chat_V2_Response_Format|displaytext=Digital Channels Chat V2 Response Format}}.|2=}}&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.getTranscript').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService got transcript successfully&lt;br /&gt;
	// e == Object with an array of messages&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to get transcript&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Always&lt;br /&gt;
{{!}}Object with an array of messages&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===getAgents===&lt;br /&gt;
&lt;br /&gt;
Return a list of agents currently participating in the chat. Includes agent metadata.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.getAgents').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService got agents successfully&lt;br /&gt;
	// e == Object with agents information in chat&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to get agents&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Always&lt;br /&gt;
{{!}}(Object List) {name: (String), connected: (Boolean), supervisor: (Boolean), connectedTime: (int time),disconnectedTime: (int time)}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===getStats===&lt;br /&gt;
&lt;br /&gt;
Returns stats on chat session including start time, end time, duration, and list of agents.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.getStats').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService got stats successfully&lt;br /&gt;
	// e == Object with chat session stats&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to get stats&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Always&lt;br /&gt;
{{!}}{agents: (Object), startTime: (int time), endTime: (int time), duration: (int time)}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===sendFile===&lt;br /&gt;
&lt;br /&gt;
'''[Introduced: 9.0.008.04]'''&lt;br /&gt;
&lt;br /&gt;
Sends the file from the client machine to the agent.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.sendFile', {files: $('&amp;lt;input/&amp;gt;').attr('type', 'file') /* Only works on UI, can not dynamically change */ }).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService sent file successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to send file&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}files&lt;br /&gt;
{{!}}File&lt;br /&gt;
{{!}}A reference to a file input element (for example &amp;lt;input type=“file”/&amp;gt;)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}The file sent is a valid type and size&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The file sent is an invalid type&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The number of uploads is exceeded&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The file size exceeds the limit&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The file size is too large or an unknown error occurs&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The server doesn't support file uploads&lt;br /&gt;
{{!}}This transport doesn't support file uploads&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===downloadFile===&lt;br /&gt;
&lt;br /&gt;
====Downloads the file to the client machine.   Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.downloadFile', {fileId: '1', fileName: 'myfile.txt'}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService sent file successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to send file&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}field&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}This is the id of the file to be downloaded from the session&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}The file is downloaded successfully&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===getSessionData===&lt;br /&gt;
&lt;br /&gt;
'''[Introduced: 9.0.002.06]'''&lt;br /&gt;
&lt;br /&gt;
Retrieves the active session data at any time.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.getSessionData')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
!Introduced / Updated&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Always, when using Chat via GMS API. For more information, see the 'GMS' tab in the 'Options' table in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=options|display text=configuration options}}.&lt;br /&gt;
{{!}}{secureKey: (string), sessionID: (number/string), alias: (number/string), userId: (number/string)}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Always, when using Chat via Genesys Multicloud CX v3 API. For more information, see the 'Genesys Multicloud CX v3' tab in the 'Options' table in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=options|display text=configuration options}}.&lt;br /&gt;
{{!}}{participantId: (string), sessionId: {string), token: (string), transportId: (string)}&lt;br /&gt;
{{!}}9.0.008.04&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Never&lt;br /&gt;
{{!}}undefined&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===fetchHistory===&lt;br /&gt;
&lt;br /&gt;
'''[Introduced: 9.0.008.04]'''&lt;br /&gt;
&lt;br /&gt;
This applies only in Asynchronous mode to fetch older chat messages. It does not fetch all of the messages at once; rather a certain number of messages are fetched every time this command is called. Response data will be available in the {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=events|display text=messageReceived}} event. This internal command determines the last received message index and, based on this information, fetches older messages whenever it is called.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.fetchHistory')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Old messages are retrieved&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Request fails&lt;br /&gt;
{{!}}(AJAX Response Object)&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Asynchronous mode is not enabled&lt;br /&gt;
{{!}}Fetching history messages applies only to Asynchronous chat&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}All messages are received&lt;br /&gt;
{{!}}No more messages to fetch&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===registerTypingPreviewInput===&lt;br /&gt;
&lt;br /&gt;
Selects an HTML input to watch for key events. Used to trigger startTyping and stopTyping automatically. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.registerTypingPreviewInput', {input: $('input') }).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService registered input area successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// WebChatService failed to register typing preview&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}input&lt;br /&gt;
{{!}}HTML Reference&lt;br /&gt;
{{!}}An HTML reference to a text or textarea input&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}Valid HTML input reference is provided&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}Invalid or missing HTML input reference&lt;br /&gt;
{{!}}'Invalid value provided for the 'input' property. An HTML element reference to a textarea or text input is required.'&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
&lt;br /&gt;
===registerPreProcessor===&lt;br /&gt;
&lt;br /&gt;
Registers a function that receives the message object, allowing you to manipulate the values before it is rendered in the transcript.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.registerPreProcessor', {preprocessor: function(message){&lt;br /&gt;
 	message.text = message.text + ' some preprocessing text'; &lt;br /&gt;
 	return message;&lt;br /&gt;
 } }).done(function(e){&lt;br /&gt;
 	// WebChatService registered preprocessor function&lt;br /&gt;
 	// e == function that was registered&lt;br /&gt;
 }).fail(function(e){&lt;br /&gt;
 	// WebChatService failed to register function&lt;br /&gt;
 });&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Option&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}preprocessor&lt;br /&gt;
{{!}}function&lt;br /&gt;
{{!}}The preprocessor function you want to register.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}A valid preprocessor function is provided and is registered&lt;br /&gt;
{{!}}The registered preprocessor function.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}An invalid preprocessor function is provided&lt;br /&gt;
{{!}}No preprocessor function provided. Type provided was '&amp;lt;DATATYPE&amp;gt;'.&amp;lt;br /&amp;gt;&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
===verifySession===&lt;br /&gt;
Checks for existing WebChat session before triggering a proactive invite.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('WebChatService.verifySession').done(function(e){&lt;br /&gt;
               if(e.sessionActive) {&lt;br /&gt;
                              // dont show chat invite &lt;br /&gt;
               } else if(!e.sessionActive) {&lt;br /&gt;
                              if(oMyPlugin.data('WebChat.open') == false){&lt;br /&gt;
                                             // show chat invite &lt;br /&gt;
                              } else {&lt;br /&gt;
                                             // dont trigger chat invite &lt;br /&gt;
                              } &lt;br /&gt;
               } &lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
               // verifySession not supported for the transport&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}+&lt;br /&gt;
!Status&lt;br /&gt;
!When&lt;br /&gt;
!Returns&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}resolved&lt;br /&gt;
{{!}}A session exists or not&lt;br /&gt;
{{!}}A boolean ''sessionActive'', which holds the session state&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}rejected&lt;br /&gt;
{{!}}The ''verifySession'' command is not supported for this transport&lt;br /&gt;
{{!}}This transport doesn't support the ''verifySession'' command&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=API events&lt;br /&gt;
|anchor=events&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Once you've registered your plugin on the bus, you can subscribe to and listen for published events. Here's how to use the global bus object to register a new plugin on the bus.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|The global bus object is a debugging tool. When implementing Widgets on your own site, do not use the global bus object to register your custom plugins. Instead, see {{Link-SomewhereInThisVersion|manual=SDK|topic=GWCBusExtensions|display text=Genesys Widgets Extensions}} for more information about extending Genesys Widgets.|1}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin');&lt;br /&gt;
&lt;br /&gt;
oMyPlugin.subscribe('WebChatService.ready', function(e){});&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Data&lt;br /&gt;
!Introduced/updated&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}ready&lt;br /&gt;
{{!}}WebChatService is initialized and ready to accept commands.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}restored&lt;br /&gt;
{{!}}Chat session has been restored after page navigation or refresh. In Asynchronous mode, this event includes data indicating whether a chat session has been restored in Async mode or not.&lt;br /&gt;
{{!}}{async: (boolean)}&lt;br /&gt;
{{!}}9.0.002.06&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}restoreTimeout&lt;br /&gt;
{{!}}Chat session restoration attempted was denied after user navigated away from originating website for longer than the time limit: default 60 seconds.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}restoreFailed&lt;br /&gt;
{{!}}Could not restore chat session after page navigation or refresh.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}restoredOffline&lt;br /&gt;
{{!}}Chat session was restored normally but chat server is offline. This means no messages can come through. When chat server is comes back online, 'chatServerBackOnline' is published.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}messageReceived&lt;br /&gt;
{{!}}A new message has been received from the server. Includes text messages, status messages, notices, and other message types.&lt;br /&gt;
{{!}}{originalMessages: (object), messages: (array of objects), restoring: (boolean), sessionData: (object)}&lt;br /&gt;
{{!}}9.0.002.06&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}error&lt;br /&gt;
{{!}}An error occurred between the client and the server.&lt;br /&gt;
{{!}}(AJAX Response)&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}started&lt;br /&gt;
{{!}}Chat session has successfully started.&lt;br /&gt;
{{!}}(AJAX Response containing session data)&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}ended&lt;br /&gt;
{{!}}Chat session has successfully ended.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}agentTypingStarted&lt;br /&gt;
{{!}}Agents has started typing a new message.&lt;br /&gt;
{{!}}(AJAX Response)&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}agentTypingStopped&lt;br /&gt;
{{!}}Agent has stopped typing.&lt;br /&gt;
{{!}}(AJAX Response)&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}pollingStarted&lt;br /&gt;
{{!}}Chat server automatic polling has started.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}pollingStopped&lt;br /&gt;
{{!}}Chat server automatic polling has stopped.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}clientConnected&lt;br /&gt;
{{!}}Indicates the user has been connected to the chat session.&lt;br /&gt;
{{!}}{message: (object), agents: (object), numAgentsConnected: (number)}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}clientDisconnected&lt;br /&gt;
{{!}}Indicates the user has been disconnected form the chat session.&lt;br /&gt;
{{!}}{message: (object), agents: (object), numAgentsConnected: (number)}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}agentConnected&lt;br /&gt;
{{!}}Indicates an agent has connected to the chat.&lt;br /&gt;
{{!}}{message: (object), agents: (object), numAgentsConnected: (number)}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}agentDisconnected&lt;br /&gt;
{{!}}Indicates an agent has disconnected from the chat.&lt;br /&gt;
{{!}}{message: (object), agents: (object), numAgentsConnected: (number)}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}supervisorConnected&lt;br /&gt;
{{!}}Indicates a supervisor has connected to the chat.&lt;br /&gt;
{{!}}{message: (object), agents: (object), numAgentsConnected: (number)}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}supervisorDisconnected&lt;br /&gt;
{{!}}Indicates a supervisor has disconnected from the chat.&lt;br /&gt;
{{!}}{message: (object), agents: (object), numAgentsConnected: (number)}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}botConnected&lt;br /&gt;
{{!}}Indicates a bot has connected to the chat.&lt;br /&gt;
{{NoteFormat|This event is applicable only when using {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=v2|display text=v2 API}}.|}}&lt;br /&gt;
{{!}}{message: (object), agents: (object), numAgentsConnected: (number)}&lt;br /&gt;
{{!}}9.0.014.13&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}botDisconnected&lt;br /&gt;
{{!}}Indicates a bot has disconnected from the chat.&lt;br /&gt;
{{NoteFormat|This event is applicable only when using {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=v2|display text=v2 API}}.|}}&lt;br /&gt;
{{!}}{message: (object), agents: (object), numAgentsConnected: (number)}&lt;br /&gt;
{{!}}9.0.014.13&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}clientTypingStarted&lt;br /&gt;
{{!}}The user has started typing. Sends an event to the agent.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}clientTypingStopped&lt;br /&gt;
{{!}}After a user stops typing, a countdown begins. When the countdown completes, the typing notification will clear for the agent.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}disconnected&lt;br /&gt;
{{!}}Cannot reach servers. No connection. Either the user is offline or the server is offline.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}reconnected&lt;br /&gt;
{{!}}Connection restored. This event is only published after 'disconnected'.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}chatServerWentOffline&lt;br /&gt;
{{!}}Chat server has gone offline but chat session has not ended. New messages are temporarily unavailable. This event is published only after the configuration option 'pollExceptionLimit' has been exceeded. Default limit is 5 poll exceptions. 'restoredOffline' is an alternate to this event that is used only when the chat server is down while trying to restore your chat session. The reason for having two events is to allow for separate handling of both scenarios. {{NoteFormat|This event is applicable only when using {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=v2|display text=v2 API}}.|}}&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}chatServerBackOnline&lt;br /&gt;
{{!}}Chat server had come back online after going offline. This will only be published after 'chatServerWentOffline'.&lt;br /&gt;
{{NoteFormat|This event is applicable only when using {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=v2|display text=v2 API}}.|}}&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}connectionPending&lt;br /&gt;
{{!}}If there is a connection problem and WebChatService is trying to reconnect, this event will be published. Published before 'chatServerWentOffline'.&lt;br /&gt;
{{NoteFormat|This event is applicable only when using {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=v2|display text=v2 API}}.|}}&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}connectionRestored&lt;br /&gt;
{{!}}Is published when the connection has be reestablished. Publishes at the same time as 'chatServerBackOnline'.&lt;br /&gt;
{{!}}n/a&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/GenesysWidgets/9.0.017.30&amp;diff=116090</id>
		<title>RN/GenesysWidgets/9.0.017.30</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/GenesysWidgets/9.0.017.30&amp;diff=116090"/>
		<updated>2022-02-17T14:28:10Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=7802d66f-e043-41e3-8ef9-fa8f01a5d482&lt;br /&gt;
|JQL=https://inindca.atlassian.net/&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a&lt;br /&gt;
|ReleaseDate=2022-02-11&lt;br /&gt;
|Highlight=This release includes important improvements and fixes to the WebChat Widget.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=CXW-284&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|LocalContent=In the WebChat Widget for Genesys Multicloud CX v3, the stream configuration property is now sent correctly during the WebChat restore process. Previously, in certain instances, the stream property would sometimes be missing while restoring the Async WebChat Widget.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/AgentSetup/9.0.000.92&amp;diff=115720</id>
		<title>RN/AgentSetup/9.0.000.92</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/AgentSetup/9.0.000.92&amp;diff=115720"/>
		<updated>2022-02-01T20:48:54Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=edfa30cc-f909-4114-b72e-0934810e3cd4&lt;br /&gt;
|JQL=issue = GAPI-30852&lt;br /&gt;
|DeploymentTypeId=8b480b3c-2733-433a-9166-eab2c2d0663a&lt;br /&gt;
|ReleaseDate=2022-02-01&lt;br /&gt;
|PrivateEditionReleaseDate=2022-02-01&lt;br /&gt;
|Highlight=This release includes important improvements and fixes for Private Edition.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|IssueCategoryId=a8930ebb-8e46-4ecd-993f-cdd2d61bc400&lt;br /&gt;
|LocalContent=As of February 1, 2022, all Resolved Issues found in Agent Setup [[Draft:ReleaseNotes/Current/GenesysEngage-cloud/Agent Setup#Agent%20Setup-9.0.000.91|9.0.000.91]] are now also available for Private Edition.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:Outbound_Dec2020_GAPI-24898.png&amp;diff=115569</id>
		<title>File:Outbound Dec2020 GAPI-24898.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:Outbound_Dec2020_GAPI-24898.png&amp;diff=115569"/>
		<updated>2022-01-21T19:38:57Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Mgionet uploaded a new version of File:Outbound Dec2020 GAPI-24898.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:Outbound_Dec2020_GAPI-24898.png&amp;diff=115568</id>
		<title>File:Outbound Dec2020 GAPI-24898.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:Outbound_Dec2020_GAPI-24898.png&amp;diff=115568"/>
		<updated>2022-01-21T19:37:15Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Mgionet uploaded a new version of File:Outbound Dec2020 GAPI-24898.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=WID/Current/SDK/Calendar-combined&amp;diff=115338</id>
		<title>WID/Current/SDK/Calendar-combined</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=WID/Current/SDK/Calendar-combined&amp;diff=115338"/>
		<updated>2022-01-17T12:33:30Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Calendar&lt;br /&gt;
|TocName=Calendar&lt;br /&gt;
|Context=Learn how to display a calendar, so your customers can choose when they want to be contacted.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Developer&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|sectionHeading=Overview&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=The Calendar UI plugin displays time slots for a selected day. The number of days to display—and the opening and closing times for a day—are configurable, as shown in the {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=config|display text=configuration}} section.&lt;br /&gt;
&lt;br /&gt;
[[File:Calendar MainScreen 04032020.jpg|546x546px|alt=The Calendar UI displays a list of dates and times to choose from]]&lt;br /&gt;
===Usage===&lt;br /&gt;
{{NoteFormat|By default, the Calendar widget needs a UI container to display itself properly. For information about how to create and display a calendar, see the {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=events|display text=API events}} section.|}}&lt;br /&gt;
&lt;br /&gt;
*Enable or disable certain sections of a day using {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=config|display text=calendarHours.section.enable}}&lt;br /&gt;
*Define your own business hours for each section of a day using {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=config|display text=calendarHours.section.openTime}} and {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=config|display text=calendarHours.section.closeTime}}&lt;br /&gt;
*Use {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=config|display text=showAvailability}} to enable only those time slots for which a customer service agent is available and disable the rest.&lt;br /&gt;
*Define your own {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=config|display text=time interval}} between each time slot.&lt;br /&gt;
&lt;br /&gt;
====How does the Calendar widget render time slots in local time zones?====&lt;br /&gt;
&lt;br /&gt;
#The Calendar widget uses the command &amp;lt;tt&amp;gt;showAvailability&amp;lt;/tt&amp;gt; which calls &amp;lt;tt&amp;gt;CallbackService.availability&amp;lt;/tt&amp;gt; with the start date. This start date is then converted into the [https://en.wikipedia.org/wiki/ISO_8601 ISO 8601] format, using UTC as the timezone by &amp;lt;tt&amp;gt;toISOString()&amp;lt;/tt&amp;gt;, internally.&lt;br /&gt;
#The Callback service fetches the available time slots from the server.&lt;br /&gt;
#The Calendar gets the available time slots from &amp;lt;tt&amp;gt;CallbackService.availableSlots&amp;lt;/tt&amp;gt; in the ISO 8601 format, using UTC as the timezone.&lt;br /&gt;
#Each and Every Time Slot is converted according to the user's local time zone internally through &amp;lt;tt&amp;gt;Date()&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;toTimeString()&amp;lt;/tt&amp;gt; methods in the Calendar Plugin.&lt;br /&gt;
&lt;br /&gt;
===Customization===&lt;br /&gt;
All the texts displayed by the Calendar Widget are fully {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=localize|display text=localizable}}.&lt;br /&gt;
===Namespace===&lt;br /&gt;
The Calendar plugin has the following namespaces tied to each of the following types: &lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: auto;&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Namespace&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}{{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=config|display text=Configuration}}&lt;br /&gt;
{{!}}{{!}}calendar&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}i18n - {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=localize|display text=Localization}}&lt;br /&gt;
{{!}}{{!}}calendar&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}CXBus—{{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=commands|display text=API commands}} &amp;amp; {{Link-SomewhereInThisVersion|manual=SDK|topic=Calendar-combined|anchor=events|display text=API events}}&lt;br /&gt;
{{!}}{{!}}Calendar&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}CSS&lt;br /&gt;
{{!}}{{!}}.cx-calendar&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
===Mobile support===&lt;br /&gt;
Calendar supports both desktop and mobile devices. Like all Genesys Widgets, there are two main modes: Desktop and Mobile. Desktop is used for monitors, portable computers, and tablets, while Mobile is used for mobile devices. When a mobile device is detected, Calendar switches to special full-screen templates that are optimized for both portrait and landscape orientations. &lt;br /&gt;
&lt;br /&gt;
Switching between Desktop and Mobile mode is done automatically by default. You can also configure Genesys Widgets to switch between Desktop and Mobile mode manually. &lt;br /&gt;
===Screenshots===&lt;br /&gt;
'''Dark theme'''&lt;br /&gt;
&lt;br /&gt;
[[File:Calendar_Mobile_Potrait_DarkMode_04032020.jpg|150x150px|Mobile fullscreen view in portrait orientation|alt=Mobile full screen view in portrait orientation in Dark Mode]]&lt;br /&gt;
[[File:Calendar_Mobile_Landscape_DarkMode_04032020.jpg|150x150px|Mobile fullscreen view in landscape orientation|alt=Mobile full screen view in landscape orientation in Dark Mode]]&lt;br /&gt;
&lt;br /&gt;
'''Light theme'''&lt;br /&gt;
&lt;br /&gt;
[[File:Calendar_Mobile_Potrait_LightMode_04032020.jpg|150x150px|Mobile fullscreen view in portrait orientation|alt=Mobile full screen view in portrait orientation in Light Mode]]&lt;br /&gt;
[[File:Calendar_Mobile_Landscape_LightMode_04032020.jpg|150x150px|Mobile fullscreen view in landscape orientation|alt=Mobile full screen view in landscape orientation in Light Mode]]&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Configuration&lt;br /&gt;
|anchor=config&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext====Description===&lt;br /&gt;
Calendar shares the '''_genesys.widgets.calendar''' configuration namespace. It also has UI options.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
 window._genesys.widgets.calendar = {&lt;br /&gt;
 &lt;br /&gt;
 	showAvailability: true,&lt;br /&gt;
 	numberOfDays: 5,&lt;br /&gt;
 	hideUnavailableTimeSlots: false&lt;br /&gt;
 &lt;br /&gt;
 	calendarHours: {&lt;br /&gt;
 &lt;br /&gt;
 		interval: 10,&lt;br /&gt;
 		allDay: {&lt;br /&gt;
 &lt;br /&gt;
 			openTime: '09:00',&lt;br /&gt;
 			closeTime: '23:59'&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
===Options===&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Name&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
!{{!}}Default&lt;br /&gt;
!{{!}}Required&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}{{AnchorDiv|SA}}showAvailability&lt;br /&gt;
{{!}}{{!}}boolean&lt;br /&gt;
{{!}}{{!}}Enable or disable calendar to update the time slots based on the callback availability. The unavailable time slots are grayed out.&lt;br /&gt;
{{!}}{{!}}true&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}numberOfDays&lt;br /&gt;
{{!}}{{!}}number&lt;br /&gt;
{{!}}{{!}}The number of days to display on calendar starting today.&lt;br /&gt;
{{!}}{{!}}5&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}timeFormat&lt;br /&gt;
{{!}}{{!}}number/string&lt;br /&gt;
{{!}}{{!}}This sets the time format for the timestamps in this widget. It can be 12 or 24.&lt;br /&gt;
{{!}}{{!}}12&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}hideUnavailableTimeSlots&lt;br /&gt;
{{!}}{{!}}boolean&lt;br /&gt;
{{!}}{{!}}Show hide the unavailable callback time slots.&lt;br /&gt;
{{!}}{{!}}false&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}{{AnchorDiv|CHI}}calendarHours.interval&lt;br /&gt;
{{!}}{{!}}number&lt;br /&gt;
{{!}}{{!}}The time interval between each consecutive time slot displayed on calendar.&lt;br /&gt;
{{!}}{{!}}15&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}{{AnchorDiv|CHADOT}}calendarHours.allDay.openTime&lt;br /&gt;
{{!}}{{!}}number&lt;br /&gt;
{{!}}{{!}}Opening time in 'HH:MM' 24 Hr format.&lt;br /&gt;
{{!}}{{!}}17:00&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}{{AnchorDiv|CHALCT}}calendarHours.allDay.closeTime&lt;br /&gt;
{{!}}{{!}}number&lt;br /&gt;
{{!}}{{!}}Closing time in 'HH:MM' 24 Hr format.&lt;br /&gt;
{{!}}{{!}}23:59&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Localization&lt;br /&gt;
|anchor=localize&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext={{NoteFormat|For information on how to set up localization, refer to {{Link-AnywhereElse|product=WID|version=Current|manual=Developer|topic=GWCInternat|display text=Localize widgets and services}}.|1}}&lt;br /&gt;
===Usage===&lt;br /&gt;
You must use the '''calendar''' namespace when you're defining localization strings for the Calendar plugin in your i18n JSON file.&lt;br /&gt;
&lt;br /&gt;
The following example shows how to define new strings for the '''en''' (English) language. You can use any language codes you wish, as there isn't a standard format. When selecting the active language in your configuration, you must match one of the language codes defined in your i18n JSON file. Note that you must only define a language code once in your i18n JSON file. Inside each language object you must define new strings for each widget.&lt;br /&gt;
===Example i18n JSON===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;{&lt;br /&gt;
	&amp;quot;en&amp;quot;: {&lt;br /&gt;
		&amp;quot;calendar&amp;quot;: {&lt;br /&gt;
			&amp;quot;CalendarDayLabels&amp;quot;: [&lt;br /&gt;
				&amp;quot;Sunday&amp;quot;,&lt;br /&gt;
				&amp;quot;Monday&amp;quot;,&lt;br /&gt;
				&amp;quot;Tuesday&amp;quot;,&lt;br /&gt;
				&amp;quot;Wednesday&amp;quot;,&lt;br /&gt;
				&amp;quot;Thursday&amp;quot;,&lt;br /&gt;
				&amp;quot;Friday&amp;quot;,&lt;br /&gt;
				&amp;quot;Saturday&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;CalendarMonthLabels&amp;quot;: [&lt;br /&gt;
				&amp;quot;Jan&amp;quot;,&lt;br /&gt;
				&amp;quot;Feb&amp;quot;,&lt;br /&gt;
				&amp;quot;Mar&amp;quot;,&lt;br /&gt;
				&amp;quot;Apr&amp;quot;,&lt;br /&gt;
				&amp;quot;May&amp;quot;,&lt;br /&gt;
				&amp;quot;Jun&amp;quot;,&lt;br /&gt;
				&amp;quot;Jul&amp;quot;,&lt;br /&gt;
				&amp;quot;Aug&amp;quot;,&lt;br /&gt;
				&amp;quot;Sept&amp;quot;,&lt;br /&gt;
				&amp;quot;Oct&amp;quot;,&lt;br /&gt;
				&amp;quot;Nov&amp;quot;,&lt;br /&gt;
				&amp;quot;Dec&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;CalendarLabelToday&amp;quot;: &amp;quot;Today&amp;quot;,&lt;br /&gt;
			&amp;quot;CalendarLabelTomorrow&amp;quot;: &amp;quot;Tomorrow&amp;quot;,&lt;br /&gt;
			&amp;quot;CalendarTitle&amp;quot;: &amp;quot;Schedule a Call&amp;quot;,&lt;br /&gt;
			&amp;quot;CalendarOkButtonText&amp;quot;: &amp;quot;Okay&amp;quot;,&lt;br /&gt;
			&amp;quot;CalendarError&amp;quot;: &amp;quot;Unable to fetch availability details.&amp;quot;,&lt;br /&gt;
			&amp;quot;CalendarClose&amp;quot;: &amp;quot;Cancel&amp;quot;,&lt;br /&gt;
			&amp;quot;AriaWindowTitle&amp;quot;: &amp;quot;Calendar Window&amp;quot;,&lt;br /&gt;
			&amp;quot;AriaCalendarClose&amp;quot;: &amp;quot;Cancel&amp;quot;,&lt;br /&gt;
			&amp;quot;AriaYouHaveChosen&amp;quot;: &amp;quot;You have chosen&amp;quot;,&lt;br /&gt;
			&amp;quot;AriaNoTimeSlotsFound&amp;quot;: &amp;quot;No time slots found for selected date&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=API commands&lt;br /&gt;
|anchor=commands&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Once you've registered your plugin on the bus, you can call commands on other registered plugins. Here's how to use the global bus object to register a new plugin on the bus.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|The global bus object is a debugging tool. When implementing Widgets on your own site, you must not use the global bus object to register your custom plugins. For more information about extending Genesys Widgets, see {{Link-AnywhereElse|product=WID|version=Current|manual=SDK|topic=GWCBusExtensions|display text=Genesys Widgets Extensions}}. |1}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin');&lt;br /&gt;
&lt;br /&gt;
oMyPlugin.command('Calendar.reset');&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===configure===&lt;br /&gt;
'''Internal use only'''. The main App plugin shares widget configuration settings using each widget’s '''configure''' command. The '''configure''' command can only be called once, at startup. If you call '''configure''' after startup, the results are unpredictable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===generate===&lt;br /&gt;
Builds and generates the calendar. Subscribe to the '''generate''' events to get the generated calendar and display it where you would like to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('Calendar.generate', {date: 'Mon Mar 20 2017 19:51:47 GMT-0700 (PDT)'}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// Calendar generated successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// Calendar failed to generate&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Option&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}date&lt;br /&gt;
{{!}}{{!}}Date string/object&lt;br /&gt;
{{!}}{{!}}To pre-select the date and time on calendar.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Status&lt;br /&gt;
!{{!}}When&lt;br /&gt;
!{{!}}Returns&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}resolved&lt;br /&gt;
{{!}}{{!}}When the calendar is successfully generated&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}rejected&lt;br /&gt;
{{!}}{{!}}When Invalid date is passed to calendar&lt;br /&gt;
{{!}}{{!}}'Invalid data'&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===showAvailability===&lt;br /&gt;
Update the calendar time slots with the callback availability. This enables only those time slots that have the callback facility and disables the rest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('Calendar.showAvailability', {date: '03/22/17'}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// Calendar showed availability successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// Calendar failed to show availability&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Options====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Option&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}date&lt;br /&gt;
{{!}}{{!}}Date string/object&lt;br /&gt;
{{!}}{{!}}Update the available time slots in the Calendar plugin for the selected Date. Note that, after calling this command, the internal &amp;lt;tt&amp;gt;showAvailability&amp;lt;/tt&amp;gt; value is set to &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; for this session and the Calendar only shows the available time slots when switching between other dates.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Status&lt;br /&gt;
!{{!}}When&lt;br /&gt;
!{{!}}Returns&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}resolved&lt;br /&gt;
{{!}}{{!}}When time slots are successfully updated&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}rejected&lt;br /&gt;
{{!}}{{!}}When no date value is found to check the availability&lt;br /&gt;
{{!}}{{!}}'No date found to check availability'&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}rejected&lt;br /&gt;
{{!}}{{!}}When invalid date value is found&lt;br /&gt;
{{!}}{{!}}'Invalid date'&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===reset===&lt;br /&gt;
Resets the calendar with no pre-selected values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyPlugin.command('Calendar.reset').done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// Calendar reset successfully&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
&lt;br /&gt;
	// Calendar failed to reset&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Resolutions====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Status&lt;br /&gt;
!{{!}}When&lt;br /&gt;
!{{!}}Returns&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}resolved&lt;br /&gt;
{{!}}{{!}}When calendar is successfully reset&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=API events&lt;br /&gt;
|anchor=events&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Once you've registered your plugin on the bus, you can subscribe to and listen for published events. Here's how to use the global bus object to register a new plugin on the bus.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|The global bus object is a debugging tool. When implementing Widgets on your own site, you must not use the global bus object to register your custom plugins. Instead, see {{Link-AnywhereElse|product=WID|version=Current|manual=SDK|topic=GWCBusExtensions|display text=Genesys Widgets Extensions}} for more information about extending Genesys Widgets.|1}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin');&lt;br /&gt;
&lt;br /&gt;
oMyPlugin.subscribe('Calendar.ready', function(e){});&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Name&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
!{{!}}Data&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}ready&lt;br /&gt;
{{!}}{{!}}Calendar is initialized and ready to accept commands.&lt;br /&gt;
{{!}}{{!}}n/a&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}generated&lt;br /&gt;
{{!}}{{!}}Calendar UI has been generated. Use this event to get the calendar UI and display where you would like to.&lt;br /&gt;
{{!}}{{!}}{ ndCalendar: &amp;lt;Generated HTML Calendar&amp;gt; }&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}selectedDateTime&lt;br /&gt;
{{!}}{{!}}Date and time selected on calendar.&lt;br /&gt;
{{!}}{{!}}{ dayString: &amp;lt;The day selected on calendar&amp;gt;, dateString: &amp;lt;The date selected on calendar in DD MMM format&amp;gt;, timeString: &amp;lt;The time selected on calendar in HH:MM 12 Hr format&amp;gt;, date: &amp;lt;Entire Date in date string format&amp;gt;}&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:AS_Contact_GAPI-24004.png&amp;diff=67663</id>
		<title>File:AS Contact GAPI-24004.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:AS_Contact_GAPI-24004.png&amp;diff=67663"/>
		<updated>2020-10-02T17:48:27Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:AS_ActivityLog_GAPI-24002.png&amp;diff=67661</id>
		<title>File:AS ActivityLog GAPI-24002.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:AS_ActivityLog_GAPI-24002.png&amp;diff=67661"/>
		<updated>2020-10-02T17:36:30Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Supervisor_options&amp;diff=66886</id>
		<title>PEC-AS/Current/ManageCC/Supervisor options</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Supervisor_options&amp;diff=66886"/>
		<updated>2020-09-24T18:58:08Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Supervisor options&lt;br /&gt;
|TocName=Supervisor options&lt;br /&gt;
|Context=Learn about Supervisor options available in Agent Setup.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Administrator&lt;br /&gt;
|Application=Agent Setup&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=ASSupervisor062020.png&lt;br /&gt;
|structuredtext=In the '''Supervisor''' section under '''Desktop Options''', configure the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Monitor''' enables supervisor and team lead monitoring on agent interactions.&lt;br /&gt;
*'''Agent Control''' allows the supervisor or team lead to access the '''My Agents''' view.&lt;br /&gt;
*'''Agent Channels''' defines the channels to be displayed in the '''My Agents''' view.&lt;br /&gt;
*'''Refresh Agent Control''' enables the manual refresh of agent states.&lt;br /&gt;
*'''Agent Page Limit''' specifies the maximum number of rows displayed per page in the My Agents tab.&lt;br /&gt;
*'''Agent Page Refresh''' specifies the frequency, in seconds, to refresh the list of users. Auto-refresh turns off when this option is set to '0' (zero).&lt;br /&gt;
*'''Monitor Current Voice''' allows the supervisor or team lead to monitor voice interactions.&lt;br /&gt;
*'''Coach Current Voice''' allows the supervisor or team lead to coach voice interactions.&lt;br /&gt;
*'''Show Voice Monitoring''' notifies agents when the current call is being monitored by a supervisor or team lead.&lt;br /&gt;
*'''Cross Site Voice Monitoring''' allows the supervisor or team lead to supervise an agent located at a different location. This option is only visible in Agent Setup while in v2 mode.&lt;br /&gt;
*'''Monitor Chat''' allows the supervisor or team lead to monitor chat interactions.&lt;br /&gt;
*'''Coach Chat''' allows the supervisor or team lead to coach chat interactions.&lt;br /&gt;
*'''My Team Workbins''' enables supervisors to see the workbins of the agents in their Agent Group.&lt;br /&gt;
*'''Access to Interaction Management''' enables supervisors to see Interaction Management.&lt;br /&gt;
*'''Allow Moving Interactions to Queue''' enables supervisors to move interactions from displayed workbins to available queues.&lt;br /&gt;
*'''Allow Moving Interactions to Workbin''' enables supervisors to move interactions from displayed workbins to other workbins.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Salesforce_options&amp;diff=66391</id>
		<title>PEC-AS/Current/ManageCC/Salesforce options</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Salesforce_options&amp;diff=66391"/>
		<updated>2020-09-17T16:51:43Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Gplus Adapter for Salesforce options&lt;br /&gt;
|TocName=Gplus Salesforce options&lt;br /&gt;
|Context=Configure options for the Gplus Adapter for Salesforce.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Administrator&lt;br /&gt;
|Application=Agent Desktop, Agent Setup&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Configure options for the {{Link-AnywhereElse|product=PEC-GPA|version=Current|manual=Administrator|display text=Gplus Adapter for Salesforce}} on the '''Contact Center Settings''' page. &lt;br /&gt;
&lt;br /&gt;
The '''CRM Adapter''' options are organized into three sections:  General, Screen Pop and Activity Log options.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=General options&lt;br /&gt;
|anchor=General&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=As_general_GAPI20768.png&lt;br /&gt;
|structuredtext=In the '''General''' section, configure the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Click to Dial Preprocessing Rules''' specifies the rules to apply to a phone number before making a dialing request.&lt;br /&gt;
*'''Salesforce Object Type''' specifies the key that Adapter uses when saving the type of the focused Salesforce object to attached data.&lt;br /&gt;
*'''Salesforce Object Name''' specifies the key that Adapter uses when saving the name of the focused Salesforce object to attached data.&lt;br /&gt;
|structuredtextwide=*'''Salesforce Object Key''' specifies the key that Adapter uses when saving the ID of the focused Salesforce object to attached data.&lt;br /&gt;
*'''Keep Alive Sync''' specifies whether to prevent Adapter from logging out of Salesforce when there is no activity in Salesforce beyond the configured time period. If enabled, Adapter refreshes the Salesforce session at short intervals and keeps the Adapter-Salesforce session alive.&lt;br /&gt;
*'''Run Salesforce Apex on Interaction Events''' specifies the interaction event which triggers Salesforce Apex to run.&lt;br /&gt;
*'''Apex Class Name''' configures the name for a Salesforce custom apex class.&lt;br /&gt;
*'''Salesforce Message Channel Name for Service Client API''' specifies the name of the message channel in Salesforce for Service Client API.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Screen pop options&lt;br /&gt;
|anchor=ScreenPop&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=GAPI-21692_Aug2020.png&lt;br /&gt;
|structuredtext=In the '''Screen Pop''' section, configure the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Screen Pop for Internal Calls''' specifies whether the adapter initiates a screen pop for internal calls.&lt;br /&gt;
*'''Use ANI in Screen Pop Search''' specifies whether ANI is to be used in the screen pop search.&lt;br /&gt;
*'''Use DNIS in Screen Pop Search''' specifies whether DNIS is to be used in the screen pop search.&lt;br /&gt;
*'''Screen Pop on Ringing''' specifies whether the adapter initiates a screen pop when the call is ringing. If not enabled, or set to '''False''', the adapter initiates a screen pop when the call is established.&lt;br /&gt;
|structuredtextwide=*'''Screen Pop Preprocessing Rule''' specifies the preprocessing rule to apply to the ANI or DNIS before showing the screen pop. When you enable this option, you can choose the default preprocessing rules or add a rule. If you add a rule, you will need to define a '''Display Name''' for the rule and define the '''RegEx''', '''Prefix''', and '''Description'''.&lt;br /&gt;
*'''RegEx to Match UserData''' specifies a regular expression pattern used to match one or more UserData keys. The values for these keys are used to build the search and screen pop expression. If this option is not defined, the adapter uses the existing &amp;lt;code&amp;gt;cti_&amp;lt;/code&amp;gt; prefix logic.&lt;br /&gt;
*'''Object ID UserData key''' specifies the custom UserData key that the adapter should use for the object ID of the focused page when performing a transfer.&lt;br /&gt;
*'''Screen Pop on Chat Invite''' specifies whether the adapter initiates a screen pop in Salesforce immediately after displaying a chat invite notification. If the option is not set or is set to false, the adapter initiates a screen pop only when an agent accepts the chat invite.&lt;br /&gt;
*'''Screen Pop on Email Invite''' specifies whether the adapter initiates a screen pop in Salesforce immediately after displaying an email invite notification. If the option is not set or is set to false, the adapter initiates a screen pop only when an agent accepts the email invite.&lt;br /&gt;
*'''Screen Pop on Outbound Email Create''' specifies whether the adapter initiates a screen pop in Salesforce immediately after creating an email.&lt;br /&gt;
*'''Screen Pop on Open Media Invite''' specifies whether the adapter initiates a screen pop in Salesforce immediately after displaying the open media invite notification. If the option is not set or is set to false, the adapter initiates a screen pop only when an agent accepts the open media invite. This option supports the items configured in the openmedia.workitem-channels.&lt;br /&gt;
*'''Enable Screen Pop for Consult''' specifies whether the adapter initiates a screen pop in Salesforce when using voice consult. This option works with option '''Update Attached Data on Transfer.'''&lt;br /&gt;
*'''Screen pop object type''' specifies the the type of object (for instance &amp;quot;URL&amp;quot; or &amp;quot;OBJECTHOME&amp;quot;) to screen pop in Salesforce.&lt;br /&gt;
*'''Screen pop URL section name''' specifies the URL for the screen pop object type.&lt;br /&gt;
*'''Screen pop Object home section name''' specifies the object home (for instance, an account or contact) for the screen pop object type.&lt;br /&gt;
*'''Screen pop List section name''' specifies a list view for the screen pop object type.&lt;br /&gt;
*'''Screen pop Search section name''' specifies the top results section of the search page for the screen pop object type.&lt;br /&gt;
*'''Screen pop New record section name''' specifies the new record name (for instance, new account or new contact name) for the screen pop object type.&lt;br /&gt;
*'''Screen pop Flow section name''' specifies the target UI screen flow for the screen pop object type.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Activity Log options&lt;br /&gt;
|anchor=ActivityLog&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=ActivityLog_Sept2020.png&lt;br /&gt;
|structuredtext=In the '''Activity Log''' section, configure the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Activity Log Field Mapping''' specifies the name of the configuration section where the mapping is defined.&lt;br /&gt;
*'''Activity Log on Screen Pop''' specifies whether Adapter creates the activity in Salesforce on screen pop and modifies logged activity when interaction is marked done. Activity on screen pop is created for inbound and internal calls. This option depends on '''Screen Pop for Internal Calls''' being selected and the value of '''Voice Activity Log''' containing '''Inbound''' and '''Internal'''.&lt;br /&gt;
*'''Salesforce Activity Log Status''' specifies the custom task status to be applied when an activity log is created by Adapter. Prerequisite: The status must exist in the Salesforce Task Status Picklist.&lt;br /&gt;
|structuredtextwide=*'''Voice Activity Log''' specifies the call types for the adapter to create in the activity history for Salesforce.&lt;br /&gt;
*'''Chat Activity Log''' specifies the chat types for the adapter to create in the activity history for Salesforce.&lt;br /&gt;
*'''Open Media Activity Log''' specifies the open media types for the adapter to create in the activity history for Salesforce. To disable the open media activity log creation, set the option to None.&lt;br /&gt;
*'''Email Include in Activity Description''' specifies to include the text version of the email body in the activity description in Salesforce. The email body is saved for only inbound emails and outbound replies.&lt;br /&gt;
*'''Update Attached Data on Transfer''' specifies whether to update the call data with the ID of the Saleforce object the agent is viewing when performing a transfer or conference.  When set to '''True''', the agent that receives the voice or chat interaction gets a screen pop for the most relevant object.&lt;br /&gt;
*'''Chat Include Transcript in Description''' specifies whether the adapter saves the chat transcript, as part of the activity description in Salesforce.&lt;br /&gt;
*'''Chat Transcript Custom Field Name''' specifies the name of a custom activity field in Salesforce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Custom templates&lt;br /&gt;
|anchor=CustomTemplates&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=You can specify what the adapter saves for the subject field in the Salesforce activity by using custom templates with the following options:&lt;br /&gt;
&lt;br /&gt;
*Templates Salesforce Inbound-Voice Subject&lt;br /&gt;
*Templates Salesforce Outbound-Voice Subject&lt;br /&gt;
*Templates Salesforce Transfer-Voice Subject&lt;br /&gt;
*Templates Salesforce Chat Subject&lt;br /&gt;
*Templates Salesforce Email Subject&lt;br /&gt;
&lt;br /&gt;
The value specified for each of these fields can be a combination of text and parameters to achieve the desired result for each type of interaction.&lt;br /&gt;
&lt;br /&gt;
For example, you might want the activity for all inbound voice calls to have details about the customer's name and phone number. In this case, here's how you would configure the option:&amp;lt;div class=&amp;quot;pdf-table-landscape&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Templates Salesforce Inbound-Voice Subject = Customer: {interaction.contact}, Phone Number: {interaction.ani}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/div&amp;gt;If a call comes in from Willard Clinton at 123-456-7890, when the call ends the adapter creates the related activity in Salesforce with following subject field: &amp;lt;code&amp;gt;Customer: Willard Clinton, Phone Number: 123-456-7890&amp;lt;/code&amp;gt; Another common use case might be to include information from UserData for all inbound calls. This could come from your own UserData keys or from UserData provided by Agent Desktop. For example, you want the activity history's subject to include information from your own UserData key, PurposeOfCall, and the contact's name. Here's how you should configure the option:&amp;lt;div class=&amp;quot;pdf-table-landscape&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Templates Salesforce Inbound-Voice Subject = Call from {interaction.contact} about {userData.PurposeOfCall}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/div&amp;gt;In this scenario, if Willard Clinton calls into the contact center and chooses the Technical Support option in the IVR, that information is saved in the PurposeOfCall UserData key. When the call ends, the adapter creates the related activity in Salesforce with the following subject field: &amp;lt;code&amp;gt;Call from Willard Clinton about Technical Support&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The adapter supports the following templating variables:&lt;br /&gt;
{{{!}}&lt;br /&gt;
!'''Variable'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.ani&lt;br /&gt;
{{!}}The number that originated the call. This variable identifies the caller for inbound calls and is best used in inbound templates.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.callType&lt;br /&gt;
{{!}}The type of call (inbound/outbound).&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.caseId&lt;br /&gt;
{{!}}The unique ID of the related case.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.contact&lt;br /&gt;
{{!}}The first and last name of contact.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.dnis&lt;br /&gt;
{{!}}The last call dialed (useful for call transfer). This variable identifies the outbound location for outbound calls and is best used in outbound templates.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.endDate&lt;br /&gt;
{{!}}The date and time when interaction ended.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.isConsultation&lt;br /&gt;
{{!}}This is true if the interaction is a consultation.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.startDate&lt;br /&gt;
{{!}}The date and time when the interaction started.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}userData.&amp;lt;key&amp;gt;&lt;br /&gt;
{{!}}This can be any UserData key available for the interaction. You might also find some of the following UserData keys useful (they're included by default by Agent Desktop on transfers):&lt;br /&gt;
&lt;br /&gt;
*userData.GCS_TransferringAgentName &amp;amp;mdash; The name of the transferring agent.&lt;br /&gt;
*userData.GCS_TransferringDate &amp;amp;mdash; The date and time of transfer.&lt;br /&gt;
*userData.GCS_TransferringEmployeeId &amp;amp;mdash; The ID of the transferring employee.&lt;br /&gt;
*userData.GCS_TransferringReason &amp;amp;mdash; The reason for the transfer. This is an empty string if no reason exists.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}contact.EmailAddresses&lt;br /&gt;
{{!}}A list of email addresses associated with the contact.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}contact.PhoneNumbers&lt;br /&gt;
{{!}}A list of phone numbers associated with the contact.&lt;br /&gt;
{{!}}}&amp;lt;br /&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Contacts&amp;diff=66367</id>
		<title>PEC-AS/Current/ManageCC/Contacts</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Contacts&amp;diff=66367"/>
		<updated>2020-09-17T16:07:18Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Contacts&lt;br /&gt;
|TocName=Contacts&lt;br /&gt;
|Context=Configure contacts in Agent Desktop so agents can manage their own list of contacts and contact history.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Administrator&lt;br /&gt;
|Application=Agent Setup&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=ASContact.png&lt;br /&gt;
|structuredtext=In the '''Contact''' section of the '''Contact Center Settings''' tab, you can enable the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Contact''' enables agents to access contact features.&lt;br /&gt;
*'''UCS for Voice''' enables the Universal Contact Server to generate voice interaction history in Agent Desktop. This option is enabled when the '''Contact''' and  '''Voice''' check boxes are selected.&lt;br /&gt;
*'''Assign Contact''' enables agents to assign contacts to an interaction. This option is enabled when the '''Contact''' check box is selected.&lt;br /&gt;
*'''Save Contact''' enables agents to modify contacts.&lt;br /&gt;
*'''Delete Contact''' enables agents to delete contacts.&lt;br /&gt;
*'''Use Contact History''' enables agents to access contact history. This option is enabled when the '''Contact''' check box is selected.&lt;br /&gt;
*'''Contact History Display Columns''' allows you to manage the interaction attributes you want to display in the '''Contact History''' view in Agent Desktop. This option is enabled when the '''Contact''' and '''Use Contact History''' check boxes are selected.&lt;br /&gt;
*'''Search Contact History''' enables agents to search contact history. This option is enabled when the '''Contact''' and '''Use Contact History''' check boxes are selected.&lt;br /&gt;
*'''Contact History Search Attributes''' allows you to manage the interaction attributes you want to display in the '''Contact History Quick Search''' view in Agent Desktop. This option is enabled when the '''Contact''', '''Use Contact History''',  and '''Search Contact History'''  check boxes are selected.&lt;br /&gt;
|structuredtextwide=*'''Use My History''' enables agents to access their own contact history. This option is enabled when the '''Contact''' check box is selected.&lt;br /&gt;
*'''Contact My History Displayed Columns''' allows you to manage the interaction attributes you want to display in the '''My History''' view in Agent Desktop. This option is enabled when the '''Contact''' and  '''Use My History''' check boxes are selected.&lt;br /&gt;
*'''Search My History''' enables agents to search their own contact history. This option is enabled when the '''Contact''' check box is selected.&lt;br /&gt;
*'''Contact My History Search Attributes''' allows you to manage the interaction attributes you want to display in the '''My History Quick Search''' view in Agent Desktop. This option is enabled when the '''Contact''',  '''Search My History''', and '''Search My History''' check boxes are selected.&lt;br /&gt;
*'''Open from History'''  allows agents to open in-progress emails from the interaction history. This option is enabled when the '''Contact''' and '''Email''' check boxes are selected.&lt;br /&gt;
*'''Use Directory''' enables agents to view and search the contact directory. This option is enabled when the '''Contact''' check box is selected.&lt;br /&gt;
*'''Contact Directory View''' specifies the format for the Contact History View. Options include '''List View''' or '''Grid View'''. This option is enabled when the '''Contact''' check box is selected.&lt;br /&gt;
*'''Contact Notepad''' allows an agent to display and edit notes while handling an interaction. The notepad is a feature that enables agents to enter comments about the current interaction or about a selected interaction. Agents can view the note in most channels as well as contact history, My History, and My Workbin.&lt;br /&gt;
*'''Use Contact History Notepad''' allows an agent to see notes about interactions in Contact History.&lt;br /&gt;
*'''Allow Contact Interactions to be Open from Queue''' enables agents to open in-progress interactions from their workbin history.&lt;br /&gt;
*'''Allow Contact Interactions to be Open from Personal Workbins''' enables agents to open in-progress interactions that are in another agent's workbin history.&lt;br /&gt;
*'''Allow Contact Interactions Workflow State''' enables the use of the interaction workflow state in an interaction's details.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Outbound_options&amp;diff=66366</id>
		<title>PEC-AS/Current/ManageCC/Outbound options</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Outbound_options&amp;diff=66366"/>
		<updated>2020-09-17T16:07:11Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Outbound channel options&lt;br /&gt;
|TocName=Outbound channel options&lt;br /&gt;
|Context=Learn about Outbound options available in Agent Setup.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Administrator&lt;br /&gt;
|Application=Agent Setup&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=AS_Outbound_GAPI-23066.png&lt;br /&gt;
|structuredtext=In the '''Outbound''' section under '''Desktop Options''', configure the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Allow Reject Preview Record''' enables agents to reject a preview record. If an agent declines a preview record, it can be processed by another agent in the campaign.&lt;br /&gt;
*'''Allow Cancel Record''' enables agents to cancel a preview record. If an agent cancels a preview record, it is not processed again during the current campaign.&lt;br /&gt;
*'''Allow Marking Record as Do Not Call''' enables agents to mark a contact as ''Do Not Call''.&lt;br /&gt;
*'''Allow Reschedule Outbound Record''' enables agents to reschedule an outbound record.&lt;br /&gt;
*'''Allow Reschedule Before Calling Contact''' enables agents to reschedule a call before calling the contact on the record.&lt;br /&gt;
*'''Allow Reschedule on New Number''' enables agents to add a new record to the chain by rescheduling with a new number.&lt;br /&gt;
*'''Allow Setting Call Result''' enables agents to set call results for outbound interactions.&lt;br /&gt;
*'''Treatment Mode''' specifies the type of treatment to be applied for the outbound record after it is marked as processed. If not set or set to &amp;lt;tt&amp;gt;none&amp;lt;/tt&amp;gt;, no treatment is applied.&lt;br /&gt;
*'''Allow Request Next Preview Record''' enables agents to request a new preview record while processing of the previous preview record terminates.&lt;br /&gt;
*'''Allow Dialing an Alternative Chained Record''' enables agents to dial a number from the preview record chain that is different than the number selected by the system.&lt;br /&gt;
*'''Allow Push Preview''' enables agents to use outbound push preview.&lt;br /&gt;
*'''Max Simultaneous Preview Record''' specifies the maximum number of simultaneous Outbound Preview records an agent can view in the interaction window.&lt;br /&gt;
*'''Timed Preview Auto Dial''' specifies the method in which calls are dialed for agents in Preview, Push Preview, or Reschedule campaigns. The options are as follows: &lt;br /&gt;
**The agent can manually dial a record.&lt;br /&gt;
**The record is auto-dialed as soon as the record is accepted.&lt;br /&gt;
**The record is auto-dialed after a specified number of seconds.&lt;br /&gt;
*'''Outbound Treatment on Reschedule''' specifies the list of disposition codes that can be set for an outbound interaction, enabling the Outbound Contact Server to receive outbound treatment for campaign records marked as ''Done'', after a reschedule.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Voice_options&amp;diff=66365</id>
		<title>PEC-AS/Current/ManageCC/Voice options</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Voice_options&amp;diff=66365"/>
		<updated>2020-09-17T16:07:05Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Voice channel options&lt;br /&gt;
|TocName=Voice channel options&lt;br /&gt;
|Context=Learn about the Voice channel options available in Agent Setup.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Administrator&lt;br /&gt;
|Application=Agent Setup&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=ASVoice2.png&lt;br /&gt;
|structuredtext=In the '''Voice''' section of the '''Contact Center Settings''' page, configure the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Voice Auto Answer''' specifies that voice interactions are automatically answered when an agent receives the invitation.&lt;br /&gt;
*'''Voice Auto Answer On Active Call''' specifies that a voice interaction is not automatically answered if the agent has another active call.&lt;br /&gt;
*'''Voice Forward''' enables agents to forward voice calls.&lt;br /&gt;
*'''DTMF Tone''' specifies to play a tone when the agent selects a DTMF key.&lt;br /&gt;
*'''Voice Auto Ready''' places the agent in the Ready state as soon as they log in.&lt;br /&gt;
*'''Auto Not Ready Reason''' places the agent in Not Ready state as soon as they log in. When you select this option, define the default Not Ready reason code.&lt;br /&gt;
*'''Show Post Call Duration''' allows the post-call duration for a voice call to be shown in the interaction bar's tool tip area.&lt;br /&gt;
*'''Show Hold Indication Timer''' allows the hold duration to be shown to the agent in the interaction bar.&lt;br /&gt;
*'''Release Voice Calls while on Hold''' enables agents to manually end voice calls that are on hold.&lt;br /&gt;
*'''Conference''' enables one-step voice conferencing.&lt;br /&gt;
*'''Two-Step Voice Conference''' enables two-step voice conferencing.&lt;br /&gt;
*'''Clear Conference on Release''' clears a conference call of all parties when the last agent leaves the conference call.&lt;br /&gt;
|structuredtextwide=*'''Cancel ACW on Done''' specifies that the voice channel is to be returned to the agent's former availability status when the agent marks the voice interaction as Done while in After Call Work status.&lt;br /&gt;
*'''Cancel ACW on Change''' specifies that After Call Work status should be cancelled when an agent switches from After Call Work to Ready or Not Ready during a call.&lt;br /&gt;
*'''Lookup Contact for Voice''' activates Agent Desktop for contact lookup when an interaction is presented to an agent.&lt;br /&gt;
*'''Create Contact for Voice''' will create a contact if the initial contact lookup fails to find an existing contact.&lt;br /&gt;
*'''Caller ID Anonymous''' specifies whether the anonymous Caller ID is enabled. This option applies to only outbound calls.&lt;br /&gt;
*'''Caller ID for Consultations''' enables agents to use a Caller ID for consultations.&lt;br /&gt;
*'''Caller ID for Conferences''' enables agents to use a Caller ID for single-step conferences.&lt;br /&gt;
*'''Caller ID for Transfers''' enables agents to use a Caller ID for single-step transfers.&lt;br /&gt;
*'''Routing Point for Skill Based Transfers''' specifies the call number used by the Routing Point feature.&lt;br /&gt;
*'''Routing Based Actions''' defines the list of routing-based actions that an agent can perform. Options include:&lt;br /&gt;
**'''Make Call'''&lt;br /&gt;
**'''One Step Conference'''&lt;br /&gt;
**'''Initiate Conference'''&lt;br /&gt;
**'''One step Transfer'''&lt;br /&gt;
**'''Initiate Transfer'''&lt;br /&gt;
*'''Routing Based Targets''' defines the list of contact types to which an agent can route calls through the actions defined in the '''Routing Based Actions''' option. Options include Agent, Routing Point, Type Destination, Outbound Record, and Contact. Note that Agent Groups and Skills targets are not listed here, because they are configured through a routing strategy.&lt;br /&gt;
*Options to exclude a range of numbers from the Team Communicator. For each option, if you enable it, you must type a regular expression (RegEx) to match against the following items:&lt;br /&gt;
**Entered phone number&lt;br /&gt;
**Selected agent or routing point&lt;br /&gt;
*:For example, to exclude extensions that are 7 digits and start with the numbers 7 or 8, type &amp;lt;tt&amp;gt;^(7{{!}}8)\d{6}$&amp;lt;/tt&amp;gt;&lt;br /&gt;
**'''Make Call Exclude Number''' specifies the format for a phone number to exclude from Team Communicator when making a call.&lt;br /&gt;
**'''Single Step Conference Exclude Number''' specifies the format for a phone number to exclude from Team Communicator on a single step conference.&lt;br /&gt;
**'''Single Step Transfer Exclude Number''' specifies the format for a phone number to exclude from Team Communicator on a single-step transfer.&lt;br /&gt;
**'''Consultations Exclude Number''' specifies the format for a phone number to exclude from Team Communicator on consultation.&lt;br /&gt;
*:These options are not applicable to global or personal favorites.&lt;br /&gt;
*'''Voice Ringtone Type''' specifies the voice ringtone type. Enable the option and then select the ringtone type from the drop-down list box.&lt;br /&gt;
*'''Voice Ringtone Priority''' specifies the priority level of the voice ringtone within the channels. Enable the option and then type the number for the priority level.&lt;br /&gt;
*'''Voice Ringtone Duration''' specifies how long the ringtone rings. Use the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;-1&amp;lt;/tt&amp;gt; specifies to repeat the ringtone until the call is answered.&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; specifies to play the ringtone only one time.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; or more specifies to play the ringtone for the specified duration (in milliseconds) and then repeat until the call is answered.&lt;br /&gt;
*'''Can One Step Transfer''' enables instant conferencing of a voice call.&lt;br /&gt;
*'''Can Two Step Transfer''' enables two-step transfer of a voice call.&lt;br /&gt;
*'''Can Extend After Call Work''' enables the extension of After Call Work indefinitely, until the user's status is changed manually.&lt;br /&gt;
*'''Can Use WebRTC''' enables WebRTC in Agent Desktop. Note: The '''Can Use Voice Channel''' option must be enabled.&lt;br /&gt;
*'''Can change speaker volume''' allows an agent to change speaker volume. Note: The '''Can Use Voice Channel''' option must be enabled.&lt;br /&gt;
*'''Can mute microphone''' allows an agent to mute and unmute the microphone. Note: The '''Can Use Voice Channel''' option must be enabled.&lt;br /&gt;
*'''Can mute speaker''' allows an agent to mute and unmute the speaker. Note: The '''Can Use Voice Channel''' option must be enabled.&lt;br /&gt;
*'''Can send DTMF''' specifies if DTMF is available for WebRTC calls. Note: The '''Can Use Voice Channel''' option must be enabled.&lt;br /&gt;
*'''WebRTC Ringtone Type''' specifies the voice channel ringing sound -&lt;br /&gt;
*'''WebRTC Ringtone Priority''' is the priority of ringtone. The higher the integer, the higher the priority.&lt;br /&gt;
*'''WebRTC Ringtone Duration:'''&lt;br /&gt;
**-1 plays means to play and repeat until an explicit message stops it with an established event.&lt;br /&gt;
**0 means to play the entire sound one time.&lt;br /&gt;
**An integer greater than 0 means a time in milliseconds to play and repeat the sound.&lt;br /&gt;
*'''Voice SIP Preview Ringtone Type''' allows the selection of a ringtone type from the default tone types.&lt;br /&gt;
*'''Voice SIP Preview Ringtone Priority''' specifies Voice SIP ringing priority between different channels.&lt;br /&gt;
*'''Voice SIP Preview Ringtone Duration''' specifies the Voice SIP preview duration.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Standard_Response_Library_options&amp;diff=66364</id>
		<title>PEC-AS/Current/ManageCC/Standard Response Library options</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Standard_Response_Library_options&amp;diff=66364"/>
		<updated>2020-09-17T16:06:56Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Standard responses&lt;br /&gt;
|TocName=Standard responses&lt;br /&gt;
|Context=Enable standard responses for agents.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Administrator&lt;br /&gt;
|Application=Agent Setup&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=ASStandardResponseOptions2.png&lt;br /&gt;
|structuredtext=In the '''Standard Response Library''' section, you can enable or disable the Standard Response Library and the ability to Quick Search within the library. You can also apply a filter to specify what response categories are available to the agent in Agent Desktop.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=AS_Standard_Response_GAPI-22965.png&lt;br /&gt;
|structuredtext=In the '''Standard Response''' section, you can specify custom field codes, such as agent nicknames, roles, departments, and email signatures.&lt;br /&gt;
You can format custom field codes to represent agent attributes using &amp;lt;tt&amp;gt;Agent.&amp;lt;CustomAgentAttr&amp;gt;&amp;lt;/tt&amp;gt;, or any custom attribute by dropping the agent modifier and using &amp;lt;tt&amp;gt;&amp;lt;CustomFieldCode&amp;gt;&amp;lt;/tt&amp;gt;. Enter a '''Display Name''' and the corresponding '''Value''' for each field code.&lt;br /&gt;
&lt;br /&gt;
Other options include:&lt;br /&gt;
&lt;br /&gt;
*'''Standard Response Shortcuts''' — This template option can be cloned to specify the association between a keyword and a standard response defined in Knowledge Manager. An agent can type the keyword in a text media view and press CTRL + SPACE to have it automatically replaced by the rendered text of the associated standard response.&lt;br /&gt;
*'''Use Shortcuts filter''' — Enables an agent to filter Standard Responses in the Standard Responses tree view to show only those with shortcuts.&lt;br /&gt;
*'''Shortcuts prefix''' — Specifies a prefix to identify a keyword associated to a standard response.&lt;br /&gt;
*'''Enable favorite standard-response''' — Enables agents to use favorites for standard responses.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Salesforce_options&amp;diff=66363</id>
		<title>PEC-AS/Current/ManageCC/Salesforce options</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-AS/Current/ManageCC/Salesforce_options&amp;diff=66363"/>
		<updated>2020-09-17T16:06:47Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Gplus Adapter for Salesforce options&lt;br /&gt;
|TocName=Gplus Salesforce options&lt;br /&gt;
|Context=Configure options for the Gplus Adapter for Salesforce.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Administrator&lt;br /&gt;
|Application=Agent Desktop, Agent Setup&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Configure options for the {{Link-AnywhereElse|product=PEC-GPA|version=Current|manual=Administrator|display text=Gplus Adapter for Salesforce}} on the '''Contact Center Settings''' page. &lt;br /&gt;
&lt;br /&gt;
The '''CRM Adapter''' options are organized into three sections:  General, Screen Pop and Activity Log options.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=General options&lt;br /&gt;
|anchor=General&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=As_general_GAPI20768.png&lt;br /&gt;
|structuredtext=In the '''General''' section, configure the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Click to Dial Preprocessing Rules''' specifies the rules to apply to a phone number before making a dialing request.&lt;br /&gt;
*'''Salesforce Object Type''' specifies the key that Adapter uses when saving the type of the focused Salesforce object to attached data.&lt;br /&gt;
*'''Salesforce Object Name''' specifies the key that Adapter uses when saving the name of the focused Salesforce object to attached data.&lt;br /&gt;
|structuredtextwide=*'''Salesforce Object Key''' specifies the key that Adapter uses when saving the ID of the focused Salesforce object to attached data.&lt;br /&gt;
*'''Keep Alive Sync''' specifies whether to prevent Adapter from logging out of Salesforce when there is no activity in Salesforce beyond the configured time period. If enabled, Adapter refreshes the Salesforce session at short intervals and keeps the Adapter-Salesforce session alive.&lt;br /&gt;
*'''Run Salesforce Apex on Interaction Events''' specifies the interaction event which triggers Salesforce Apex to run.&lt;br /&gt;
*'''Apex Class Name''' configures the name for a Salesforce custom apex class.&lt;br /&gt;
*'''Salesforce Message Channel Name for Service Client API''' specifies the name of the message channel in Salesforce for Service Client API.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Screen pop options&lt;br /&gt;
|anchor=ScreenPop&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=GAPI-21692_Aug2020.png&lt;br /&gt;
|structuredtext=In the '''Screen Pop''' section, configure the following options:&lt;br /&gt;
&lt;br /&gt;
*'''Screen Pop for Internal Calls''' specifies whether the adapter initiates a screen pop for internal calls.&lt;br /&gt;
*'''Use ANI in Screen Pop Search''' specifies whether ANI is to be used in the screen pop search.&lt;br /&gt;
*'''Use DNIS in Screen Pop Search''' specifies whether DNIS is to be used in the screen pop search.&lt;br /&gt;
*'''Screen Pop on Ringing''' specifies whether the adapter initiates a screen pop when the call is ringing. If not enabled, or set to '''False''', the adapter initiates a screen pop when the call is established.&lt;br /&gt;
|structuredtextwide=*'''Screen Pop Preprocessing Rule''' specifies the preprocessing rule to apply to the ANI or DNIS before showing the screen pop. When you enable this option, you can choose the default preprocessing rules or add a rule. If you add a rule, you will need to define a '''Display Name''' for the rule and define the '''RegEx''', '''Prefix''', and '''Description'''.&lt;br /&gt;
*'''RegEx to Match UserData''' specifies a regular expression pattern used to match one or more UserData keys. The values for these keys are used to build the search and screen pop expression. If this option is not defined, the adapter uses the existing &amp;lt;code&amp;gt;cti_&amp;lt;/code&amp;gt; prefix logic.&lt;br /&gt;
*'''Object ID UserData key''' specifies the custom UserData key that the adapter should use for the object ID of the focused page when performing a transfer.&lt;br /&gt;
*'''Screen Pop on Chat Invite''' specifies whether the adapter initiates a screen pop in Salesforce immediately after displaying a chat invite notification. If the option is not set or is set to false, the adapter initiates a screen pop only when an agent accepts the chat invite.&lt;br /&gt;
*'''Screen Pop on Email Invite''' specifies whether the adapter initiates a screen pop in Salesforce immediately after displaying an email invite notification. If the option is not set or is set to false, the adapter initiates a screen pop only when an agent accepts the email invite.&lt;br /&gt;
*'''Screen Pop on Outbound Email Create''' specifies whether the adapter initiates a screen pop in Salesforce immediately after creating an email.&lt;br /&gt;
*'''Screen Pop on Open Media Invite''' specifies whether the adapter initiates a screen pop in Salesforce immediately after displaying the open media invite notification. If the option is not set or is set to false, the adapter initiates a screen pop only when an agent accepts the open media invite. This option supports the items configured in the openmedia.workitem-channels.&lt;br /&gt;
*'''Enable Screen Pop for Consult''' specifies whether the adapter initiates a screen pop in Salesforce when using voice consult. This option works with option '''Update Attached Data on Transfer.'''&lt;br /&gt;
*'''Screen pop object type''' specifies the the type of object (for instance &amp;quot;URL&amp;quot; or &amp;quot;OBJECTHOME&amp;quot;) to screen pop in Salesforce.&lt;br /&gt;
*'''Screen pop URL section name''' specifies the URL for the screen pop object type.&lt;br /&gt;
*'''Screen pop Object home section name''' specifies the object home (for instance, an account or contact) for the screen pop object type.&lt;br /&gt;
*'''Screen pop List section name''' specifies a list view for the screen pop object type.&lt;br /&gt;
*'''Screen pop Search section name''' specifies the top results section of the search page for the screen pop object type.&lt;br /&gt;
*'''Screen pop New record section name''' specifies the new record name (for instance, new account or new contact name) for the screen pop object type.&lt;br /&gt;
*'''Screen pop Flow section name''' specifies the target UI screen flow for the screen pop object type.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Activity Log options&lt;br /&gt;
|anchor=ActivityLog&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=ActivityLog_Sept2020.png&lt;br /&gt;
|structuredtext=In the '''Activity Log''' section, configure the following options:&lt;br /&gt;
&lt;br /&gt;
*''Activity Log Field Mapping''' Specifies the name of the configuration section where the mapping is defined.&lt;br /&gt;
*'''Activity Log on Screen Pop''' specifies whether Adapter creates the activity in Salesforce on screen pop and modifies logged activity when interaction is marked done. Activity on screen pop is created for inbound and internal calls. This option depends on '''Screen Pop for Internal Calls''' being selected and the value of '''Voice Activity Log''' containing '''Inbound''' and '''Internal'''.&lt;br /&gt;
*'''Salesforce Activity Log Status''' specifies the custom task status to be applied when an activity log is created by Adapter. Prerequisite: The status must exist in the Salesforce Task Status Picklist.&lt;br /&gt;
|structuredtextwide=*'''Voice Activity Log''' specifies the call types for the adapter to create in the activity history for Salesforce.&lt;br /&gt;
*'''Chat Activity Log''' specifies the chat types for the adapter to create in the activity history for Salesforce.&lt;br /&gt;
*'''Open Media Activity Log''' specifies the open media types for the adapter to create in the activity history for Salesforce. To disable the open media activity log creation, set the option to None.&lt;br /&gt;
*'''Email Include in Activity Description''' specifies to include the text version of the email body in the activity description in Salesforce. The email body is saved for only inbound emails and outbound replies.&lt;br /&gt;
*'''Update Attached Data on Transfer''' specifies whether to update the call data with the ID of the Saleforce object the agent is viewing when performing a transfer or conference.  When set to '''True''', the agent that receives the voice or chat interaction gets a screen pop for the most relevant object.&lt;br /&gt;
*'''Chat Include Transcript in Description''' specifies whether the adapter saves the chat transcript, as part of the activity description in Salesforce.&lt;br /&gt;
*'''Chat Transcript Custom Field Name''' specifies the name of a custom activity field in Salesforce.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Custom templates&lt;br /&gt;
|anchor=CustomTemplates&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=You can specify what the adapter saves for the subject field in the Salesforce activity by using custom templates with the following options:&lt;br /&gt;
&lt;br /&gt;
*Templates Salesforce Inbound-Voice Subject&lt;br /&gt;
*Templates Salesforce Outbound-Voice Subject&lt;br /&gt;
*Templates Salesforce Transfer-Voice Subject&lt;br /&gt;
*Templates Salesforce Chat Subject&lt;br /&gt;
*Templates Salesforce Email Subject&lt;br /&gt;
&lt;br /&gt;
The value specified for each of these fields can be a combination of text and parameters to achieve the desired result for each type of interaction.&lt;br /&gt;
&lt;br /&gt;
For example, you might want the activity for all inbound voice calls to have details about the customer's name and phone number. In this case, here's how you would configure the option:&amp;lt;div class=&amp;quot;pdf-table-landscape&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Templates Salesforce Inbound-Voice Subject = Customer: {interaction.contact}, Phone Number: {interaction.ani}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/div&amp;gt;If a call comes in from Willard Clinton at 123-456-7890, when the call ends the adapter creates the related activity in Salesforce with following subject field: &amp;lt;code&amp;gt;Customer: Willard Clinton, Phone Number: 123-456-7890&amp;lt;/code&amp;gt; Another common use case might be to include information from UserData for all inbound calls. This could come from your own UserData keys or from UserData provided by Agent Desktop. For example, you want the activity history's subject to include information from your own UserData key, PurposeOfCall, and the contact's name. Here's how you should configure the option:&amp;lt;div class=&amp;quot;pdf-table-landscape&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Templates Salesforce Inbound-Voice Subject = Call from {interaction.contact} about {userData.PurposeOfCall}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/div&amp;gt;In this scenario, if Willard Clinton calls into the contact center and chooses the Technical Support option in the IVR, that information is saved in the PurposeOfCall UserData key. When the call ends, the adapter creates the related activity in Salesforce with the following subject field: &amp;lt;code&amp;gt;Call from Willard Clinton about Technical Support&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The adapter supports the following templating variables:&lt;br /&gt;
{{{!}}&lt;br /&gt;
!'''Variable'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.ani&lt;br /&gt;
{{!}}The number that originated the call. This variable identifies the caller for inbound calls and is best used in inbound templates.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.callType&lt;br /&gt;
{{!}}The type of call (inbound/outbound).&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.caseId&lt;br /&gt;
{{!}}The unique ID of the related case.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.contact&lt;br /&gt;
{{!}}The first and last name of contact.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.dnis&lt;br /&gt;
{{!}}The last call dialed (useful for call transfer). This variable identifies the outbound location for outbound calls and is best used in outbound templates.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.endDate&lt;br /&gt;
{{!}}The date and time when interaction ended.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.isConsultation&lt;br /&gt;
{{!}}This is true if the interaction is a consultation.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}interaction.startDate&lt;br /&gt;
{{!}}The date and time when the interaction started.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}userData.&amp;lt;key&amp;gt;&lt;br /&gt;
{{!}}This can be any UserData key available for the interaction. You might also find some of the following UserData keys useful (they're included by default by Agent Desktop on transfers):&lt;br /&gt;
&lt;br /&gt;
*userData.GCS_TransferringAgentName &amp;amp;mdash; The name of the transferring agent.&lt;br /&gt;
*userData.GCS_TransferringDate &amp;amp;mdash; The date and time of transfer.&lt;br /&gt;
*userData.GCS_TransferringEmployeeId &amp;amp;mdash; The ID of the transferring employee.&lt;br /&gt;
*userData.GCS_TransferringReason &amp;amp;mdash; The reason for the transfer. This is an empty string if no reason exists.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}contact.EmailAddresses&lt;br /&gt;
{{!}}A list of email addresses associated with the contact.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}contact.PhoneNumbers&lt;br /&gt;
{{!}}A list of phone numbers associated with the contact.&lt;br /&gt;
{{!}}}&amp;lt;br /&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:ToolTip_GAPI-20784.png&amp;diff=65544</id>
		<title>File:ToolTip GAPI-20784.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:ToolTip_GAPI-20784.png&amp;diff=65544"/>
		<updated>2020-09-04T14:42:42Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:GenesysSoftphone_GAPI-23465.png&amp;diff=65542</id>
		<title>File:GenesysSoftphone GAPI-23465.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:GenesysSoftphone_GAPI-23465.png&amp;diff=65542"/>
		<updated>2020-09-04T14:10:10Z</updated>

		<summary type="html">&lt;p&gt;Mgionet: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mgionet</name></author>
		
	</entry>
</feed>