Difference between revisions of "WID/Current/SDK/WebChatService-combined"
(Published) |
|||
Line 2: | Line 2: | ||
|Standalone=No | |Standalone=No | ||
|DisplayName=WebChatService | |DisplayName=WebChatService | ||
+ | |TocName=WebChatService | ||
+ | |Context=Learn how to use Genesys chat services. | ||
+ | |ComingSoon=No | ||
|Platform=PureEngage | |Platform=PureEngage | ||
− | |||
|Role=Developer | |Role=Developer | ||
− | |||
− | |||
|Section={{Section | |Section={{Section | ||
+ | |sectionHeading=API Events | ||
+ | |anchor=events | ||
+ | |alignment=Vertical | ||
+ | |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. | ||
+ | |||
+ | {{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-SomewhereInThisManual|topic=GWCBusExtensions|anchor=top|display text=Widgets Extensions}} for more information about extending Genesys Widgets.|1}} | ||
+ | |||
+ | <source lang="javascript">var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin'); | ||
+ | |||
+ | oMyPlugin.subscribe('WebChatService.ready', function(e){});</source> | ||
+ | |||
+ | {{{!}} | ||
+ | {{!}}- | ||
+ | !Name | ||
+ | !Description | ||
+ | !Data | ||
+ | !Introduced / Updated | ||
+ | {{!}}- | ||
+ | {{!}}ready | ||
+ | {{!}}WebChatService is initialized and ready to accept commands. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}restored | ||
+ | {{!}}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. | ||
+ | {{!}}{async: (boolean)} | ||
+ | {{!}}9.0.002.06 | ||
+ | {{!}}- | ||
+ | {{!}}restoreTimeout | ||
+ | {{!}}Chat session restoration attempted was denied after user navigated away from originating website for longer than the time limit: default 60 seconds. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}restoreFailed | ||
+ | {{!}}Could not restore chat session after page navigation or refresh. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}restoredOffline | ||
+ | {{!}}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. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}messageReceived | ||
+ | {{!}}A new message has been received from the server. Includes text messages, status messages, notices, and other message types. | ||
+ | {{!}}{originalMessages: (object), messages: (array of objects), restoring: (boolean), sessionData: (object)} | ||
+ | {{!}}9.0.002.06 | ||
+ | {{!}}- | ||
+ | {{!}}error | ||
+ | {{!}}An error occurred between the client and the server. | ||
+ | {{!}}(AJAX Response) | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}started | ||
+ | {{!}}Chat session has successfully started. | ||
+ | {{!}}(AJAX Response containing session data) | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}ended | ||
+ | {{!}}Chat session has successfully ended. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}agentTypingStarted | ||
+ | {{!}}Agents has started typing a new message. | ||
+ | {{!}}(AJAX Response) | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}agentTypingStopped | ||
+ | {{!}}Agent has stopped typing. | ||
+ | {{!}}(AJAX Response) | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}pollingStarted | ||
+ | {{!}}Chat server automatic polling has started. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}pollingStopped | ||
+ | {{!}}Chat server automatic polling has stopped. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}clientConnected | ||
+ | {{!}}Indicates the user has been connected to the chat session. | ||
+ | {{!}}{message: (object), agents: (object), numAgentsConnected: (number)} | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}clientDisconnected | ||
+ | {{!}}Indicates the user has been disconnected form the chat session. | ||
+ | {{!}}{message: (object), agents: (object), numAgentsConnected: (number)} | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}agentConnected | ||
+ | {{!}}Indicates an agent has connected to the chat. | ||
+ | {{!}}{message: (object), agents: (object), numAgentsConnected: (number)} | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}agentDisconnected | ||
+ | {{!}}Indicates an agent has disconnected from the chat. | ||
+ | {{!}}{message: (object), agents: (object), numAgentsConnected: (number)} | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}supervisorConnected | ||
+ | {{!}}Indicates a supervisor has connected to the chat. | ||
+ | {{!}}{message: (object), agents: (object), numAgentsConnected: (number)} | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}supervisorDisconnected | ||
+ | {{!}}Indicates a supervisor has disconnected from the chat. | ||
+ | {{!}}{message: (object), agents: (object), numAgentsConnected: (number)} | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}botConnected | ||
+ | {{!}}<nowiki>Indicates a bot has connected to the chat. | ||
+ | {{NoteFormat</nowiki> | ||
+ | {{!}}<nowiki>This event is applicable only when using {{Link-SomewhereInThisManual</nowiki> | ||
+ | {{!}}topic=WebChatService-combined | ||
+ | {{!}}anchor=configoptions | ||
+ | {{!}}<nowiki>display text=WebChat with GMS API}}.}}</nowiki> | ||
+ | {{!}}{message: (object), agents: (object), numAgentsConnected: (number)} | ||
+ | {{!}}9.0.014.13 | ||
+ | {{!}}- | ||
+ | {{!}}botDisconnected | ||
+ | {{!}}<nowiki>Indicates a bot has disconnected from the chat. | ||
+ | {{NoteFormat</nowiki> | ||
+ | {{!}}<nowiki>This event is applicable only when using {{Link-SomewhereInThisManual</nowiki> | ||
+ | {{!}}topic=WebChatService-combined | ||
+ | {{!}}anchor=configoptions | ||
+ | {{!}}<nowiki>display text=WebChat with GMS API}}.}}</nowiki> | ||
+ | {{!}}{message: (object), agents: (object), numAgentsConnected: (number)} | ||
+ | {{!}}9.0.014.13 | ||
+ | {{!}}- | ||
+ | {{!}}clientTypingStarted | ||
+ | {{!}}The user has started typing. Sends an event to the agent. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}clientTypingStopped | ||
+ | {{!}}After a user stops typing, a countdown begins. When the countdown completes, the typing notification will clear for the agent. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}disconnected | ||
+ | {{!}}Cannot reach servers. No connection. Either the user is offline or the server is offline. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}reconnected | ||
+ | {{!}}Connection restored. This event is only published after 'disconnected'. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}chatServerWentOffline | ||
+ | {{!}}<nowiki>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</nowiki> | ||
+ | {{!}}<nowiki>This event is applicable only when using {{Link-SomewhereInThisManual</nowiki> | ||
+ | {{!}}topic=WebChatService-combined | ||
+ | {{!}}anchor=configoptions | ||
+ | {{!}}<nowiki>display text=WebChat with GMS API}}.}}</nowiki> | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}chatServerBackOnline | ||
+ | {{!}}<nowiki>Chat server had come back online after going offline. This will only be published after 'chatServerWentOffline'. | ||
+ | |||
+ | {{NoteFormat</nowiki> | ||
+ | {{!}}<nowiki>This event is applicable only when using {{Link-SomewhereInThisManual</nowiki> | ||
+ | {{!}}topic=WebChatService-combined | ||
+ | {{!}}anchor=configoptions | ||
+ | {{!}}<nowiki>display text=WebChat with GMS API}}.}}</nowiki> | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}connectionPending | ||
+ | {{!}}<nowiki>If there is a connection problem and WebChatService is trying to reconnect, this event will be published. Published before 'chatServerWentOffline'. | ||
+ | |||
+ | {{NoteFormat</nowiki> | ||
+ | {{!}}<nowiki>This event is applicable only when using {{Link-SomewhereInThisManual</nowiki> | ||
+ | {{!}}topic=WebChatService-combined | ||
+ | {{!}}anchor=configoptions | ||
+ | {{!}}<nowiki>display text=WebChat with GMS API}}.}}</nowiki> | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}connectionRestored | ||
+ | {{!}}Is published when the connection has be reestablished. Publishes at the same time as 'chatServerBackOnline'. | ||
+ | {{!}}n/a | ||
+ | {{!}} | ||
+ | {{!}}- | ||
+ | {{!}}} | ||
+ | |Status=No | ||
+ | }}{{Section | ||
|sectionHeading=Overview | |sectionHeading=Overview | ||
− | |||
− | |||
|alignment=Vertical | |alignment=Vertical | ||
|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. | |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. | ||
Line 39: | Line 231: | ||
WebChatService has many configuration options but no customization options. It is a plug-and-play plugin and works as is. | WebChatService has many configuration options but no customization options. It is a plug-and-play plugin and works as is. | ||
− | |||
− | |||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
|sectionHeading=Configuration | |sectionHeading=Configuration | ||
|anchor=config | |anchor=config | ||
− | |||
− | |||
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext= | + | |structuredtext=WebChat and WebChatService share the '''_genesys.widgets.webchat''' configuration namespace. WebChat contains the UI options and WebChatService contains the connection options. |
− | WebChat and WebChatService share the '''_genesys.widgets.webchat''' configuration namespace. WebChat contains the UI options and WebChatService contains the connection options. | ||
{{NoteFormat|Starting with version 9.0.008.04, WebChatService allows you to choose between the types of chat services {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=configoptions|display text=available}} in Genesys via the transport section configuration {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=t-1|display text=options}}.}} | {{NoteFormat|Starting with version 9.0.008.04, WebChatService allows you to choose between the types of chat services {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=configoptions|display text=available}} in Genesys via the transport section configuration {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=t-1|display text=options}}.}} | ||
Line 133: | Line 320: | ||
===Options=== | ===Options=== | ||
− | <tabber> | + | <nowiki><tabber></nowiki> |
GMS API= | GMS API= | ||
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Name | + | !Name |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
− | ! Default | + | !Default |
− | ! Required | + | !Required |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} apikey | + | {{!}}apikey |
− | {{!}} string | + | {{!}}string |
− | {{!}} Apigee Proxy secure token. | + | {{!}}Apigee Proxy secure token. |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} Yes, if using Apigee Proxy | + | {{!}}Yes, if using Apigee Proxy |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} endpoint | + | {{!}}endpoint |
− | {{!}} string | + | {{!}}string |
− | {{!}} Manually select the endpoint to initiate chat on. | + | {{!}}Manually select the endpoint to initiate chat on. |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} dataURL | + | {{!}}dataURL |
− | {{!}} string (URL) | + | {{!}}string (URL) |
− | {{!}} URL for GMS REST chat service. If cometD.enabled is set to true, this property will be ignored. | + | {{!}}URL for GMS REST chat service. If cometD.enabled is set to true, this property will be ignored. |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} Always | + | {{!}}Always |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} enableCustomHeader | + | {{!}}enableCustomHeader |
− | {{!}} boolean | + | {{!}}boolean |
− | {{!}} 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. | + | {{!}}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. |
− | {{!}} false | + | {{!}}false |
− | {{!}} No | + | {{!}}No |
− | {{!}} 9.0.002.06 | + | {{!}}9.0.002.06 |
{{!}}- | {{!}}- | ||
− | {{!}} userData | + | {{!}}userData |
− | {{!}} object | + | {{!}}object |
− | {{!}} Arbitrary attached data to include when initiating a chat. | + | {{!}}Arbitrary attached data to include when initiating a chat. |
− | {{!}} {} | + | {{!}}{} |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} ajaxTimeout | + | {{!}}ajaxTimeout |
− | {{!}} number | + | {{!}}number |
− | {{!}} Number of milliseconds to wait before AJAX timeout. | + | {{!}}Number of milliseconds to wait before AJAX timeout. |
− | {{!}} 3000 | + | {{!}}3000 |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} xhrFields | + | {{!}}xhrFields |
− | {{!}} object | + | {{!}}object |
− | {{!}} Allows you to set the properties for the AJAX xhrFields object (for example, {withCredentials: false}). | + | {{!}}Allows you to set the properties for the AJAX xhrFields object (for example, {withCredentials: false}). |
− | {{!}} {withCredentials: false} | + | {{!}}{withCredentials: false} |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} pollExceptionLimit | + | {{!}}pollExceptionLimit |
− | {{!}} number | + | {{!}}number |
− | {{!}} Number of successive poll exceptions (chat server offline) before WebChatService publishes 'chatServerWentOffline'. | + | {{!}}Number of successive poll exceptions (chat server offline) before WebChatService publishes 'chatServerWentOffline'. |
− | {{!}} 5 | + | {{!}}5 |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} restoreTimeout | + | {{!}}restoreTimeout |
− | {{!}} number | + | {{!}}number |
− | {{!}} 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). | + | {{!}}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). |
− | {{!}} 60000 | + | {{!}}60000 |
− | {{!}} | + | {{!}} |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}}} | + | {{!}}} |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
|sectionHeading=Localization | |sectionHeading=Localization | ||
|anchor=localize | |anchor=localize | ||
− | |||
− | |||
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext= | + | |structuredtext=WebChatService doesn't have any localization options. |
− | WebChatService doesn't have any localization options. | ||
− | |||
− | |||
|Status=No | |Status=No | ||
}}{{Section | }}{{Section | ||
|sectionHeading=API Commands | |sectionHeading=API Commands | ||
|anchor=commands | |anchor=commands | ||
− | |||
− | |||
|alignment=Vertical | |alignment=Vertical | ||
− | |structuredtext= | + | |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. |
− | 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. | ||
{{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-SomewhereInThisManual|topic=GWCBusExtensions|anchor=top|display text=Widgets Extensions}} for more information about extending Genesys Widgets.|1}} | {{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-SomewhereInThisManual|topic=GWCBusExtensions|anchor=top|display text=Widgets Extensions}} for more information about extending Genesys Widgets.|1}} | ||
− | <source lang= | + | <source lang="javascript">var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin'); |
oMyPlugin.command('WebChatService.getAgents');</source> | oMyPlugin.command('WebChatService.getAgents');</source> | ||
Line 355: | Line 424: | ||
Initiates a new chat session with the chat server via GMS or with the service configured under transport section. For use by WebChat widgets only. You must not invoke this manually. | Initiates a new chat session with the chat server via GMS or with the service configured under transport section. For use by WebChat widgets only. You must not invoke this manually. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.startChat', { | oMyPlugin.command('WebChatService.startChat', { | ||
Line 376: | Line 445: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} nickname | + | {{!}}nickname |
− | {{!}} string | + | {{!}}string |
− | {{!}} Chat Entry Form Data: 'nickname'. | + | {{!}}Chat Entry Form Data: 'nickname'. |
{{!}}- | {{!}}- | ||
− | {{!}} firstname | + | {{!}}firstname |
− | {{!}} string | + | {{!}}string |
− | {{!}} Chat Entry Form Data: 'firstname'. | + | {{!}}Chat Entry Form Data: 'firstname'. |
{{!}}- | {{!}}- | ||
− | {{!}} lastname | + | {{!}}lastname |
− | {{!}} string | + | {{!}}string |
− | {{!}} Chat Entry Form Data: 'lastname'. | + | {{!}}Chat Entry Form Data: 'lastname'. |
{{!}}- | {{!}}- | ||
− | {{!}} email | + | {{!}}email |
− | {{!}} string | + | {{!}}string |
− | {{!}} Chat Entry Form Data: 'email'. | + | {{!}}Chat Entry Form Data: 'email'. |
{{!}}- | {{!}}- | ||
− | {{!}} subject | + | {{!}}subject |
− | {{!}} string | + | {{!}}string |
− | {{!}} Chat Entry Form Data: 'subject'. | + | {{!}}Chat Entry Form Data: 'subject'. |
{{!}}- | {{!}}- | ||
− | {{!}} userData | + | {{!}}userData |
− | {{!}} object | + | {{!}}object |
− | {{!}} Arbitrary data to attach to the chat session (AKA attachedData). Properties defined here will be merged with default userData set in the configuration object. | + | {{!}}Arbitrary data to attach to the chat session (AKA attachedData). Properties defined here will be merged with default userData set in the configuration object. |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When server confirms session started | + | {{!}}When server confirms session started |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When a chat session is already active | + | {{!}}When a chat session is already active |
− | {{!}} 'There is already an active chat session' | + | {{!}}'There is already an active chat session' |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When AJAX exception occurs | + | {{!}}When AJAX exception occurs |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When server exception occurs | + | {{!}}When server exception occurs |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When userData is invalid | + | {{!}}When userData is invalid |
− | {{!}} 'malformed data object provided in userData property' | + | {{!}}'malformed data object provided in userData property' |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 444: | Line 513: | ||
Ends the chat session with the chat server via GMS or with the service configured under transport section. For use by WebChat widgets only. You must not invoke this manually. | Ends the chat session with the chat server via GMS or with the service configured under transport section. For use by WebChat widgets only. You must not invoke this manually. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.endChat').done(function(e){ | oMyPlugin.command('WebChatService.endChat').done(function(e){ | ||
Line 456: | Line 525: | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When active session is ended successfully | + | {{!}}When active session is ended successfully |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} If no chat session is currently active | + | {{!}}If no chat session is currently active |
− | {{!}} 'There is no active chat session' | + | {{!}}'There is no active chat session' |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 478: | Line 547: | ||
Sends a message from the client to the chat session. For use by WebChat widgets only. You must not invoke this manually. | Sends a message from the client to the chat session. For use by WebChat widgets only. You must not invoke this manually. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.sendMessage', {message: 'hi'}).done(function(e){ | oMyPlugin.command('WebChatService.sendMessage', {message: 'hi'}).done(function(e){ | ||
Line 490: | Line 559: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} message | + | {{!}}message |
− | {{!}} string | + | {{!}}string |
− | {{!}} The message you want to send | + | {{!}}The message you want to send |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When message is successfully sent | + | {{!}}When message is successfully sent |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} If no message text provided | + | {{!}}If no message text provided |
− | {{!}} 'No message text provided' | + | {{!}}'No message text provided' |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} If no chat session is currently active | + | {{!}}If no chat session is currently active |
− | {{!}} 'There is no active chat session' | + | {{!}}'There is no active chat session' |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When AJAX exception occurs | + | {{!}}When AJAX exception occurs |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 533: | Line 602: | ||
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 use this out of the box. | 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 use this out of the box. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.sendCustomNotice', {message: 'bye'}).done(function(e){ | oMyPlugin.command('WebChatService.sendCustomNotice', {message: 'bye'}).done(function(e){ | ||
Line 546: | Line 615: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} message | + | {{!}}message |
− | {{!}} string | + | {{!}}string |
− | {{!}} A message you want to send along with the custom notice | + | {{!}}A message you want to send along with the custom notice |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When message is successfully sent | + | {{!}}When message is successfully sent |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When AJAX exception occurs | + | {{!}}When AJAX exception occurs |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the server doesn't support receiving custom notices | + | {{!}}When the server doesn't support receiving custom notices |
− | {{!}} This transport doesn't support sendCustomNotice command. | + | {{!}}This transport doesn't support sendCustomNotice command. |
− | {{!}} 9.0.008.04 | + | {{!}}9.0.008.04 |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 589: | Line 658: | ||
Sends a 'customer typing' notification to chat session. A visual indication will be shown to agent. For use by WebChat widgets only. You must not invoke this manually. | Sends a 'customer typing' notification to chat session. A visual indication will be shown to agent. For use by WebChat widgets only. You must not invoke this manually. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.sendTyping').done(function(e){ | oMyPlugin.command('WebChatService.sendTyping').done(function(e){ | ||
Line 606: | Line 675: | ||
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} Message | + | {{!}}Message |
− | {{!}} String | + | {{!}}String |
− | {{!}} The message you want to send along with the typing notification | + | {{!}}The message you want to send along with the typing notification |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When AJAX request is successful | + | {{!}}When AJAX request is successful |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When AJAX exception occurs | + | {{!}}When AJAX exception occurs |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} If no chat session is currently active | + | {{!}}If no chat session is currently active |
− | {{!}} 'There is no active chat session' | + | {{!}}'There is no active chat session' |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 644: | Line 713: | ||
{{NoteFormat|Filters are now automatically stored and recalled on chat restore for the duration of the session.}} | {{NoteFormat|Filters are now automatically stored and recalled on chat restore for the duration of the session.}} | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.sendFilteredMessage', { | oMyPlugin.command('WebChatService.sendFilteredMessage', { | ||
Line 662: | Line 731: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} message | + | {{!}}message |
− | {{!}} string | + | {{!}}string |
− | {{!}} Message you want to send but don't want to appear in the transcript | + | {{!}}Message you want to send but don't want to appear in the transcript |
{{!}}- | {{!}}- | ||
− | {{!}} regex | + | {{!}}regex |
− | {{!}} RegExp | + | {{!}}RegExp |
− | {{!}} Regular expression to match the message | + | {{!}}Regular expression to match the message |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When there is an active session | + | {{!}}When there is an active session |
− | {{!}} n/a | + | {{!}}n/a |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} If no chat session is currently active | + | {{!}}If no chat session is currently active |
− | {{!}} 'No active chat session' | + | {{!}}'No active chat session' |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 703: | Line 772: | ||
{{NoteFormat|Filters are now automatically stored and recalled on chat restore for the duration of the session.}} | {{NoteFormat|Filters are now automatically stored and recalled on chat restore for the duration of the session.}} | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.addPrefilter', {filters: /[a-zA-Z]/}).done(function(e){ | oMyPlugin.command('WebChatService.addPrefilter', {filters: /[a-zA-Z]/}).done(function(e){ | ||
Line 717: | Line 786: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} filters | + | {{!}}filters |
− | {{!}} RegExp or Array of RegExp | + | {{!}}RegExp or Array of RegExp |
− | {{!}} Regular Expression(s) to add to the prefilter list | + | {{!}}Regular Expression(s) to add to the prefilter list |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When valid filters are provided | + | {{!}}When valid filters are provided |
− | {{!}} Array of all registered prefilters. | + | {{!}}Array of all registered prefilters. |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When invalid or missing filters provided | + | {{!}}When invalid or missing filters provided |
− | {{!}} 'Missing or invalid filters provided. Please provide a regular expression or an array of regular expressions.' | + | {{!}}'Missing or invalid filters provided. Please provide a regular expression or an array of regular expressions.' |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 752: | Line 821: | ||
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. | 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. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.updateUserData', {firstname: 'Joe'}).done(function(e){ | oMyPlugin.command('WebChatService.updateUserData', {firstname: 'Joe'}).done(function(e){ | ||
Line 765: | Line 834: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} object | + | {{!}}object |
− | {{!}} userData object you want to send to the server for this active session | + | {{!}}userData object you want to send to the server for this active session |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} Session is active and userData is successfully sent | + | {{!}}Session is active and userData is successfully sent |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} Session is active and AJAX exception occurs | + | {{!}}Session is active and AJAX exception occurs |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} Session is not active and internal userData object is merged with new userData properties provided | + | {{!}}Session is not active and internal userData object is merged with new userData properties provided |
− | {{!}} The internal userData object that will be sent to the server | + | {{!}}The internal userData object that will be sent to the server |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} Session is active and the server doesn't support updating userData | + | {{!}}Session is active and the server doesn't support updating userData |
− | {{!}} This transport doesn't support updating userData during an active chat session. | + | {{!}}This transport doesn't support updating userData during an active chat session. |
− | {{!}} 9.0.008.04 | + | {{!}}9.0.008.04 |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 814: | Line 883: | ||
Internal use only. Starts polling for new messages. For use by WebChat widgets only. You must not invoke this manually. | Internal use only. Starts polling for new messages. For use by WebChat widgets only. You must not invoke this manually. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.poll').done(function(e){ | oMyPlugin.command('WebChatService.poll').done(function(e){ | ||
Line 827: | Line 896: | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When there is an active session | + | {{!}}When there is an active session |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} WebChatService isn't calling this command | + | {{!}}WebChatService isn't calling this command |
− | {{!}} 'Access Denied to private command. Only WebChatService is allowed to invoke this command.' | + | {{!}}'Access Denied to private command. Only WebChatService is allowed to invoke this command.' |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} If no chat session is currently active | + | {{!}}If no chat session is currently active |
− | {{!}} 'previous poll has not finished.' | + | {{!}}'previous poll has not finished.' |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the server doesn't support polling | + | {{!}}When the server doesn't support polling |
− | {{!}} 'This transport doesn't support polling.' | + | {{!}}'This transport doesn't support polling.' |
− | {{!}} 9.0.008.04 | + | {{!}}9.0.008.04 |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 862: | Line 931: | ||
Starts automatic polling for new messages. For use by WebChat widgets only. You must not invoke this manually. | Starts automatic polling for new messages. For use by WebChat widgets only. You must not invoke this manually. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.startPoll').done(function(e){ | oMyPlugin.command('WebChatService.startPoll').done(function(e){ | ||
Line 875: | Line 944: | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When there is an active session | + | {{!}}When there is an active session |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When no chat session is currently active | + | {{!}}When no chat session is currently active |
− | {{!}} No active chat session | + | {{!}}No active chat session |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the server doesn't support polling | + | {{!}}When the server doesn't support polling |
− | {{!}} This transport doesn't support polling | + | {{!}}This transport doesn't support polling |
− | {{!}} 9.0.008.04 | + | {{!}}9.0.008.04 |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 905: | Line 974: | ||
Stops automatic polling for new messages. For use by WebChat widgets only. You must not invoke this manually. | Stops automatic polling for new messages. For use by WebChat widgets only. You must not invoke this manually. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.stopPoll').done(function(e){ | oMyPlugin.command('WebChatService.stopPoll').done(function(e){ | ||
Line 918: | Line 987: | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When there is an active session | + | {{!}}When there is an active session |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} If no chat session is currently active | + | {{!}}If no chat session is currently active |
− | {{!}} No active chat session | + | {{!}}No active chat session |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the server doesn't support polling | + | {{!}}When the server doesn't support polling |
− | {{!}} This transport doesn't support polling | + | {{!}}This transport doesn't support polling |
− | {{!}} 9.0.008.04 | + | {{!}}9.0.008.04 |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 948: | Line 1,017: | ||
Resets the poll exception count to 0. pollExceptionLimit is set in the configuration. | Resets the poll exception count to 0. pollExceptionLimit is set in the configuration. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.resetPollExceptions').done(function(e){ | oMyPlugin.command('WebChatService.resetPollExceptions').done(function(e){ | ||
Line 961: | Line 1,030: | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} Always | + | {{!}}Always |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the server doesn't support polling | + | {{!}}When the server doesn't support polling |
− | {{!}} This transport doesn't support resetPollExceptions command. | + | {{!}}This transport doesn't support resetPollExceptions command. |
− | {{!}} 9.0.008.04 | + | {{!}}9.0.008.04 |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 986: | Line 1,055: | ||
Internal use only. For use by WebChat widgets only. You must not invoke this manually unless you are using Async mode. | Internal use only. For use by WebChat widgets only. You must not invoke this manually unless you are using Async mode. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.restore').done(function(e){ | oMyPlugin.command('WebChatService.restore').done(function(e){ | ||
Line 999: | Line 1,068: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
− | ! Accepted Values | + | !Accepted Values |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} sessionData | + | {{!}}sessionData |
− | {{!}} string | + | {{!}}string |
− | {{!}} 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 PureEngage v3 API. For more information, see the “PureEngage v3” tab in the “Options” table in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=configoptions|display text=WebChatService Configuration}}. | + | {{!}}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 PureEngage v3 API. For more information, see the “PureEngage v3” tab in the “Options” table in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=configoptions|display text=WebChatService Configuration}}. |
− | {{!}} (JWT string token) | + | {{!}}(JWT string token) |
− | {{!}} 9.0.008.04 | + | {{!}}9.0.008.04 |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} Session has been found. | + | {{!}}Session has been found. |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} Session cannot be found. | + | {{!}}Session cannot be found. |
− | {{!}} n/a | + | {{!}}n/a |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} Restoring chat session is in progress. | + | {{!}}Restoring chat session is in progress. |
− | {{!}} Already restoring. Ignoring request. | + | {{!}}Already restoring. Ignoring request. |
− | {{!}} 9.0.002.06 | + | {{!}}9.0.002.06 |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} Chat session is already active. | + | {{!}}Chat session is already active. |
− | {{!}} Chat session is already active, ignoring restore command. | + | {{!}}Chat session is already active, ignoring restore command. |
− | {{!}} 9.0.002.06 | + | {{!}}9.0.002.06 |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} Trying restore chat session manually. | + | {{!}}Trying restore chat session manually. |
− | {{!}} Access Denied to private command. Only WebChatService is allowed to invoke this command in Non-Async mode. | + | {{!}}Access Denied to private command. Only WebChatService is allowed to invoke this command in Non-Async mode. |
− | {{!}} 9.0.002.06 | + | {{!}}9.0.002.06 |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 1,059: | Line 1,128: | ||
{{NoteFormat|For more information on the fields included in JSON response, see [https://docs.genesys.com/Documentation:GMS:API:APIResponses#Digital_Channels_Chat_V2_Response_Format Digital Channels Chat V2 Response Format].}} | {{NoteFormat|For more information on the fields included in JSON response, see [https://docs.genesys.com/Documentation:GMS:API:APIResponses#Digital_Channels_Chat_V2_Response_Format Digital Channels Chat V2 Response Format].}} | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.getTranscript').done(function(e){ | oMyPlugin.command('WebChatService.getTranscript').done(function(e){ | ||
Line 1,073: | Line 1,142: | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} Always | + | {{!}}Always |
− | {{!}} Object with an array of messages | + | {{!}}Object with an array of messages |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 1,089: | Line 1,158: | ||
===getAgents=== | ===getAgents=== | ||
− | + | Return a list of agents currently participating in the chat. | |
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.getAgents').done(function(e){ | oMyPlugin.command('WebChatService.getAgents').done(function(e){ | ||
Line 1,105: | Line 1,174: | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} Always | + | {{!}}Always |
− | {{!}} (Object List) {name: (String), connected: (Boolean), supervisor: (Boolean), connectedTime: (int time),disconnectedTime: (int time)} | + | {{!}}(Object List) {name: (String), connected: (Boolean), supervisor: (Boolean), connectedTime: (int time),disconnectedTime: (int time)} |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 1,123: | Line 1,192: | ||
Returns stats on chat session including start time, end time, duration, and list of agents. | Returns stats on chat session including start time, end time, duration, and list of agents. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.getStats').done(function(e){ | oMyPlugin.command('WebChatService.getStats').done(function(e){ | ||
Line 1,137: | Line 1,206: | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} Always | + | {{!}}Always |
− | {{!}} {agents: (Object), startTime: (int time), endTime: (int time), duration: (int time)} | + | {{!}}{agents: (Object), startTime: (int time), endTime: (int time), duration: (int time)} |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 1,159: | Line 1,228: | ||
{{NoteFormat|This command is not applicable when using Chat via GMS.}} | {{NoteFormat|This command is not applicable when using Chat via GMS.}} | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.sendFile', {files: $('<input/>').attr('type', 'file') /* Only works on UI, can not dynamically change */ }).done(function(e){ | oMyPlugin.command('WebChatService.sendFile', {files: $('<input/>').attr('type', 'file') /* Only works on UI, can not dynamically change */ }).done(function(e){ | ||
Line 1,172: | Line 1,241: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} files | + | {{!}}files |
− | {{!}} File | + | {{!}}File |
− | {{!}} A reference to a file input element (for example <input type=“file”/>) | + | {{!}}A reference to a file input element (for example <input type=“file”/>) |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When the file sent is a valid type and size | + | {{!}}When the file sent is a valid type and size |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the file sent is an invalid type | + | {{!}}When the file sent is an invalid type |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the number of uploads is exceeded | + | {{!}}When the number of uploads is exceeded |
− | {{!}} | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the file size exceeds the limit | + | {{!}}When the file size exceeds the limit |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the file size is too large or an unknown error occurs | + | {{!}}When the file size is too large or an unknown error occurs |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When the server doesn't support file uploads | + | {{!}}When the server doesn't support file uploads |
− | {{!}} This transport doesn't support file uploads | + | {{!}}This transport doesn't support file uploads |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | == downloadFile == | + | ==downloadFile== |
Downloads the file to the client machine. | Downloads the file to the client machine. | ||
<br /><br /> | <br /><br /> | ||
− | === Example === | + | ===Example=== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.downloadFile', {fileId: '1', fileName: 'myfile.txt'}).done(function(e){ | oMyPlugin.command('WebChatService.downloadFile', {fileId: '1', fileName: 'myfile.txt'}).done(function(e){ | ||
Line 1,236: | Line 1,305: | ||
<br /> | <br /> | ||
− | === Options === | + | ===Options=== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
{{!}}field | {{!}}field | ||
Line 1,250: | Line 1,319: | ||
{{!}}} | {{!}}} | ||
− | === Resolutions === | + | ===Resolutions=== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
{{!}}resolved | {{!}}resolved | ||
Line 1,270: | Line 1,339: | ||
Retrieves the active session data at any time. | Retrieves the active session data at any time. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.getSessionData') | oMyPlugin.command('WebChatService.getSessionData') | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
− | ! Introduced / Updated | + | !Introduced / Updated |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} 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=configoptions|display text=WebChatService Configuration.}} | + | {{!}}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=configoptions|display text=WebChatService Configuration.}} |
− | {{!}} {secureKey: (string), sessionID: (number/string), alias: (number/string), userId: (number/string)} | + | {{!}}{secureKey: (string), sessionID: (number/string), alias: (number/string), userId: (number/string)} |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} Always, when using Chat via PureEngage v3 API. For more information, see the 'PureEngage v3' tab in the 'Options' table in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=configoptions|display text=WebChatService Configuration.}} | + | {{!}}Always, when using Chat via PureEngage v3 API. For more information, see the 'PureEngage v3' tab in the 'Options' table in {{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|anchor=configoptions|display text=WebChatService Configuration.}} |
− | {{!}} {participantId: (string), sessionId: {string), token: (string), transportId: (string)} | + | {{!}}{participantId: (string), sessionId: {string), token: (string), transportId: (string)} |
− | {{!}} 9.0.008.04 | + | {{!}}9.0.008.04 |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} Never | + | {{!}}Never |
− | {{!}} undefined | + | {{!}}undefined |
− | {{!}} | + | {{!}} |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 1,308: | Line 1,377: | ||
For use with WebChat Widget only. 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. | For use with WebChat Widget only. 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. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.fetchHistory') | oMyPlugin.command('WebChatService.fetchHistory') | ||
</source> | </source> | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When old messages are retrieved. | + | {{!}}When old messages are retrieved. |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When request fails. | + | {{!}}When request fails. |
− | {{!}} (AJAX Response Object) | + | {{!}}(AJAX Response Object) |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When Asynchronous mode is not enabled. | + | {{!}}When Asynchronous mode is not enabled. |
− | {{!}} Fetching history messages applies only to Asynchronous chat | + | {{!}}Fetching history messages applies only to Asynchronous chat |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When all messages are received | + | {{!}}When all messages are received |
− | {{!}} No more messages to fetch | + | {{!}}No more messages to fetch |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 1,344: | Line 1,413: | ||
Selects an HTML input to watch for key events. Used to trigger startTyping and stopTyping automatically. For use by WebChat widgets only. You must not invoke this manually. | Selects an HTML input to watch for key events. Used to trigger startTyping and stopTyping automatically. For use by WebChat widgets only. You must not invoke this manually. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang= | + | <source lang="javascript"> |
oMyPlugin.command('WebChatService.registerTypingPreviewInput', {input: $('input') }).done(function(e){ | oMyPlugin.command('WebChatService.registerTypingPreviewInput', {input: $('input') }).done(function(e){ | ||
Line 1,357: | Line 1,426: | ||
</source> | </source> | ||
− | ==== Options ==== | + | ====Options==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Option | + | !Option |
− | ! Type | + | !Type |
− | ! Description | + | !Description |
{{!}}- | {{!}}- | ||
− | {{!}} input | + | {{!}}input |
− | {{!}} HTML Reference | + | {{!}}HTML Reference |
− | {{!}} An HTML reference to a text or textarea input | + | {{!}}An HTML reference to a text or textarea input |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
− | ==== Resolutions ==== | + | ====Resolutions==== |
{{{!}} | {{{!}} | ||
{{!}}- | {{!}}- | ||
− | ! Status | + | !Status |
− | ! When | + | !When |
− | ! Returns | + | !Returns |
{{!}}- | {{!}}- | ||
− | {{!}} resolved | + | {{!}}resolved |
− | {{!}} When valid HTML input reference is provided | + | {{!}}When valid HTML input reference is provided |
− | {{!}} n/a | + | {{!}}n/a |
{{!}}- | {{!}}- | ||
− | {{!}} rejected | + | {{!}}rejected |
− | {{!}} When invalid or missing HTML input reference | + | {{!}}When invalid or missing HTML input reference |
− | {{!}} 'Invalid value provided for the 'input' property. An HTML element reference to a textarea or text input is required.' | + | {{!}}'Invalid value provided for the 'input' property. An HTML element reference to a textarea or text input is required.' |
{{!}}- | {{!}}- | ||
{{!}}} | {{!}}} | ||
Line 1,393: | Line 1,462: | ||
Registers a function that receives the message object, allowing you to manipulate the values before it is rendered in the transcript. | Registers a function that receives the message object, allowing you to manipulate the values before it is rendered in the transcript. | ||
− | ==== Example ==== | + | ====Example==== |
− | <source lang='javascript'> | + | <nowiki><source lang='javascript'></nowiki> |
oMyPlugin.command('WebChatService.registerPreProcessor', {preprocessor: function(message){ | oMyPlugin.command('WebChatService.registerPreProcessor', {preprocessor: function(message){ | ||
Line 1,401: | Line 1,470: | ||
return message; | return message; | ||
− | + | |Status=No | |
+ | }} | ||
+ | }} | ||
}}).done(function(e){ | }}).done(function(e){ | ||
Line 1,444: | Line 1,515: | ||
{{!}} No preprocessor function provided. Type provided was '<DATATYPE>'. | {{!}} No preprocessor function provided. Type provided was '<DATATYPE>'. | ||
{{!}}- | {{!}}- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{!}}} | {{!}}} | ||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 20:43, April 6, 2020
Learn how to use Genesys chat services.
API Events
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.
var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin');
oMyPlugin.subscribe('WebChatService.ready', function(e){});
Name | Description | Data | Introduced / Updated | ||||
---|---|---|---|---|---|---|---|
ready | WebChatService is initialized and ready to accept commands. | n/a | |||||
restored | 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. | {async: (boolean)} | 9.0.002.06 | ||||
restoreTimeout | Chat session restoration attempted was denied after user navigated away from originating website for longer than the time limit: default 60 seconds. | n/a | |||||
restoreFailed | Could not restore chat session after page navigation or refresh. | n/a | |||||
restoredOffline | 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. | n/a | |||||
messageReceived | A new message has been received from the server. Includes text messages, status messages, notices, and other message types. | {originalMessages: (object), messages: (array of objects), restoring: (boolean), sessionData: (object)} | 9.0.002.06 | ||||
error | An error occurred between the client and the server. | (AJAX Response) | |||||
started | Chat session has successfully started. | (AJAX Response containing session data) | |||||
ended | Chat session has successfully ended. | n/a | |||||
agentTypingStarted | Agents has started typing a new message. | (AJAX Response) | |||||
agentTypingStopped | Agent has stopped typing. | (AJAX Response) | |||||
pollingStarted | Chat server automatic polling has started. | n/a | |||||
pollingStopped | Chat server automatic polling has stopped. | n/a | |||||
clientConnected | Indicates the user has been connected to the chat session. | {message: (object), agents: (object), numAgentsConnected: (number)} | |||||
clientDisconnected | Indicates the user has been disconnected form the chat session. | {message: (object), agents: (object), numAgentsConnected: (number)} | |||||
agentConnected | Indicates an agent has connected to the chat. | {message: (object), agents: (object), numAgentsConnected: (number)} | |||||
agentDisconnected | Indicates an agent has disconnected from the chat. | {message: (object), agents: (object), numAgentsConnected: (number)} | |||||
supervisorConnected | Indicates a supervisor has connected to the chat. | {message: (object), agents: (object), numAgentsConnected: (number)} | |||||
supervisorDisconnected | Indicates a supervisor has disconnected from the chat. | {message: (object), agents: (object), numAgentsConnected: (number)} | |||||
botConnected | Indicates a bot has connected to the chat. {{NoteFormat | This event is applicable only when using {{Link-SomewhereInThisManual | topic=WebChatService-combined | anchor=configoptions | display text=WebChat with GMS API}}.}} | {message: (object), agents: (object), numAgentsConnected: (number)} | 9.0.014.13 |
botDisconnected | Indicates a bot has disconnected from the chat. {{NoteFormat | This event is applicable only when using {{Link-SomewhereInThisManual | topic=WebChatService-combined | anchor=configoptions | display text=WebChat with GMS API}}.}} | {message: (object), agents: (object), numAgentsConnected: (number)} | 9.0.014.13 |
clientTypingStarted | The user has started typing. Sends an event to the agent. | n/a | |||||
clientTypingStopped | After a user stops typing, a countdown begins. When the countdown completes, the typing notification will clear for the agent. | n/a | |||||
disconnected | Cannot reach servers. No connection. Either the user is offline or the server is offline. | n/a | |||||
reconnected | Connection restored. This event is only published after 'disconnected'. | n/a | |||||
chatServerWentOffline | 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-SomewhereInThisManual | topic=WebChatService-combined | anchor=configoptions | display text=WebChat with GMS API}}.}} | n/a | |
chatServerBackOnline | Chat server had come back online after going offline. This will only be published after 'chatServerWentOffline'. {{NoteFormat | This event is applicable only when using {{Link-SomewhereInThisManual | topic=WebChatService-combined | anchor=configoptions | display text=WebChat with GMS API}}.}} | n/a | |
connectionPending | If there is a connection problem and WebChatService is trying to reconnect, this event will be published. Published before 'chatServerWentOffline'. {{NoteFormat | This event is applicable only when using {{Link-SomewhereInThisManual | topic=WebChatService-combined | anchor=configoptions | display text=WebChat with GMS API}}.}} | n/a | |
connectionRestored | Is published when the connection has be reestablished. Publishes at the same time as 'chatServerBackOnline'. | n/a |
Overview
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.
Usage
WebChatService and the matching WebChat widget work together right out of the box and they share the same configuration object. Using WebChat uses WebChatService.
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.
Namespace
The WebChat Service plugin has the following namespaces tied up with each of the following types:
Type | Namespace |
---|---|
Configuration | webchat |
CXBus—API commands & API events | WebChatService |
Customization
WebChatService has many configuration options but no customization options. It is a plug-and-play plugin and works as is.
Configuration
WebChat and WebChatService share the _genesys.widgets.webchat configuration namespace. WebChat contains the UI options and WebChatService contains the connection options.
Example
// When using GMS API window._genesys.widgets.webchat = { apikey: 'n3eNkgxxxxxxxxxxxx8VA', dataURL: 'https://api.genesyscloud.com/gms-chat/2/chat', enableCustomHeader: true, userData: {}, emojis: true, actionsMenu: true, autoInvite: { enabled: false, timeToInviteSeconds: 10, inviteTimeoutSeconds: 30 }, chatButton: { enabled: true, template: '<div>CHAT NOW</div>', effect: 'fade', openDelay: 1000, effectDuration: 300, hideDuringInvite: true } }; // When using PureEngage v3 API window._genesys.widgets.webchat = { emojis: true, userData: {}, transport: { type: 'pureengage-v3-rest', dataURL: https://<hostname>/nexus/v3/chat/sessions, endpoint: 'xxxxxxxxx', headers: { 'x-api-key': 'xxxxxxxx' }, async: { enabled: true, getSessionData: function(sessionData, Cookie, CookieOptions) { // Note: You don't have to use Cookies. You can, instead, store in a secured location like a database. Cookie.set('customer-defined-session-cookie', JSON.stringify(sessionData), CookieOptions); }, setSessionData: function(Open, Cookie, CookieOptions) { // Retrieve from your secured location. return Cookie.get('customer-defined-session-cookie'); } }, chatButton: { enabled: true, template: '<div>CHAT NOW</div>', effect: 'fade', openDelay: 1000, effectDuration: 300, hideDuringInvite: true } };
Options
<tabber> GMS API=
Name | Type | Description | Default | Required | Introduced / Updated |
---|---|---|---|---|---|
apikey | string | Apigee Proxy secure token. | n/a | Yes, if using Apigee Proxy | |
endpoint | string | Manually select the endpoint to initiate chat on. | n/a | n/a | |
dataURL | string (URL) | URL for GMS REST chat service. If cometD.enabled is set to true, this property will be ignored. | n/a | Always | |
enableCustomHeader | boolean | 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. | false | No | 9.0.002.06 |
userData | object | Arbitrary attached data to include when initiating a chat. | {} | n/a | |
ajaxTimeout | number | Number of milliseconds to wait before AJAX timeout. | 3000 | n/a | |
xhrFields | object | Allows you to set the properties for the AJAX xhrFields object (for example, {withCredentials: false}). | {withCredentials: false} | n/a | |
pollExceptionLimit | number | Number of successive poll exceptions (chat server offline) before WebChatService publishes 'chatServerWentOffline'. | 5 | n/a | |
restoreTimeout | number | 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). | 60000 |
Localization
WebChatService doesn't have any localization options.
API Commands
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.
var oMyPlugin = window._genesys.widgets.bus.registerPlugin('MyPlugin');
oMyPlugin.command('WebChatService.getAgents');
configure
Internal use only. The main App plugin shares configuration settings to widgets using each widget’s configure command. The configure command can only be called once at startup. Calling configure again after startup may result in unpredictable behavior.
startChat
Initiates a new chat session with the chat server via GMS or with the service configured under transport section. For use by WebChat widgets only. You must not invoke this manually.
Example
oMyPlugin.command('WebChatService.startChat', {
nickname: 'Jonny',
firstname: 'Johnathan',
lastname: 'Smith',
email: 'jon.smith@mail.com',
subject: 'product questions',
userData: {}
}).done(function(e){
// WebChatService started a chat successfully
}).fail(function(e){
// WebChatService failed to start chat
});
Options
Option | Type | Description |
---|---|---|
nickname | string | Chat Entry Form Data: 'nickname'. |
firstname | string | Chat Entry Form Data: 'firstname'. |
lastname | string | Chat Entry Form Data: 'lastname'. |
string | Chat Entry Form Data: 'email'. | |
subject | string | Chat Entry Form Data: 'subject'. |
userData | object | Arbitrary data to attach to the chat session (AKA attachedData). Properties defined here will be merged with default userData set in the configuration object. |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When server confirms session started | (AJAX Response Object) |
rejected | When a chat session is already active | 'There is already an active chat session' |
rejected | When AJAX exception occurs | (AJAX Response Object) |
rejected | When server exception occurs | (AJAX Response Object) |
rejected | When userData is invalid | 'malformed data object provided in userData property' |
endChat
Ends the chat session with the chat server via GMS or with the service configured under transport section. For use by WebChat widgets only. You must not invoke this manually.
Example
oMyPlugin.command('WebChatService.endChat').done(function(e){
// WebChatService ended a chat successfully
}).fail(function(e){
// WebChatService failed to end chat
});
Resolutions
Status | When | Returns |
---|---|---|
resolved | When active session is ended successfully | (AJAX Response Object) |
rejected | If no chat session is currently active | 'There is no active chat session' |
sendMessage
Sends a message from the client to the chat session. For use by WebChat widgets only. You must not invoke this manually.
Example
oMyPlugin.command('WebChatService.sendMessage', {message: 'hi'}).done(function(e){
// WebChatService sent a message successfully
}).fail(function(e){
// WebChatService failed to send a message
});
Options
Option | Type | Description |
---|---|---|
message | string | The message you want to send |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When message is successfully sent | (AJAX Response Object) |
rejected | If no message text provided | 'No message text provided' |
rejected | If no chat session is currently active | 'There is no active chat session' |
rejected | When AJAX exception occurs | (AJAX Response Object) |
sendCustomNotice
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 use this out of the box.
Example
oMyPlugin.command('WebChatService.sendCustomNotice', {message: 'bye'}).done(function(e){
// WebChatService sent a custom message successfully
}).fail(function(e){
// WebChatService failed to send a custom message
});
Options
Option | Type | Description |
---|---|---|
message | string | A message you want to send along with the custom notice |
Resolutions
Status | When | Returns | Introduced / Updated |
---|---|---|---|
resolved | When message is successfully sent | (AJAX Response Object) | |
rejected | When AJAX exception occurs | (AJAX Response Object) | |
rejected | When the server doesn't support receiving custom notices | This transport doesn't support sendCustomNotice command. | 9.0.008.04 |
sendTyping
Sends a 'customer typing' notification to chat session. A visual indication will be shown to agent. For use by WebChat widgets only. You must not invoke this manually.
Example
oMyPlugin.command('WebChatService.sendTyping').done(function(e){
// WebChatService sent typing successfully
}).fail(function(e){
// WebChatService failed to send typing
});
Options
Option | Type | Description |
---|---|---|
Message | String | The message you want to send along with the typing notification |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When AJAX request is successful | (AJAX Response Object) |
rejected | When AJAX exception occurs | (AJAX Response Object) |
rejected | If no chat session is currently active | 'There is no active chat session' |
sendFilteredMessage
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.
Example
oMyPlugin.command('WebChatService.sendFilteredMessage', {
message: 'filtered message',
regex: /[a-zA-Z]/
}).done(function(e){
// WebChatService sent filtered message successfully
}).fail(function(e){
// WebChatService failed to send filtered message
});
Options
Option | Type | Description |
---|---|---|
message | string | Message you want to send but don't want to appear in the transcript |
regex | RegExp | Regular expression to match the message |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When there is an active session | n/a |
rejected | If no chat session is currently active | 'No active chat session' |
addPrefilter
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
Example
oMyPlugin.command('WebChatService.addPrefilter', {filters: /[a-zA-Z]/}).done(function(e){
// WebChatService added filter successfully
// e == Object of registered prefilters
}).fail(function(e){
// WebChatService failed to add filter
});
Options
Option | Type | Description |
---|---|---|
filters | RegExp or Array of RegExp | Regular Expression(s) to add to the prefilter list |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When valid filters are provided | Array of all registered prefilters. |
rejected | When invalid or missing filters provided | 'Missing or invalid filters provided. Please provide a regular expression or an array of regular expressions.' |
updateUserData
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.
Example
oMyPlugin.command('WebChatService.updateUserData', {firstname: 'Joe'}).done(function(e){
// WebChatService updated user data successfully
}).fail(function(e){
// WebChatService failed to update user data
});
Options
Option | Type | Description |
---|---|---|
n/a | object | userData object you want to send to the server for this active session |
Resolutions
Status | When | Returns | Introduced / Updated |
---|---|---|---|
resolved | Session is active and userData is successfully sent | (AJAX Response Object) | |
rejected | Session is active and AJAX exception occurs | (AJAX Response Object) | |
resolved | Session is not active and internal userData object is merged with new userData properties provided | The internal userData object that will be sent to the server | |
rejected | Session is active and the server doesn't support updating userData | This transport doesn't support updating userData during an active chat session. | 9.0.008.04 |
poll
Internal use only. Starts polling for new messages. For use by WebChat widgets only. You must not invoke this manually.
Example
oMyPlugin.command('WebChatService.poll').done(function(e){
// WebChatService started polling successfully
}).fail(function(e){
// WebChatService failed to start polling
});
Resolutions
Status | When | Returns | Introduced / Updated |
---|---|---|---|
resolved | When there is an active session | n/a | |
rejected | WebChatService isn't calling this command | 'Access Denied to private command. Only WebChatService is allowed to invoke this command.' | |
rejected | If no chat session is currently active | 'previous poll has not finished.' | |
rejected | When the server doesn't support polling | 'This transport doesn't support polling.' | 9.0.008.04 |
startPoll
Starts automatic polling for new messages. For use by WebChat widgets only. You must not invoke this manually.
Example
oMyPlugin.command('WebChatService.startPoll').done(function(e){
// WebChatService started polling successfully
}).fail(function(e){
// WebChatService failed to start polling
});
Resolutions
Status | When | Returns | Introduced / Updated |
---|---|---|---|
resolved | When there is an active session | n/a | |
rejected | When no chat session is currently active | No active chat session | |
rejected | When the server doesn't support polling | This transport doesn't support polling | 9.0.008.04 |
stopPoll
Stops automatic polling for new messages. For use by WebChat widgets only. You must not invoke this manually.
Example
oMyPlugin.command('WebChatService.stopPoll').done(function(e){
// WebChatService stopped polling successfully
}).fail(function(e){
// WebChatService failed to stop polling
});
Resolutions
Status | When | Returns | Introduced / Updated |
---|---|---|---|
resolved | When there is an active session | n/a | |
rejected | If no chat session is currently active | No active chat session | |
rejected | When the server doesn't support polling | This transport doesn't support polling | 9.0.008.04 |
resetPollExceptions
Resets the poll exception count to 0. pollExceptionLimit is set in the configuration.
Example
oMyPlugin.command('WebChatService.resetPollExceptions').done(function(e){
// WebChatService reset polling successfully
}).fail(function(e){
// WebChatService failed to reset polling
});
Resolutions
Status | When | Returns | Introduced / Updated |
---|---|---|---|
resolved | Always | n/a | |
rejected | When the server doesn't support polling | This transport doesn't support resetPollExceptions command. | 9.0.008.04 |
restore
Internal use only. For use by WebChat widgets only. You must not invoke this manually unless you are using Async mode.
Example
oMyPlugin.command('WebChatService.restore').done(function(e){
// WebChatService restored successfully
}).fail(function(e){
// WebChatService failed to restore
});
Options
Option | Type | Description | Accepted Values | Introduced / Updated |
---|---|---|---|---|
sessionData | string | 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 PureEngage v3 API. For more information, see the “PureEngage v3” tab in the “Options” table in WebChatService Configuration. | (JWT string token) | 9.0.008.04 |
Resolutions
Status | When | Returns | Introduced / Updated |
---|---|---|---|
resolved | Session has been found. | n/a | |
rejected | Session cannot be found. | n/a | |
rejected | Restoring chat session is in progress. | Already restoring. Ignoring request. | 9.0.002.06 |
rejected | Chat session is already active. | Chat session is already active, ignoring restore command. | 9.0.002.06 |
rejected | Trying restore chat session manually. | Access Denied to private command. Only WebChatService is allowed to invoke this command in Non-Async mode. | 9.0.002.06 |
getTranscript
Fetches an array of all messages in the chat session.
Example
oMyPlugin.command('WebChatService.getTranscript').done(function(e){
// WebChatService got transcript successfully
// e == Object with an array of messages
}).fail(function(e){
// WebChatService failed to get transcript
});
Resolutions
Status | When | Returns |
---|---|---|
resolved | Always | Object with an array of messages |
getAgents
Return a list of agents currently participating in the chat.
Example
oMyPlugin.command('WebChatService.getAgents').done(function(e){
// WebChatService got agents successfully
// e == Object with agents information in chat
}).fail(function(e){
// WebChatService failed to get agents
});
Resolutions
Status | When | Returns |
---|---|---|
resolved | Always | (Object List) {name: (String), connected: (Boolean), supervisor: (Boolean), connectedTime: (int time),disconnectedTime: (int time)} |
getStats
Returns stats on chat session including start time, end time, duration, and list of agents.
Example
oMyPlugin.command('WebChatService.getStats').done(function(e){
// WebChatService got stats successfully
// e == Object with chat session stats
}).fail(function(e){
// WebChatService failed to get stats
});
Resolutions
Status | When | Returns |
---|---|---|
resolved | Always | {agents: (Object), startTime: (int time), endTime: (int time), duration: (int time)} |
sendFile
[Introduced: 9.0.008.04]
Sends the file from the client machine to the agent.
Example
oMyPlugin.command('WebChatService.sendFile', {files: $('<input/>').attr('type', 'file') /* Only works on UI, can not dynamically change */ }).done(function(e){
// WebChatService sent file successfully
}).fail(function(e){
// WebChatService failed to send file
});
Options
Option | Type | Description |
---|---|---|
files | File | A reference to a file input element (for example <input type=“file”/>) |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When the file sent is a valid type and size | (AJAX Response Object) |
rejected | When the file sent is an invalid type | (AJAX Response Object) |
rejected | When the number of uploads is exceeded | (AJAX Response Object) |
rejected | When the file size exceeds the limit | (AJAX Response Object) |
rejected | When the file size is too large or an unknown error occurs | (AJAX Response Object) |
rejected | When the server doesn't support file uploads | This transport doesn't support file uploads |
downloadFile
Downloads the file to the client machine.
Example
oMyPlugin.command('WebChatService.downloadFile', {fileId: '1', fileName: 'myfile.txt'}).done(function(e){
// WebChatService sent file successfully
}).fail(function(e){
// WebChatService failed to send file
});
Options
Option | Type | Description |
---|---|---|
field | string | This is the id of the file to be downloaded from the session |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When the file is downloaded successfully | n/a |
getSessionData
[Introduced: 9.0.002.06]
Retrieves the active session data at any time.
Example
oMyPlugin.command('WebChatService.getSessionData')
Resolutions
Status | When | Returns | Introduced / Updated |
---|---|---|---|
resolved | Always, when using Chat via GMS API. For more information, see the 'GMS' tab in the 'Options' table in WebChatService Configuration. | {secureKey: (string), sessionID: (number/string), alias: (number/string), userId: (number/string)} | |
resolved | Always, when using Chat via PureEngage v3 API. For more information, see the 'PureEngage v3' tab in the 'Options' table in WebChatService Configuration. | {participantId: (string), sessionId: {string), token: (string), transportId: (string)} | 9.0.008.04 |
rejected | Never | undefined |
fetchHistory
[Introduced: 9.0.008.04]
For use with WebChat Widget only. 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 messageReceived event.
Example
oMyPlugin.command('WebChatService.fetchHistory')
Resolutions
Status | When | Returns |
---|---|---|
resolved | When old messages are retrieved. | (AJAX Response Object) |
rejected | When request fails. | (AJAX Response Object) |
rejected | When Asynchronous mode is not enabled. | Fetching history messages applies only to Asynchronous chat |
rejected | When all messages are received | No more messages to fetch |
registerTypingPreviewInput
Selects an HTML input to watch for key events. Used to trigger startTyping and stopTyping automatically. For use by WebChat widgets only. You must not invoke this manually.
Example
oMyPlugin.command('WebChatService.registerTypingPreviewInput', {input: $('input') }).done(function(e){
// WebChatService registered input area successfully
}).fail(function(e){
// WebChatService failed to register typing preview
});
Options
Option | Type | Description |
---|---|---|
input | HTML Reference | An HTML reference to a text or textarea input |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When valid HTML input reference is provided | n/a |
rejected | When invalid or missing HTML input reference | 'Invalid value provided for the 'input' property. An HTML element reference to a textarea or text input is required.' |
registerPreProcessor
Registers a function that receives the message object, allowing you to manipulate the values before it is rendered in the transcript.
Example
<source lang='javascript'> oMyPlugin.command('WebChatService.registerPreProcessor', {preprocessor: function(message){
message.text = message.text + ' some preprocessing text';
return message;
}}).done(function(e){
// WebChatService registered preprocessor function // e == function that was registered
}).fail(function(e){
// WebChatService failed to register function
}); </source>
Options
Option | Type | Description |
---|---|---|
preprocessor | function | The preprocessor function you want to register. |
Resolutions
Status | When | Returns |
---|---|---|
resolved | When a valid preprocessor function is provided and is registered. | The registered preprocessor function. |
rejected | When an invalid preprocessor function is provided. | No preprocessor function provided. Type provided was '<DATATYPE>'. |