PureEngage - Agent Desktop - Integration and Customization · 7/30/2019 · Workspace Web Edition...
Transcript of PureEngage - Agent Desktop - Integration and Customization · 7/30/2019 · Workspace Web Edition...
PureEngage Agent Desktop - Integration and Customization
Xperience19
Rick Phung, Senior Director Product Management
Boris Nicolas, Senior Director Omnichannel Desktop
Stéphane Blécon, Director DevelopmentUpdated June 11, 2019
Agenda
Introducing Workspace Web Edition 9
Architecture in 9
Web Application Integration
Service Client API
Toolkit
Introducing Workspace Web Edition 9
Rick Phung, Senior Director Product ManagementUpdated June 11, 2019
Workspace Web Edition 9
Voice
Digital & Social
Open Media
Outbound
Altocloud Journey
Co-browse
Responses
Statistics
Contact & Interaction History
Supervision
Web Application Integration Framework
Web Application Integration Framework
Agent and media state control
Click to dial and email
Recording control
Invoke actions from 3rd party application
Build custom desktop in a few days with Workspace Toolkit
Architecture in 9
Stéphane Blécon, Director DevelopmentUpdated June 11, 2019
Architecture New Architecture based on Microservices
WWE UI WWE API GWS Auth
GWS Voice API
GWS Conf API
SIP Server Conf ServerStat Server
GWS 9 Shared
Tenant
Redis
Auth UI
GWS Stat API
GWS env API
PostgreSQL
GWS Settings API
PostgreSQL
…
…
Consul
Architecture Modular architecture
index.html
wwe-main
wwe-altocloud
wwe-voicemail
wwe-voice
wwe-team-lead
wwe-standard-responsewwe-reporting
wwe-outbound-push-preview
wwe-outbound
wwe-open-mediawwe-my-agents
wwe-iw-sip-endpoint wwe-interactions-management
wwe-history-voice
wwe-generic-chat
wwe-extension-api
wwe-email
wwe-contact
wwe-co-browse
wwe-chat
wwe-login
wwe-my-agents
wwe-history-chat wwe-history-email
Architecture
• Refresho Backbone 1.3.5o Comet 3.1.8o Jquery 3.2.1o Datatable 1.10.12o JSTree 3.2.1
• Newo Vue 2.5.16o Text-loader 1.0.1o Babel Polyfil 6.26.0o Webpack 4.5.0 replacing RequireJS
Main third parties
• 0: Softphone auto-start
• 1: Authenticate and Get Configuration
• 2: Configure and Activate
• 3: SIP Register
• 4: Start the Session
Architecture HTTPS connector (Softphone)
SessionAuthentication
GWS
WWE0
4
2
1 3
SBC
Genesys Softphone
SIP Server
Architecturehttps://gwa-use1.genesyscloud.com/ui/wwe/index.html?site-1=gwa-usw1.genesyscloud.com
Disaster Recovery(Cloud only)
APIUI
GWS
Region use1
APIUI
GWS
Region usw1
• Triggerred ono Logino CometD disconnectiono Voice disconnection
Architecture Pipelines
GWS WWE UI
GWS WWE API
…
ProductionIntegration StagingOn Code Push
Architecture
• Authenticationo OAuth2
• Service Client API options limited to Cluster Application level
• XSS detectiono Script to indentify issue on Buildo Chekmarx based on daily report
• Sonar
• Blackduck
• ZA-Proxy
Security
Architecture Requirements for Client Workstations
Supported Browsers• Chrome 54+• Edge• FireFox 45+• Internet Explorer 11
Client Workstation Requirements:• 2 x 2.8 GHz• 2 GB memory(4GB
recommended)
Workspace Web Edition 9 Demo
GWS Simulator
7777
WWE API WWE UI AuthUI Auth API
GWS Simulator &Worskpace Web Edition
Questions?
Web Application Integration
Stéphane Blécon, Director DevelopmentUpdated June 11, 2019
• Integration Based in Iframe or popup window
• Supported Field Codes for the URL: o Agent.Fullname o Agent.UserName o Agent.LastName o Agent.FirstName o Agent.EmployeeId o AttachedData.Y(*)
(*) Interaction Level only
• 3 areas:o Interactiono Navigation Baro Side Bar
• Based on Options:o interaction.web-content (support of overriding by
strategy)o views.NavigationBarRegion.*.ordero views.SideBarRegion.ordero workspace.web-content(for HIDDEN mode)
• Related Section Options:o labelo urlo Mode:INTERNAL/BACKGROUND/EXTERNAL/HIDDEN
Web Application Integration Configuration
Web Application Integration
• Option in Web Application sectiono attached-data-update-handle-mode• Default value: 0• Possible values:
o 0: when an external website is configured with an attached data, and this attached data is updated or deleted, the external web site is not updated
o 1 : when an external website is configured with an attached data, and:• this attached data is updated, the external web site is updated with the new URL.• this attached data is deleted, the external web site is not updated.
o 2 : when an external website is configured with an attached data, and:• this attached data is updated, the external web site is updated with the new URL.• this attached data is deleted, the external web site disappears.
Refresh on attached data change
Web Application Integration
• New options in Web Application sectiono allow• Default value:• Possible values: GEOLOCATION, MICROPHONE, CAMERA, MIDI, and ENCRYPTED-MEDIA
o sandbox• Default value: ALLOW-SCRIPTS,ALLOW-FORMS,ALLOW-POPUPS,ALLOW-SAME-ORIGIN• Possible values: ALLOW-SCRIPTS, ALLOW-FORMS, ALLOW-SAME-ORIGIN, ALLOW-POPUPS, ALLOW-
PRESENTATION, and ALLOW-POINTER-LOCK
• New optiono security.web-content.sandbox-rights.default-authorizations
Security attributes support for Iframe
Web Application Integration
• Provisioning optionso views.NavigationBarRegion.activate-ordero views.NavigationBarRegion.ordero views.NavigationBarRegion.ConnectRegion.activate-ordero views.NavigationBarRegion.ConnectRegion.ordero views.NavigationBarRegion.<custom-region>.activate-ordero views.NavigationBarRegion.<custom-region>.order
iFrame for embedding web application in navigation bar (1/3)
Web Application Integration
• Support of INTERNAL and BACKGROUND modesSample of provisioning[interaction-workspace]views.NavigationBarRegion.ConnectRegion.activate-order=MyChannelsView,MyCampaignsView,service-client-apiviews.NavigationBarRegion.ConnectRegion.order=service-client-api,MyChannelsView,MyCampaignsViewviews.NavigationBarRegion.MonitoringRegion.activate-order=CustomMyStatReportView,CustomCcReportViewviews.NavigationBarRegion.MonitoringRegion.order=CustomMyStatReportView,CustomCcReportViewviews.NavigationBarRegion.activate-order=ConnectRegion,customRegion1,MonitoringRegion,customRegion2views.NavigationBarRegion.order=ConnectRegion,customRegion1,MonitoringRegion,customRegion2views.NavigationBarRegion.customRegion1.order=bing,airlinesviews.NavigationBarRegion.customRegion1.activate-order=airlines,bingviews.NavigationBarRegion.customRegion2.order=crmviews.NavigationBarRegion.customRegion2.activate-order=crm
iFrame for embedding web application in navigation bar (2/3)
Web Application Integration
[service-client-api]url=http://wwe.genesys.com/sample/service-client-api/sample.htmllabel=SCAPI[bing]url=https://www.bing.comlabel=Bing[airlines]url=http://wwe.genesys.com/sample/genesys-airlines/index.htmllabel=Airlines[crm]url=http://wwe.genesys.com/sample/crm/contacts.htmllabel=CRMmode=BACKGROUND[customRegion1]tooltip=Bing and Airlineslabel=Tools[customRegion2]tooltip=The CRMlabel=CRM
iFrame for embedding web application in navigation bar (3/3)
Web Application Integration
• Provisioningo workspace.web-content
Any Web Application to be exposed in EXTERNAL mode(excepted for the Side Bar) should be specified in workspace.web-content.
Web Application defined in INTERNAL mode and specifified in workspace.web-content is displayed automatically in the region Connect from the Navigation Bar
EXTERNAL mode at Workspace level
Web Application Integration
Support of INTERNAL, EXTERNAL and HIDDEN modes
Sample of provisioning[interaction-workspace]views.SideBarRegion.order=ready,TeamCommunicatorView,NotificationsView,searchengineland,google[ready]url=http://wwe.genesys.com/sample/ready/ready.htmllabel=Readyicon=http://wwe.genesys.com/sample/ready/icon.pngmode=HIDDEN[searchengineland]url=http://wwe.genesys.com/sample/searchengineland/index.htmlabel=Search Engine Landicon=http://wwe.genesys.com/sample/logo/searchengineland.png[google]url=https://google.com/label=Googleicon=http://wwe.genesys.com/sample/logo/google.pngmode=EXTERNAL
Side Bar level
Web Application Integration
Sample of configuration:[interaction-workspace]interaction.web-content=MySectionInteraction[MySectionInteraction]label=Informationurl=http://www.bing.com/search?q=$AttachedData.FirstName$ $AttachedData.LastName$
INTERNAL mode at Interaction level
Web Application Integration
Sample of configuration:[interaction-workspace]interaction.web-content=MySectionWikipedia[MySectionWikipedia]label=Wikipediaurl=http://$AttachedData.lang$.wikipedia.orgmode=BACKGROUND
BACKGROUND mode at Interaction level
Web Application Integration
• Applicable at Interaction & Workspace levels
• Mode when security constraint
• Warning if the user doesn't authorize to open popup for the domain
• Displayed on another tab or popup. Depending browser settings
EXTERNAL mode
Questions?
Service Client API
Stéphane Blécon, Director DevelopmentUpdated June 11, 2019
Service Client API
• High Level API based on Post Message mechanism resolving CORS
• Basic Services for integrated Web site
• Easy Integration
• Message based
• JS lib
GWS
Workspace Web Edition
Web Application
API
window.PostMessage
Service Client API
• Control Origin and servicesExample:
service-client-api.accepted-web-content-origins=http://my-web-server0, http://my-web-server1 (*), http://my-web- server2 (agent.*, voice.dial), http://my-web-server3 (agent.*, interaction.*)
• Define rate limito Global
service-client-api.rate-limit o Or per service
service-client-api.rate-limit.<service-name>Example
service-client-api.rate-limit=0service-client-api.rate-limit.voice.dial=4service-client-api.rate-limit.email.create=2
Security(1/2)
Service Client API
• Attached Data AccessExample:
service-client-api.user-data.write-allowed=Key1,Key3service-client-api.user-data.read-allowed=Key1,Key2,Key3
• Options AccessExample:
service-client-api.option.read-allowed-web-content-origin=https://my-web-server0,http://my-web-server1(*),http://my-web-server2(voice.*,APISampleBackup/test.*,APISampleBackup/test2.*,sipendpoint.*)
• service-client-api.* options Only set at Cluster level
Security(2/2)
Service Client API
• Support requests and events
• agent namespaceo geto getStateo getStateListo setState
• email namespaceo create
• media namespaceo getMediaListo setState
API(1/4)
Service Client API
• interaction namespaceo deleteUserDatao getByInteractionIdo getInteractionso selectCaseByCaseIdo setUserDatao markdoneo blockMarkdoneo unblockMarkdone
API (2/4)
Service Client API
• configuration namespaceo getOption
• system namespaceo getAllowedServiceso triggerActivityo closeToasto popupToasto updateToast
API (3/4)
Service Client API
• voice namespaceo answero dialo hangUpo holdo resumeo pauseCallRecordingo resumeCallRecordingo startCallRecordingo stopCallRecordingo isMicrophoneMuteo muteMicrophoneo unmuteMicrophoneo isSpeakerMuteo muteSpeakero unmuteSpeaker
API (4/4)
Web Application Integration & Service Client API Demo
GWS Simulator
7777
WWE API WWE UI AuthUI Auth API
HTTP Server
8080
SCAPI SamplesToolkit Samples
GWS Simulator &Worskpace Web Edition
Questions?
Toolkit
Stéphane Blécon, Director DevelopmentUpdated June 11, 2019
Toolkit From WWE to Toolkit
Toolkit From WWE to Toolkit
agent viewManager
AgentStateView
BaseView
CommunicatorView
InteractionBarView
LoginView
MyChannelsView
ToasterView
Auth
ChainOfCommandcommandManager
InteractioninteractionManager
Media MediaState
optionManagersystemEvent
Chain of Commands ...Chain of Commands ...Chain of Commands ...
InteractionInteractionPartyPartyParty
ContactCenterStatisticsView
PerformanceTrackerViiew
Toolkit Architecture
• Leverage UI/UX work done for WWE
• Leverage client side logic. Ex:o Dial logico Softphone integrationo Screen Recording
• Settings processing. Can provision your app as WWE, and see UI reacts to it
• Privileges
• Inherit support for Chain of command
• Get new features transparently
• Inherit OAuth support
Toolkit From WWE to Toolkit
• Toolkit integrates Authentication capabilities
• Options availableo Embeddedo Pop-upo IFrame
o Impact of OAuth2 on Toolkit based implementations• SSO• SAML
Toolkit Auth
CRMCustomer A file Customer B file
Toolkit Synch with CRMs
Toolkit How to inject
Demo
GWS Simulator
7777
WWE API WWE UI AuthUI Auth API
HTTP Server
8080
SCAPI SamplesToolkit Samples
Toolkit Integrations GWS Simulator &Worskpace Web Edition
• Build your custom desktop based on the Toolkit
• Web Application integration & usage of SCAPI
• Pre-requisiteso Node 8.11.2o Studio Code
See you tomorrow;-)
Toolkit Hands-on
Questions?
Thanks
Rick Phung, Senior Director Product Management
Boris Nicolas, Senior Director Omnichannel Desktop
Stéphane Blécon, Director DevelopmentUpdated June 11, 2019