<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://all.docs.genesys.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xavier</id>
	<title>Genesys Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://all.docs.genesys.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xavier"/>
	<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/Special:Contributions/Xavier"/>
	<updated>2026-05-17T00:36:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=Docker&amp;diff=133288</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=Docker&amp;diff=133288"/>
		<updated>2024-12-03T11:58:21Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MintyDocsProduct&lt;br /&gt;
|displayname=Genesys Docker Documentation&lt;br /&gt;
|editors=Jaba&lt;br /&gt;
|contentarea=Genesys Multicloud CX&lt;br /&gt;
|landingpage=No&lt;br /&gt;
|definition=Genesys products are built and deployed with modern development principles and technologies such as Microservices, Docker, DevOps, and Automation. This section contains information on Genesys-specific Docker Documentation.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|MintyDocsProductLandingSections={{MintyDocsProductLandingSections&lt;br /&gt;
|Platform=GenesysEngage-cloud, PureConnect, GenesysCloud&lt;br /&gt;
|Description={{NoteFormat|&lt;br /&gt;
The following content has been deprecated and is maintained for reference only.&lt;br /&gt;
|3}}&lt;br /&gt;
|Columns=Yes&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Platform=GenesysEngage-cloud, PureConnect, GenesysCloud&lt;br /&gt;
|Type=Install and Config&lt;br /&gt;
|Title=Deploying Docker&lt;br /&gt;
|Links=*[https://docs.genesys.com/Documentation/System/latest/DDG/Welcome Docker Deployment Guide]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/System/8.5.x/DDG/InstallationofDockerEngineCommunityEditiononCentOS7 Installing Docker Engine CE on CentOS Linux 7]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/System/8.5.x/DDG/InstallationofDockeronAlpineLinux Installing Docker on Alpine Linux]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/System/8.5.x/DDG/HAandDRNotes High Availability]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/System/8.5.x/DDG/Blue-greenDeploymentModel Blue-Green Deployment Model]&lt;br /&gt;
|Columns=Yes&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Platform=GenesysEngage-cloud, PureConnect, GenesysCloud&lt;br /&gt;
|Type=XYZ Documentation&lt;br /&gt;
|Title=Managing Docker Containers&lt;br /&gt;
|Links=*{{Link-AnywhereElse|product=Docker|version=Current|manual=Troubleshooting|topic=Running_Containers}}&lt;br /&gt;
*{{Link-AnywhereElse|product=Docker|version=Current|manual=Troubleshooting|topic=Troubleshooting}}&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}&lt;br /&gt;
|Platform=PureConnect, GenesysCloud, GenesysEngage-cloud&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=Draft:Docker&amp;diff=133282</id>
		<title>Draft:Docker</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=Draft:Docker&amp;diff=133282"/>
		<updated>2024-12-03T10:46:02Z</updated>

		<summary type="html">&lt;p&gt;Xavier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MintyDocsProduct&lt;br /&gt;
|displayname=Genesys Docker Documentation&lt;br /&gt;
|editors=Jaba&lt;br /&gt;
|contentarea=Genesys Multicloud CX&lt;br /&gt;
|landingpage=No&lt;br /&gt;
|definition=Genesys products are built and deployed with modern development principles and technologies such as Microservices, Docker, DevOps, and Automation. This section contains information on Genesys-specific Docker Documentation.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|MintyDocsProductLandingSections={{MintyDocsProductLandingSections&lt;br /&gt;
|Platform=GenesysEngage-cloud, PureConnect, GenesysCloud&lt;br /&gt;
|Description={{NoteFormat|&lt;br /&gt;
The following content has been deprecated and is maintained for reference only.&lt;br /&gt;
|3}}&lt;br /&gt;
|Columns=Yes&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Platform=GenesysEngage-cloud, PureConnect, GenesysCloud&lt;br /&gt;
|Type=Install and Config&lt;br /&gt;
|Title=Deploying Docker&lt;br /&gt;
|Links=*[https://docs.genesys.com/Documentation/System/latest/DDG/Welcome Docker Deployment Guide]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/System/8.5.x/DDG/InstallationofDockerEngineCommunityEditiononCentOS7 Installing Docker Engine CE on CentOS Linux 7]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/System/8.5.x/DDG/InstallationofDockeronAlpineLinux Installing Docker on Alpine Linux]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/System/8.5.x/DDG/HAandDRNotes High Availability]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/System/8.5.x/DDG/Blue-greenDeploymentModel Blue-Green Deployment Model]&lt;br /&gt;
|Columns=Yes&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Platform=GenesysEngage-cloud, PureConnect, GenesysCloud&lt;br /&gt;
|Type=XYZ Documentation&lt;br /&gt;
|Title=Managing Docker Containers&lt;br /&gt;
|Links=*{{Link-AnywhereElse|product=Docker|version=Current|manual=Troubleshooting|topic=Running_Containers}}&lt;br /&gt;
*{{Link-AnywhereElse|product=Docker|version=Current|manual=Troubleshooting|topic=Troubleshooting}}&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}&lt;br /&gt;
|Platform=PureConnect, GenesysCloud, GenesysEngage-cloud&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/Callback/100.0.009.0005&amp;diff=133260</id>
		<title>RN/Callback/100.0.009.0005</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/Callback/100.0.009.0005&amp;diff=133260"/>
		<updated>2024-11-05T03:57:36Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=e6de2642-136b-4d94-ac3f-724e317bcbc8&lt;br /&gt;
|JQL=issue in (GES-4529)&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a, 5439f1be-1868-4091-b058-1667389b6ce1&lt;br /&gt;
|ReleaseDate=2024-10-28&lt;br /&gt;
|HighlightBoilerplateId=1a8ba3c4-4042-4f98-9d90-c40b0458e10d&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GES-4529&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|Content=Notification API now resubmits notifications in the case where the Google FCM application fails&lt;br /&gt;
|LocalContent=The Notification API now resubmits notifications in the case where the Google FCM application fails.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/GenesysWeb_Services_and_Applications/9.0.003.32&amp;diff=133255</id>
		<title>RN/GenesysWeb Services and Applications/9.0.003.32</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/GenesysWeb_Services_and_Applications/9.0.003.32&amp;diff=133255"/>
		<updated>2024-10-30T15:55:13Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=d8ae146d-0abb-4c7e-8a14-3be0a382a3d5&lt;br /&gt;
|JQL=issue in (GAPI-39007, GAPI-38855, GAPI-37646, GAPI-38200)&lt;br /&gt;
|DeploymentTypeId=8b480b3c-2733-433a-9166-eab2c2d0663a&lt;br /&gt;
|ReleaseDate=2024-10-25&lt;br /&gt;
|PrivateEditionReleaseDate=2024-10-25&lt;br /&gt;
|Highlight=Updates to third-party dependencies.&lt;br /&gt;
|ReleaseNumber=9.0.003.32&lt;br /&gt;
|Containers=*gws-platform-datacollector:9.0.000.71&lt;br /&gt;
*gws-platform-chat:9.0.000.65&lt;br /&gt;
*gws-platform-statistics:9.0.000.81&lt;br /&gt;
*gws-platform-ucs:9.0.000.62&lt;br /&gt;
*gws-platform-ixn:9.0.000.63&lt;br /&gt;
*gws-platform-configuration:9.0.001.01&lt;br /&gt;
*gws-app-workspace:9.0.001.11&lt;br /&gt;
*gws-platform-ocs:9.0.000.66&lt;br /&gt;
*gws-platform-voice:9.0.000.86&lt;br /&gt;
*gws-platform-setting:9.0.000.72&lt;br /&gt;
*helm/gws/gws-services-1.0.111.tgz&lt;br /&gt;
*helm/gws/gws-monitoring-1.0.24.tgz&lt;br /&gt;
*helm/gws/gws-ingress-1.0.46.tgz&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GAPI-37646&lt;br /&gt;
|IssueCategoryId=c749afa5-fd21-49e4-83d4-0e6ebd8ed618&lt;br /&gt;
|Content=[PE][Cloud]This release includes multiple security updates for system and application libraries, and modules (SpringBoot 3.3, SpringFramework 6.1 and Jetty 12)&lt;br /&gt;
|LocalContent=This release includes multiple security updates for system and application libraries, and modules (SpringBoot 3.3, SpringFramework 6.1 and Jetty 12).&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GAPI-39007&lt;br /&gt;
|IssueCategoryId=c749afa5-fd21-49e4-83d4-0e6ebd8ed618&lt;br /&gt;
|Content=[PE]Genesys Web Services and Applications (GWS) contain security enhancements introduced by SpringSecurity 6 and CometD 8 which imposes some restrictions and compatibility issues to APIs clients. Genesys strongly recommends to upgrade CXContact along with GWS to maintain security and cross-service compatibility. If CXContact cannot be upgraded for some reasons, GWS provides a backward compatibility mode with downgraded security to support old clients (like CXContact). To enable backward compatibility mode, the following environment variable should be set for all GWS services:&amp;amp;lbrace;quote&amp;amp;rbrace;GWS_SECURITY_DISABLE_SESSION_VALIDATION=true&amp;amp;lbrace;quote&amp;amp;rbrace;&lt;br /&gt;
|LocalContent=Genesys Web Services and Applications (GWS) contain security enhancements introduced by SpringSecurity 6 and CometD 8 which imposes some restrictions and compatibility issues to APIs clients. Genesys strongly recommends to upgrade CXContact along with GWS to maintain security and cross-service compatibility. If CXContact cannot be upgraded for some reasons, GWS provides a backward compatibility mode with downgraded security to support old clients (like CXContact). To enable backward compatibility mode, the following environment variable should be set for all GWS services: &amp;lt;tt&amp;gt;GWS_SECURITY_DISABLE_SESSION_VALIDATION=true&amp;lt;/tt&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GAPI-38855&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=[PE]Genesys Web Services and Application support ElasticSearch 7.17+ and 8.8+ now. In case of ES 8, additional configuration option must be set for GWS Datacollector service:&amp;amp;lbrace;quote&amp;amp;rbrace;&amp;amp;lbrace;&amp;amp;lbrace;GWS_DATACOLLECTOR_elasticsearch_connection_es8compatibilityMode=true&amp;amp;rbrace;&amp;amp;rbrace;&amp;amp;lbrace;quote&amp;amp;rbrace;&lt;br /&gt;
|LocalContent=Genesys Web Services and Application support Elasticsearch 7.17+ and 8.8+ now. In case of ES 8, an additional configuration option must be set for GWS Datacollector service: &amp;lt;tt&amp;gt;GWS_DATACOLLECTOR_elasticsearch_connection_es8compatibilityMode=true &amp;lt;/tt&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GAPI-38200&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=[PE]Genesys Web Service and Application now supports Redis 7.2To utilize Redis ACL the new configuration option was introduced to specify account name:&amp;amp;lbrace;quote&amp;amp;rbrace;&amp;amp;lbrace;&amp;amp;lbrace;GWS_REDIS_USERNAME&amp;amp;rbrace;&amp;amp;rbrace;&amp;amp;lbrace;quote&amp;amp;rbrace;&lt;br /&gt;
|LocalContent=Genesys Web Service and Application now supports Redis 7.2. To use Redis ACL, a new configuration option was introduced to specify account name:&amp;lt;tt&amp;gt;GWS_REDIS_USERNAME&amp;lt;/tt&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/GenesysWeb_Services_and_Applications/9.0.003.32&amp;diff=133252</id>
		<title>RN/GenesysWeb Services and Applications/9.0.003.32</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/GenesysWeb_Services_and_Applications/9.0.003.32&amp;diff=133252"/>
		<updated>2024-10-30T15:30:00Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=d8ae146d-0abb-4c7e-8a14-3be0a382a3d5&lt;br /&gt;
|JQL=issue in (GAPI-39007, GAPI-38855, GAPI-37646, GAPI-38200)&lt;br /&gt;
|DeploymentTypeId=8b480b3c-2733-433a-9166-eab2c2d0663a&lt;br /&gt;
|ReleaseDate=2024-10-25&lt;br /&gt;
|PrivateEditionReleaseDate=2024-10-17&lt;br /&gt;
|Highlight=Updates to third-party dependencies.&lt;br /&gt;
|ReleaseNumber=9.0.003.32&lt;br /&gt;
|Containers=*gws-platform-datacollector:9.0.000.71&lt;br /&gt;
*gws-platform-chat:9.0.000.65&lt;br /&gt;
*gws-platform-statistics:9.0.000.81&lt;br /&gt;
*gws-platform-ucs:9.0.000.62&lt;br /&gt;
*gws-platform-ixn:9.0.000.63&lt;br /&gt;
*gws-platform-configuration:9.0.001.01&lt;br /&gt;
*gws-app-workspace:9.0.001.11&lt;br /&gt;
*gws-platform-ocs:9.0.000.66&lt;br /&gt;
*gws-platform-voice:9.0.000.86&lt;br /&gt;
*gws-platform-setting:9.0.000.72&lt;br /&gt;
*gws-services-1.0.111.tgz&lt;br /&gt;
*gws-monitoring-1.0.24.tgz&lt;br /&gt;
*gws-ingress-1.0.46.tgz&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GAPI-37646&lt;br /&gt;
|IssueCategoryId=c749afa5-fd21-49e4-83d4-0e6ebd8ed618&lt;br /&gt;
|Content=[PE][Cloud]This release includes multiple security updates for system and application libraries, and modules (SpringBoot 3.3, SpringFramework 6.1 and Jetty 12)&lt;br /&gt;
|LocalContent=This release includes multiple security updates for system and application libraries, and modules (SpringBoot 3.3, SpringFramework 6.1 and Jetty 12).&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GAPI-39007&lt;br /&gt;
|IssueCategoryId=c749afa5-fd21-49e4-83d4-0e6ebd8ed618&lt;br /&gt;
|Content=[PE]Genesys Web Services and Applications (GWS) contain security enhancements introduced by SpringSecurity 6 and CometD 8 which imposes some restrictions and compatibility issues to APIs clients. Genesys strongly recommends to upgrade CXContact along with GWS to maintain security and cross-service compatibility. If CXContact cannot be upgraded for some reasons, GWS provides a backward compatibility mode with downgraded security to support old clients (like CXContact). To enable backward compatibility mode, the following environment variable should be set for all GWS services:&amp;amp;lbrace;quote&amp;amp;rbrace;GWS_SECURITY_DISABLE_SESSION_VALIDATION=true&amp;amp;lbrace;quote&amp;amp;rbrace;&lt;br /&gt;
|LocalContent=Genesys Web Services and Applications (GWS) contain security enhancements introduced by SpringSecurity 6 and CometD 8 which imposes some restrictions and compatibility issues to APIs clients. Genesys strongly recommends to upgrade CXContact along with GWS to maintain security and cross-service compatibility. If CXContact cannot be upgraded for some reasons, GWS provides a backward compatibility mode with downgraded security to support old clients (like CXContact). To enable backward compatibility mode, the following environment variable should be set for all GWS services: &amp;lt;tt&amp;gt;GWS_SECURITY_DISABLE_SESSION_VALIDATION=true&amp;lt;/tt&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GAPI-38855&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=[PE]Genesys Web Services and Application support ElasticSearch 7.17+ and 8.8+ now. In case of ES 8, additional configuration option must be set for GWS Datacollector service:&amp;amp;lbrace;quote&amp;amp;rbrace;&amp;amp;lbrace;&amp;amp;lbrace;GWS_DATACOLLECTOR_elasticsearch_connection_es8compatibilityMode=true&amp;amp;rbrace;&amp;amp;rbrace;&amp;amp;lbrace;quote&amp;amp;rbrace;&lt;br /&gt;
|LocalContent=Genesys Web Services and Application support Elasticsearch 7.17+ and 8.8+ now. In case of ES 8, an additional configuration option must be set for GWS Datacollector service: &amp;lt;tt&amp;gt;GWS_DATACOLLECTOR_elasticsearch_connection_es8compatibilityMode=true &amp;lt;/tt&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=GAPI-38200&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=[PE]Genesys Web Service and Application now supports Redis 7.2To utilize Redis ACL the new configuration option was introduced to specify account name:&amp;amp;lbrace;quote&amp;amp;rbrace;&amp;amp;lbrace;&amp;amp;lbrace;GWS_REDIS_USERNAME&amp;amp;rbrace;&amp;amp;rbrace;&amp;amp;lbrace;quote&amp;amp;rbrace;&lt;br /&gt;
|LocalContent=Genesys Web Service and Application now supports Redis 7.2. To use Redis ACL, a new configuration option was introduced to specify account name:&amp;lt;tt&amp;gt;GWS_REDIS_USERNAME&amp;lt;/tt&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=GenesysEngageMulticloud&amp;diff=133175</id>
		<title>GenesysEngageMulticloud</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=GenesysEngageMulticloud&amp;diff=133175"/>
		<updated>2024-08-22T05:10:54Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MintyDocsProduct&lt;br /&gt;
|displayname=Genesys Multicloud CX&lt;br /&gt;
|admins=Xavier&lt;br /&gt;
|editors=Connie.boring@genesys.com, Dan.hicks@genesys.com, George.mather@genesys.com&lt;br /&gt;
|contentarea=Genesys Multicloud CX&lt;br /&gt;
|landingpage=Yes&lt;br /&gt;
|definition=Deliver competitively superior customer experiences and digital transformation at any scale.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|MintyDocsProductLandingSections={{MintyDocsProductLandingSections&lt;br /&gt;
|Title=Genesys Multicloud CX - how it works&lt;br /&gt;
|Description=Articles describing the basics of how different Genesys Multicloud CX applications and features work, and how to get started using them.&lt;br /&gt;
|Links=*[[{{#switch:{{NAMESPACENUMBER}}|620=Draft:|}}PEC-Admin/HIW|Getting Started with Genesys Multicloud CX]]&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Type=Private Edition&lt;br /&gt;
|Title=Setting up private edition&lt;br /&gt;
|Description=Find information on how to deploy Genesys Multicloud CX private edition in your environment.&lt;br /&gt;
|Links=*[[PrivateEdition|Genesys Multicloud CX private edition portal]]&lt;br /&gt;
&lt;br /&gt;
'''Quick links:''' &lt;br /&gt;
&lt;br /&gt;
*{{Link-AnywhereElse|product=PrivateEdition|version=Current|manual=PEGuide|display text=Suite-level deployment}}&lt;br /&gt;
*{{Link-AnywhereElse|product=PrivateEdition|version=Current|manual=Operations|display text=Suite-level operations}}&lt;br /&gt;
*{{Link-AnywhereElse|product=PrivateEdition|version=Current|manual=PEGuide|topic=GEServices|display text=Service-level deployment}}&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=All content&lt;br /&gt;
|Description=A list to help you find all technical content available for Genesys Multicloud CX.&lt;br /&gt;
|Links=*[[System/AllContent|All applications]]&lt;br /&gt;
*[[UseCases|Use Cases]]&lt;br /&gt;
*[https://docs.genesys.com/Glossary Glossary]&lt;br /&gt;
*{{Link-AnywhereElse|product=ReleaseNotes|version=Current|manual=GenesysEngage-cloud}}&lt;br /&gt;
*[https://docs.genesys.com/Documentation/Options Configuration options]&lt;br /&gt;
*[[System|System-level]]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/International International (translated)]&lt;br /&gt;
*[[System/AllDeprecations|Feature deprecations]]&lt;br /&gt;
*[https://docs.genesys.com/ On-premises documentation]&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=User roles&lt;br /&gt;
|Description=Portal pages that pull together information for your role in Genesys Multicloud CX contact centers.&lt;br /&gt;
|Links=*[[PEC-Admin|Administrators]]&lt;br /&gt;
*[[PEC-Agent|Agents]]&lt;br /&gt;
*[[PEC-Super|Supervisors]]&lt;br /&gt;
*[[PEC-Developer|Developers]]&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=Multicloud integrations&lt;br /&gt;
|Description=Integrating Genesys Multicloud CX software with the Genesys Cloud CX services.&lt;br /&gt;
|Links=*{{Link-Standalone|topic=Solution/PredictiveEngagementEngagecloud|display text=Using Predictive Engagement in Genesys Multicloud CX}}&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=Hybrid integrations&lt;br /&gt;
|Description=Integrating Genesys Engage on-premises deployments with Genesys Cloud CX services.&lt;br /&gt;
|Links=*[[PEC-Hybrid/Current/Admin/About|Provisioning Genesys Multicloud CX hybrid integrations]]&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=Genesys Engage on-premises&lt;br /&gt;
|Description=Find information for users, administrators, and installers of [https://docs.genesys.com/Documentation/OnPremises Genesys Engage on-premises].&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=Draft:GenesysEngageMulticloud&amp;diff=133173</id>
		<title>Draft:GenesysEngageMulticloud</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=Draft:GenesysEngageMulticloud&amp;diff=133173"/>
		<updated>2024-08-08T04:56:50Z</updated>

		<summary type="html">&lt;p&gt;Xavier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MintyDocsProduct&lt;br /&gt;
|displayname=Genesys Multicloud CX&lt;br /&gt;
|admins=Xavier&lt;br /&gt;
|editors=Connie.boring@genesys.com, Dan.hicks@genesys.com, George.mather@genesys.com&lt;br /&gt;
|contentarea=Genesys Multicloud CX&lt;br /&gt;
|landingpage=Yes&lt;br /&gt;
|definition=Deliver competitively superior customer experiences and digital transformation at any scale.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|MintyDocsProductLandingSections={{MintyDocsProductLandingSections&lt;br /&gt;
|Title=Genesys Multicloud CX - how it works&lt;br /&gt;
|Description=Articles describing the basics of how different Genesys Multicloud CX applications and features work, and how to get started using them.&lt;br /&gt;
|Links=*[[{{#switch:{{NAMESPACENUMBER}}|620=Draft:|}}PEC-Admin/HIW|Getting Started with Genesys Multicloud CX]]&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Type=Private Edition&lt;br /&gt;
|Title=Setting up private edition&lt;br /&gt;
|Description=Find information on how to deploy Genesys Multicloud CX private edition in your environment.&lt;br /&gt;
|Links=*[[PrivateEdition|Genesys Multicloud CX private edition portal]]&lt;br /&gt;
&lt;br /&gt;
'''Quick links:''' &lt;br /&gt;
&lt;br /&gt;
*{{Link-AnywhereElse|product=PrivateEdition|version=Current|manual=PEGuide|display text=Suite-level deployment}}&lt;br /&gt;
*{{Link-AnywhereElse|product=PrivateEdition|version=Current|manual=Operations|display text=Suite-level operations}}&lt;br /&gt;
*{{Link-AnywhereElse|product=PrivateEdition|version=Current|manual=PEGuide|topic=GEServices|display text=Service-level deployment}}&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=All content&lt;br /&gt;
|Description=A list to help you find all technical content available for Genesys Multicloud CX.&lt;br /&gt;
|Links=*[[System/AllContent|All applications]]&lt;br /&gt;
*[[UseCases|Use Cases]]&lt;br /&gt;
*[https://docs.genesys.com/Glossary Glossary]&lt;br /&gt;
*{{Link-AnywhereElse|product=ReleaseNotes|version=Current|manual=GenesysEngage-cloud}}&lt;br /&gt;
*[https://docs.genesys.com/Documentation/Options Configuration options]&lt;br /&gt;
*[[System|System-level]]&lt;br /&gt;
*[https://docs.genesys.com/Documentation/International International (translated)]&lt;br /&gt;
*[[System/AllDeprecations|Feature deprecations]]&lt;br /&gt;
*[https://docs.genesys.com/ On-premises documentation]&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=User roles&lt;br /&gt;
|Description=Portal pages that pull together information for your role in Genesys Multicloud CX contact centers.&lt;br /&gt;
|Links=*[[PEC-Admin|Administrators]]&lt;br /&gt;
*[[PEC-Agent|Agents]]&lt;br /&gt;
*[[PEC-Super|Supervisors]]&lt;br /&gt;
*[[PEC-Developer|Developers]]&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=Multicloud integrations&lt;br /&gt;
|Description=Integrating Genesys Multicloud CX software with the Genesys Cloud CX services.&lt;br /&gt;
|Links=*{{Link-Standalone|topic=Solution/PredictiveEngagementEngagecloud|display text=Using Predictive Engagement in Genesys Multicloud CX}}&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=Hybrid integrations&lt;br /&gt;
|Description=Integrating Genesys Engage on-premises deployments with Genesys Cloud CX services.&lt;br /&gt;
|Links=*[[PEC-Hybrid/Current/Admin/About|Provisioning Genesys Multicloud CX hybrid integrations]]&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Title=Genesys Engage on-premises&lt;br /&gt;
|Description=Find information for users, administrators, and installers of [https://docs.genesys.com/Documentation/OnPremises Genesys Engage on-premises].&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PureConnect_Zendesk_Screen_pop_Connector/EOL/CIC_4.0_SU4&amp;diff=132911</id>
		<title>PureConnect Zendesk Screen pop Connector/EOL/CIC 4.0 SU4</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PureConnect_Zendesk_Screen_pop_Connector/EOL/CIC_4.0_SU4&amp;diff=132911"/>
		<updated>2024-01-19T14:11:52Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Created page with &amp;quot;{{EOL |Platform=PureConnect |ItemName=PureConnect Zendesk Screen pop Connector |MajorRelease=CIC 4.0 SU4 |ItemType=Product |ReleaseAvailable=March 31, 2014 |EOLTrack=Yes |EOLE...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{EOL&lt;br /&gt;
|Platform=PureConnect&lt;br /&gt;
|ItemName=PureConnect Zendesk Screen pop Connector&lt;br /&gt;
|MajorRelease=CIC 4.0 SU4&lt;br /&gt;
|ItemType=Product&lt;br /&gt;
|ReleaseAvailable=March 31, 2014&lt;br /&gt;
|EOLTrack=Yes&lt;br /&gt;
|EOLEOCSAnnouncement=August 25, 2017&lt;br /&gt;
|LastOrderDate=February 25, 2018&lt;br /&gt;
|EndOfMaintenance=February 25, 2019&lt;br /&gt;
|EndOfSupport=August 25, 2020&lt;br /&gt;
|Documentation={{Repository|EOL-PureConnect-Zendesk-Screen-Pop-Connector-fo- CIC.pdf||End of Life Announcement}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=Microsoft_Outlook_Interaction_Desktop_Add-In/EOL/2010&amp;diff=132910</id>
		<title>Microsoft Outlook Interaction Desktop Add-In/EOL/2010</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=Microsoft_Outlook_Interaction_Desktop_Add-In/EOL/2010&amp;diff=132910"/>
		<updated>2024-01-19T14:09:52Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Created page with &amp;quot;{{EOL |Platform=PureConnect |ItemName=Microsoft Outlook Interaction Desktop Add-In |MajorRelease=2010 |ItemType=Product |EOLTrack=Yes |EOLEOCSAnnouncement=July 1, 2020 |EndOfM...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{EOL&lt;br /&gt;
|Platform=PureConnect&lt;br /&gt;
|ItemName=Microsoft Outlook Interaction Desktop Add-In&lt;br /&gt;
|MajorRelease=2010&lt;br /&gt;
|ItemType=Product&lt;br /&gt;
|EOLTrack=Yes&lt;br /&gt;
|EOLEOCSAnnouncement=July 1, 2020&lt;br /&gt;
|EndOfMaintenance=September 30, 2021&lt;br /&gt;
|EndOfSupport=January 31, 2022&lt;br /&gt;
|Documentation={{Repository|EOL-PCP-MSFTOutlook-Jun2020.pdf||End of Life Announcement}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-WFM/Deprecation-Agent_(Classic)_UI&amp;diff=132816</id>
		<title>PEC-WFM/Deprecation-Agent (Classic) UI</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-WFM/Deprecation-Agent_(Classic)_UI&amp;diff=132816"/>
		<updated>2023-11-30T13:44:47Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DeprecationNotice&lt;br /&gt;
|product=Draft:PEC-WFM&lt;br /&gt;
|Title=Agent (Classic) UI&lt;br /&gt;
|Platform=GenesysEngage-onpremises&lt;br /&gt;
|Announced=November 30, 2023&lt;br /&gt;
|RemovalStart=May 31, 2024&lt;br /&gt;
|ReleaseNotesURL=https://docs.genesys.com/Documentation/RN/8.5.xDRAFT/wm-web85rn/wm-web8522009&lt;br /&gt;
|ReleaseNotesLabel=Workforce Management&lt;br /&gt;
|Description=As of November 30, 2023, Genesys announces the feature deprecation for WFM Web for Agents (Classic) UI. WFM Web for agents includes two user interfaces currently (Classic agent UI and New agent UI). The [https://docs.genesys.com/Documentation/RN/8.5.x/wm-web85rn/wm-web8520507 new agent UI] was introduced in December 2016, and expected to be used by customers replacing old (classic UI).&lt;br /&gt;
&lt;br /&gt;
Genesys is implementing the deprecation plan and only new agent UI will be available post Deprecation date (May 31, 2024).&lt;br /&gt;
|Affected=All users of WFM Web for Agents (Classic) UI are affected with this deprecation. Classic UI will be deprecated and only new UI will be available for agents.&lt;br /&gt;
|HowToPrepare=No extra effort of deployment or complex reconfiguration are necessary. After depreciation date (May 31, 2024), WFM Web will no longer include the classic UI interface and the new WFM Web for agents will be loaded when agents log on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Related Documents'''&lt;br /&gt;
&lt;br /&gt;
Click on the below links to view the following document:&lt;br /&gt;
&lt;br /&gt;
*'''[https://docs.genesys.com/Documentation/RN/8.5.x/wm-web85rn/wm-web8520507 New Agent UI release announcement]'''&lt;br /&gt;
*[https://all.docs.genesys.com/System/EOL '''Genesys'''] '''EOL Life Cycle Table'''&lt;br /&gt;
|MoreHelp=If you need help or have questions about this deprecation, reach out to your Customer Success Manager (Genesys Advisor) or contact Genesys Customer Care (My Support). &lt;br /&gt;
&lt;br /&gt;
You can refer Genesys [https://docs.genesys.com/Documentation/WM/8.5.2/Admin/Welcome WFM Administrator's Guide], or you can use [https://docs.genesys.com/Documentation/WM/8.5.2/AArkHelp/Welcome WFM Web Help] for agents.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=WID/Current/SDK/WebChatService-combined&amp;diff=132409</id>
		<title>WID/Current/SDK/WebChatService-combined</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=WID/Current/SDK/WebChatService-combined&amp;diff=132409"/>
		<updated>2023-10-06T06:22:40Z</updated>

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

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=acaca529-aedd-4820-8557-4966ab8490db&lt;br /&gt;
|JQL=project = WWE AND labels = wwe-september-23 ORDER BY created DESC&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a, 8b480b3c-2733-433a-9166-eab2c2d0663a&lt;br /&gt;
|ReleaseDate=2023-09-14&lt;br /&gt;
|PrivateEditionReleaseDate=2023-09-15&lt;br /&gt;
|Highlight=Resolved issues.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=WWE-3616&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|Content=[WWE][AWS][Azure][Private]:Agent Workspace now prevents presenting to the agent a chat interaction already handled by another browser instance. Previously, in such situation, the agent was faced to a chat interaction without any action button.&lt;br /&gt;
|LocalContent=Agent Workspace now prevents presenting the chat interaction that was already handled by another browser instance. Previously, in such situation, the agent was faced to a chat interaction without any action button.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=WWE-3394&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|Content=[WWE]:[AWS][Azure]:When enabled, *My Interaction Queues* with all related filters will be correctly displayed in the tree view on the *My Workbins* tab even if the *My Workbins* and *My Team Workbins* views are disabled. Previously, in such configuration, the *My Interaction Queues* view was not displayed in the tree view on the *My Workbins* tab.[Private]:When enabled by the *privilege.interaction-management.can-use* option, *My Interaction Queues* with all related filters will be correctly displayed in the tree view on the *My Workbins* tab even if  the *My Workbins* and *My Team Workbins* views are disabled by *privilege.workbins.can-use* and *privilege.my-team-workbins.can-use* options. Previously, in such configuration, the *My Interaction Queues* view was not displayed in the tree view on the *My Workbins* tab.&lt;br /&gt;
|LocalContent=When enabled, '''My Interaction Queues''' with all related filters will be correctly displayed in the tree view on the '''My Workbins''' tab even if the '''My Workbins''' and '''My Team Workbins''' views are disabled. Previously, in such configuration, the '''My Interaction Queues''' view was not displayed in the tree view on the '''My Workbins''' tab.&lt;br /&gt;
&lt;br /&gt;
'''For Private Edition''', When you set the '''privilege.interaction-management.can-use''' option to true, My '''Interaction Queues''' with all related filters will be correctly displayed in the tree view on the '''My Workbins''' tab even if the '''My Workbins''' and '''My Team Workbins''' views are disabled by '''privilege.workbins.can-use''' and '''privilege.my-team-workbins.can-use''' options. Previously, in such configuration, the '''My Interaction Queues''' view was not displayed in the tree view on the '''My Workbins''' tab.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/DigitalChannels/100.0.149.9341&amp;diff=132245</id>
		<title>RN/DigitalChannels/100.0.149.9341</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/DigitalChannels/100.0.149.9341&amp;diff=132245"/>
		<updated>2023-08-17T09:10:07Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=c5a76aa7-eedc-4cba-8bf2-b23a4d28ef29&lt;br /&gt;
|JQL=CPE-6032&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a, 5439f1be-1868-4091-b058-1667389b6ce1, 8b480b3c-2733-433a-9166-eab2c2d0663a&lt;br /&gt;
|ReleaseDate=2023-08-02&lt;br /&gt;
|PrivateEditionReleaseDate=2023-08-17&lt;br /&gt;
|Highlight=Compatibility and performance improvements.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|LocalContent=This is an update for compatibility and performance improvements.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=CCPulse_and_CCPulse%2B/EOL/All_versions&amp;diff=131914</id>
		<title>CCPulse and CCPulse+/EOL/All versions</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=CCPulse_and_CCPulse%2B/EOL/All_versions&amp;diff=131914"/>
		<updated>2023-06-07T10:25:35Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Undo revision 131403 by Guest (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{EOL&lt;br /&gt;
|Platform=Genesys Engage on-premises&lt;br /&gt;
|ItemName=CCPulse and CCPulse+&lt;br /&gt;
|MajorRelease=All versions&lt;br /&gt;
|ItemType=Component&lt;br /&gt;
|EOLTrack=Yes&lt;br /&gt;
|EOLEOCSAnnouncement=January 31, 2021&lt;br /&gt;
|EndOfSupport=December 31, 2022&lt;br /&gt;
|Documentation={{Repository|EOCS-GEP-ccPulse.pdf|| End of Component Support Announcement}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=File:Digitalchannels_icon.png&amp;diff=131808</id>
		<title>File:Digitalchannels icon.png</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=File:Digitalchannels_icon.png&amp;diff=131808"/>
		<updated>2023-05-09T04:18:33Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Digital Channels Administrator icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Digital Channels Administrator icon&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-OU/Current/CXContact/ListRules&amp;diff=131375</id>
		<title>PEC-OU/Current/CXContact/ListRules</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-OU/Current/CXContact/ListRules&amp;diff=131375"/>
		<updated>2023-03-06T11:55:18Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Create and Manage List Rules&lt;br /&gt;
|TocName=Create and Manage List Rules&lt;br /&gt;
|Context=Learn how to create and manage List Rules.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Use the List Rules feature to apply a set of rules to a contact list. There are three types of list rules: &lt;br /&gt;
&lt;br /&gt;
*{{Link-SomewhereInThisManual|topic=ListRules|anchor=SelectionRules|display text=Selection rules}} - used to target specific records in a list based on filtering criteria. Only records that satisfy the criteria are imported.&lt;br /&gt;
*{{Link-SomewhereInThisManual|topic=ListRules|anchor=UploadRules|display text=Upload rules}} - used to apply record splitting options to a contact list at the time of upload. Splitting criteria can be based on quantity, percentage, field, or custom criteria.&lt;br /&gt;
*{{Link-SomewhereInThisManual|topic=ListRules|anchor=FilteringRules|display text=Filtering rules}} - used to target specific records in a list based on filtering criteria. These rules can be applied dynamically, while a campaign group is running. They do not need to be created at the time a list is being imported into CX Contact.&lt;br /&gt;
*{{Link-SomewhereInThisManual|topic=ListRules|anchor=ImportRules|display text=Import rules}} - used to import all list rules (Selection, Upload and Filtering).&lt;br /&gt;
&lt;br /&gt;
This page describes how to create list rules. It also explains how to {{Link-SomewhereInThisManual|topic=ListRules|anchor=EditDeleteRules|display text=edit, delete}}, and {{Link-SomewhereInThisManual|topic=ListRules|anchor=DuplicateRules|display text=duplicate}} a list rule.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Create a Selection Rule&lt;br /&gt;
|anchor=SelectionRules&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=To create a new selection rule, go to the '''Rules''' page and select '''New -&amp;gt; Selection Rule'''.&lt;br /&gt;
&lt;br /&gt;
On the '''Selection Rules''' page, start by naming the selection rule.&lt;br /&gt;
&lt;br /&gt;
Then, from the '''Type''' menu, select the type of selection rule you want to apply:&lt;br /&gt;
&lt;br /&gt;
*Contacts - The selection rule applies to a contact list.&lt;br /&gt;
*Suppression - The selection rule applies to a suppression list.&lt;br /&gt;
*Advanced - The selection rule applies to a contact list export and filtering rules.&lt;br /&gt;
*Shared Expression - The conditions of the selection rule can be shared across multiple Advanced selection rules and can be used as a nested rule.&lt;br /&gt;
&lt;br /&gt;
From the '''Labels''' menu, you can apply a labeling schema. The labels defined in the schema will replace the default labels in the '''Field''' menu. See {{Link-SomewhereInThisManual|topic=FieldLabels|anchor=top|display text=Create or Manage User Field Labels}} for more information about labels.&lt;br /&gt;
&lt;br /&gt;
If you selected '''Selection (Advanced)''' as the rule type, the '''Use Visual Editor''' switch is enabled. Switch this to the '''Off''' position if you want to enter a raw SQL WHERE clause  rather than use the default visual editor to define the filtering criteria. For example, type &amp;lt;tt&amp;gt;Country='Mexico';&amp;lt;/tt&amp;gt; to select records containing Mexico in the Country field.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|&lt;br /&gt;
*If the Visual Editor is switched off after you enter selection criteria using the Visual Editor, the active content will be converted into raw SQL. As a result, the transition between the Visual Editor and raw SQL is made easier. The ability to transition back to the Visual Editor will not be possible after the SQL is manually edited.&lt;br /&gt;
*CX Contact has a built-in protection for SQL injection. The following clauses are not allowed in the SQL WHERE expression:&lt;br /&gt;
** ;&lt;br /&gt;
** CR/LF&lt;br /&gt;
** -- (two dashes)&lt;br /&gt;
** – (long dash)&lt;br /&gt;
** select (in any case)&lt;br /&gt;
** delete (in any case)&lt;br /&gt;
** drop (in any case)&lt;br /&gt;
** update (in any case)&lt;br /&gt;
** alter (in any case)&lt;br /&gt;
** truncate (in any case)&lt;br /&gt;
** insert (in any case)&lt;br /&gt;
** create (in any case)}}&lt;br /&gt;
&lt;br /&gt;
[[File:CXC_Rules_VisualEditor.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
{{AnchorDiv|SelectionFilterCriteria}}&lt;br /&gt;
Now, define the filtering criteria, as follows:&lt;br /&gt;
&lt;br /&gt;
*Field - If you want to filter a list by a particular field in your list, select the field here. The fields populated depend on the type of selection rule being applied:&lt;br /&gt;
&lt;br /&gt;
{{#ppin:If you select '''Selection (Contacts)''' from the '''Type''' menu, the following filters are available from the '''Fields''' menu:&lt;br /&gt;
{{{!}}&lt;br /&gt;
!Field Name&lt;br /&gt;
!Specification File Keyword&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}First Name&lt;br /&gt;
{{!}}firstname&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Last Name&lt;br /&gt;
{{!}}lastname&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Client ID&lt;br /&gt;
{{!}}clientid&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Company Name&lt;br /&gt;
{{!}}companyname&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Time Zone&lt;br /&gt;
{{!}}timezone&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Postal Code&lt;br /&gt;
{{!}}postal_code&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Country Code&lt;br /&gt;
{{!}}country_code&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}State/Region&lt;br /&gt;
{{!}}state&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Original Record&lt;br /&gt;
{{!}}originalrecord&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}All Devices&lt;br /&gt;
{{!}}All Devices&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Device1 - Device10&lt;br /&gt;
{{!}}device1 - device10&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Other 1-Other20 ('''Important:''' These fields populate only if you have not applied a labeling schema to the selection rule (you did not select a labeling schema from the '''Labels''' menu).&lt;br /&gt;
{{!}}other1 - other20&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}All other labels defined in the labeling schema being applied to the selection rule.&lt;br /&gt;
{{!}}other1 - otherN, where N &amp;lt;= 250&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Contacts}} {{#ppin:If you select '''Selection (Suppression)''' from the '''Type''' menu, the standard Contacts fields populate, in addition to the following fields:&lt;br /&gt;
{{{!}}&lt;br /&gt;
!Field Name&lt;br /&gt;
!Description&lt;br /&gt;
!Specification File Keyword&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Suppress From&lt;br /&gt;
{{!}}This is the start date and time that the record becomes active in the target suppression list.&lt;br /&gt;
{{!}}from&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Suppress Until&lt;br /&gt;
{{!}}This is the end date and time that the record becomes inactive in the target suppression list&lt;br /&gt;
{{!}}Till&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Suppression}} {{#ppin:If you select '''Selection (Advanced)''' from the '''Type''' menu, the standard Contacts fields populate here, in addition to the following fields:&lt;br /&gt;
{{{!}}&lt;br /&gt;
!Field Name in User Interface&lt;br /&gt;
!Field Name in Contact List&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Agent ID&lt;br /&gt;
{{!}}agent_id&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Application DBID&lt;br /&gt;
{{!}}app_id&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Number of Attempts&lt;br /&gt;
{{!}}Attempts&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}ISO country Code (Contact)&lt;br /&gt;
{{!}}c_country_code_iso&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Original Record&lt;br /&gt;
{{!}}c_original_record&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Postal Code&lt;br /&gt;
{{!}}c_postal_code&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}State/Region Code&lt;br /&gt;
{{!}}c_state_code&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Time Zone DBID (Contact)&lt;br /&gt;
{{!}}c_tz_dbid&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Time Zone Name (Contact)&lt;br /&gt;
{{!}}c_tz_name&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Call Result&lt;br /&gt;
{{!}}call_result&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Call Time&lt;br /&gt;
{{!}}call_time&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Campaign DBID&lt;br /&gt;
{{!}}campaign_id&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Area Code&lt;br /&gt;
{{!}}cd_area_code&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Country Code (Device)&lt;br /&gt;
{{!}}cd_country_code&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}ISO Country Code (Device)&lt;br /&gt;
{{!}}cd_country_code_iso&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Device Index&lt;br /&gt;
{{!}}cd_device_index&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Device Type&lt;br /&gt;
{{!}}cd_device_type&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Device Exchange&lt;br /&gt;
{{!}}cd_exchange&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Device Extension&lt;br /&gt;
{{!}}cd_extension&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Device Mask&lt;br /&gt;
{{!}}cd_mask&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Device Number&lt;br /&gt;
{{!}}cd_number&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}State/Region Code (Device)&lt;br /&gt;
{{!}}cd_state_code&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Timezone DBID (Device)&lt;br /&gt;
{{!}}cd_tz_dbid&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Time Zone Name (Device)&lt;br /&gt;
{{!}}cd_tz_name&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Chain ID&lt;br /&gt;
{{!}}chain_id&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Number in Chain&lt;br /&gt;
{{!}}chain_n&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Contact Info (Device)&lt;br /&gt;
{{!}}contact_info&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Contact Info Type&lt;br /&gt;
{{!}}contact_info_type&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Contact From&lt;br /&gt;
{{!}}daily_from&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Contact Till&lt;br /&gt;
{{!}}daily_till&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Scheduled Time&lt;br /&gt;
{{!}}dial_sched_time&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Group DBID&lt;br /&gt;
{{!}}group_id&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Record ID&lt;br /&gt;
{{!}}record_id&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Record Status&lt;br /&gt;
{{!}}record_status&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Record Type&lt;br /&gt;
{{!}}record_type&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Switch DBID&lt;br /&gt;
{{!}}switch_id&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Treatment History&lt;br /&gt;
{{!}}treatments&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Time Zone DBID&lt;br /&gt;
{{!}}tz_dbid&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Advanced}}&lt;br /&gt;
&lt;br /&gt;
*Type - These options vary, depending on the Field selection.&lt;br /&gt;
*Operator - Select the operator available with the selected Field.&lt;br /&gt;
*Value - Enter a defining value to search for in that field.&lt;br /&gt;
&lt;br /&gt;
This table describes the supported operators for each Field Type.&lt;br /&gt;
&lt;br /&gt;
{{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}} &lt;br /&gt;
!{{!}}String&lt;br /&gt;
!{{!}}Numeric&lt;br /&gt;
!{{!}}Area Code&lt;br /&gt;
!{{!}}Country Code&lt;br /&gt;
!{{!}}Timezone&lt;br /&gt;
!{{!}}Exchange&lt;br /&gt;
!{{!}}State Code&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Equal&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Not Equal&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Like&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Not Like&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}In&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Not In&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Is Valid&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Is Not Valid&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Is Empty&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Is Not Empty&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Contains&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Does Not Contain&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Custom JS Expression&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Less Than&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Less Than or Equal&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Greater Than&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Greater Than or Equal&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} style=&amp;quot;font-size: 40px; text-align: center;&amp;quot; data-mce-style=&amp;quot;font-size: 40px; text-align: center;&amp;quot;{{!}}'''•'''&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat| '''is valid''' and '''is not valid''' operators can be use to validate the area code, exchange, timezone and state codes of an individual device against the global numbering plan in the compliance data.}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Conditions and Condition Sets&lt;br /&gt;
|anchor=ConditionSets&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=CXC_ConditionSets.png&lt;br /&gt;
|structuredtextwide={{AnchorDiv|ConditionSetExample}}&lt;br /&gt;
{{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}'''Example'''&lt;br /&gt;
&lt;br /&gt;
If you want to extract all customers with the last name Smith with a 506 area code from the existing contact list, specify the following:&lt;br /&gt;
&lt;br /&gt;
*Field - Last Name&lt;br /&gt;
*Type - String&lt;br /&gt;
*Operator - Equal&lt;br /&gt;
*Value - Smith&lt;br /&gt;
&lt;br /&gt;
Now click the plus sign (+) and specify the following:&lt;br /&gt;
&lt;br /&gt;
*Field - The relevant Device (Device1, for example)&lt;br /&gt;
*Type - Area code&lt;br /&gt;
*Operator - Equal&lt;br /&gt;
*Value - 506&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
When you're finished creating the selection rule, it will appear in the table of list rules on the main '''List Rules''' page. Then, when you {{Link-SomewhereInThisManual|topic=ListRules|anchor=UploadRules|display text=create an upload rule}}, you can apply the selection rule to the list being uploaded.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Shared Expressions&lt;br /&gt;
|anchor=SharedExpressions&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=The '''Shared Expression''' option allows you to create shared or nested selection rules. The conditions that you specify for a shared expression can be used across multiple selection rules. If you are running multiple campaign groups and want to change conditions in a selection rule, instead of editing each campaign group, you can update a shared expression and apply it across all campaign groups.&lt;br /&gt;
&lt;br /&gt;
To create a shared expression, select '''Selection (Shared Expression)''' in the '''Type''' field. The '''Use Visual Editor''' toggle is enabled by default. You can use the visual editor to specify conditions. This is similar to how you would select fields and conditions in other selections rules.&lt;br /&gt;
&lt;br /&gt;
You can turn the visual editor off to manually enter an expression using SQL. You can also override the expression function generated by CX Contact if you turn off the visual editor. However, you cannot switch back to the visual editor once you manually override or edit the expression function. After specifying conditions for the shared expression, click '''Validate''' to validate the expression.[[File:Shared expression.png]]&lt;br /&gt;
&lt;br /&gt;
After creating a shared expression, you can add it as a condition for a '''Selection (Advanced)''' rule. Note that shared expression rules can only be used in conjunction with an '''Advanced rule''' and cannot be applied directly to lists or campaign groups.&lt;br /&gt;
&lt;br /&gt;
To use shared expressions in an '''Advanced rule''', select one, and then click the '''Use Shared Expressions''' toggle. Specify the filtering criteria using fields and condition sets, and then select the '''Shared Expression''' radio button. &lt;br /&gt;
&lt;br /&gt;
In the '''Name''' field, select a shared expression.&lt;br /&gt;
&lt;br /&gt;
[[File:Select shared expression.png]]Like other selection rules, shared expressions are also saved to the '''Rules''' page. You can select a shared Expression rule to view or modify its conditions. You can also delete a rule from this page when you no longer need it. &lt;br /&gt;
&lt;br /&gt;
[[File:List rules table-shared expression.png]]&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Create an Upload Rule&lt;br /&gt;
|anchor=UploadRules&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Use an upload rule to apply splitting criteria to create additional contact lists.&lt;br /&gt;
&lt;br /&gt;
To create a new upload rule, from the '''Rules''' page, select '''New -&amp;gt; Upload Rule'''.&lt;br /&gt;
&lt;br /&gt;
On the '''Upload Rules''' page, specify a name for the rule.&lt;br /&gt;
&lt;br /&gt;
Then, from the '''Type''' menu, select the type of selection rule you want to apply:&lt;br /&gt;
&lt;br /&gt;
*Contacts - The upload rule applies to a contact list.&lt;br /&gt;
*Suppression - The upload rule applies to a suppression list.&lt;br /&gt;
&lt;br /&gt;
If you want to use a {{Link-SomewhereInThisManual|topic=ListsSpecFiles|anchor=top|display text=specification file}}, set the '''Specification File''' switch to the '''On''' position and select a specification file from the '''Specification File''' menu. If you want to use a {{Link-SomewhereInThisManual|topic=DataMapping|anchor=top|display text=data mapping schema}}, set the '''Specification File''' switch to the '''Off''' position and choose a data mapping schema to the '''Data Mapping''' menu.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|When you upload a file, the input specification is applied before the splitting rule occurs.}}&lt;br /&gt;
&lt;br /&gt;
At this point, you can do one of two things:&lt;br /&gt;
&lt;br /&gt;
*Option 1 (available for either type of rule): In the '''Selection Rules''' section, apply an existing selection rule to the list being uploaded. To do that, select the rule from the '''Selection Rule''' menu. Notice that only the selection rules matching the rule '''Type''' (Contacts or Suppression) populate in the '''Selection Rule''' menu.&lt;br /&gt;
*Option 2 (available for '''Upload (Contacts)''' rules only): Check the '''Use Splitting''' box to split the contacts into targeted lists. See the {{Link-SomewhereInThisManual|topic=ListRules|anchor=SplitCriteria|display text=Splitting Criteria}} section below for more information.&lt;br /&gt;
&lt;br /&gt;
{{AnchorDiv|SplitCriteria}}&lt;br /&gt;
===Splitting Criteria===&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|This option is only available if you selected '''Contacts''' from the '''Rule Type''' menu.}}&lt;br /&gt;
&lt;br /&gt;
Splitting criteria determines how a contact list will be split into targeted lists. There are three types of splitting criteria, plus an option to customize the split based on previously-defined selection rules.&lt;br /&gt;
&lt;br /&gt;
*Split by quantity – Specify how many contacts from the uploaded file will appear in each new list. If the original list size is not a multiple of the quantity specified, then the final list will contain the remainder of the contacts.&lt;br /&gt;
&lt;br /&gt;
*Split by percent – Specify the percent of contacts from the uploaded file that will appear in each new list. If the percentage specified is not a factor of 100, the final list will contain the remainder.&lt;br /&gt;
&lt;br /&gt;
*Split by field – Split the file by unique contacts in the specified field. For example, “create a separate new list for each unique value contained in the Other3 field.” '''Note:''' If you created labels for user fields (Other1-OtherN) and you selected the Display option when you created those labels, the new defined labels will replace the Other labels in this menu. See {{Link-SomewhereInThisManual|topic=FieldLabels|anchor=top|display text=Create or Manage User Field Labels}} for more information.&lt;br /&gt;
&lt;br /&gt;
*Custom – This allows you to split the file using previously-defined selection rules. Once you select the '''Custom splitting''' option, all available selection rules populate in a new menu, labelled '''List rule 1'''. All the rules listed in this new menu will be an exact match to all selection rules listed in the '''List Rules''' section of CX Contact. You can use any of these selection rules to split a contact list.&lt;br /&gt;
&lt;br /&gt;
Select '''Create remainder file''' when you want the remaining records not included in a selection rule criterion to go into a separate contact list.&lt;br /&gt;
&amp;lt;!--{{NoteFormat|The number of contact lists you can create can also be restricted in the '''Max split lists''' option on the Settings page.|2}}--&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Apply Multiple Selection Rules&lt;br /&gt;
|anchor=ApplyMultipleSelectionRules&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=You can use the plus sign (+) icon next to a rule to create additional contact lists by applying additional selection rules to the splitting criteria (the short video demo to the left shows you how). If you do this, the system will move through the list of rules sequentially, starting with List rule 1, then List rule 2, and so on, and look for records matching that rule. '''Note:''' You can only choose one selection rule per contact list.&lt;br /&gt;
&lt;br /&gt;
To change the order of the selection rules, simply hover over any selection rule (List rule 1, List rule 2, etc.) and drag it to the new location within the list.&lt;br /&gt;
&lt;br /&gt;
To delete any selection rule from the splitting criteria, click the trash can icon next to that rule.&lt;br /&gt;
&lt;br /&gt;
The '''Use Waterfall''' rule option is enabled by default so that when the system matches a record to a selection rule, it will stop attempting to match that record to subsequent selection rules. If you disable this option, the system will attempt to match a single record to all selection rules, meaning that the record could potentially be duplicated in contact lists.&lt;br /&gt;
&lt;br /&gt;
===Output Name Formats===&lt;br /&gt;
When you select Custom splitting, you must specify an output name format. The following naming conventions are supported for this field.&lt;br /&gt;
&lt;br /&gt;
{{{!}}&lt;br /&gt;
!Token&lt;br /&gt;
!Replaced with&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}LIST&lt;br /&gt;
{{!}}Constant part of the contact list name, as provided via API call&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}yyyy&lt;br /&gt;
{{!}}Current year with century as a decimal number (ex. &amp;quot;2017&amp;quot;)&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}MM&lt;br /&gt;
{{!}}Current month number as zero-padded decimal number (ex. &amp;quot;05&amp;quot;, &amp;quot;08&amp;quot;, &amp;quot;11&amp;quot;)&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}dd&lt;br /&gt;
{{!}}Current day in month number as zero-padded decimal number (ex. &amp;quot;07&amp;quot;, &amp;quot;31&amp;quot;)&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}hh&lt;br /&gt;
{{!}}Current hour (24-hour clock) as a zero-padded decimal number (ex. &amp;quot;17&amp;quot;, &amp;quot;00&amp;quot;, &amp;quot;08&amp;quot;)&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}mm&lt;br /&gt;
{{!}}Current minutes as a zero-padded decimal number (ex. &amp;quot;59&amp;quot;, &amp;quot;01&amp;quot;, &amp;quot;19&amp;quot;)&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}%d&lt;br /&gt;
{{!}}Sequential part number of the generated list&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}ACCOUNT&lt;br /&gt;
{{!}}Tenant Name in human readable form&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}%v&lt;br /&gt;
{{!}}Value of the contact field used for splitting on (ex. &amp;quot;CA&amp;quot; if splitting by State)&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}%r&lt;br /&gt;
{{!}}Rule name for the corresponding custom bucket&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
When you're finished creating the upload rule, it will appear in the table of list rules on the main List Rules page. Then, when you {{Link-AnywhereElse|product=PEC-OU|version=Current|manual=CXContact|topic=Lists|display text=import a new list}}, you will have the option to apply the upload rule to the list being imported.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Create a Filtering Rule&lt;br /&gt;
|anchor=FilteringRules&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Use filtering rules to target a subset of records within the contact list. Unlike selection rules and upload rules, filtering rules can be applied dynamically, while a campaign group is running. They do not need to be created at the time a list is being imported into CX Contact.&lt;br /&gt;
&lt;br /&gt;
To create a filtering rule, go to the '''Rules''' page and select '''New -&amp;gt; Filtering Rule'''. &lt;br /&gt;
&lt;br /&gt;
On the '''New Filtering Rules''' page, start by naming the filtering rule. &lt;br /&gt;
&lt;br /&gt;
Then, from the '''Labels''' menu, you can apply a labeling schema. The labels defined in the schema will replace the default labels in the '''Field''' menu. See {{Link-SomewhereInThisManual|topic=FieldLabels|anchor=top|display text=Create or Manage User Field Labels}} for more information about labels. &lt;br /&gt;
&lt;br /&gt;
At this point, you can do one of two things: &lt;br /&gt;
&lt;br /&gt;
*Option 1: In the '''Selection Rules''' section, apply an existing selection rule to the list being uploaded. To do that, select the rule from the '''Selection Rule''' menu. '''Note:''' If there are no selection rules to choose from, you must use Option 2.&lt;br /&gt;
*Option 2: Check the '''Use ordering''' box to define the order in which records are processed and displayed in CX Contact. See the {{Link-SomewhereInThisManual|topic=ListRules|anchor=Ordering|display text=Ordering section}} below for more details.&lt;br /&gt;
&lt;br /&gt;
===Ordering===&lt;br /&gt;
In this section, you can define how you want to order and display the records within a contact list. For example, if you want to display the records in ascending order based on Last Name, you would select the Last Name from the '''Choose Field for Ordering''' menu and then select Ascending. &lt;br /&gt;
&lt;br /&gt;
You can optionally set the Use visual editor switch to Off to instead enter a SQL ORDER BY clause to define the order. For example, to sort in ascending order by Country, in the SQL ORDER BY field, enter &amp;lt;tt&amp;gt;Country ASC;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you're finished creating the filtering rule, it will appear in the '''Filtering Rules''' menu on the '''General''' tab of a dialing profile, campaign template, or campaign group. You can apply it to any campaign group at any point, even while the campaign group is running.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Edit or Delete a List Rule&lt;br /&gt;
|anchor=EditDeleteRules&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=From the '''Rules''' page, you can edit or delete a rule: &lt;br /&gt;
&lt;br /&gt;
*Edit - Click the pencil icon from the '''Actions''' menu.&lt;br /&gt;
*Delete - Click the trash can icon from the '''Actions''' menu or check the box to the left of the rule and click '''Delete''' (located at the top of the page, next to the '''New''' option).&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Duplicate a List Rule&lt;br /&gt;
|anchor=DuplicateRules&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=You can duplicate any selection or upload rule from the '''Rules''' page. &lt;br /&gt;
&lt;br /&gt;
Locate the rule you want to duplicate, and from the '''Actions''' menu, click the document icon. A copy of the original rule opens. You can change any or all of the rule's properties, or leave the default properties, and then click '''Update Rule'''. The new rule will appear on the '''List Rules''' page. &lt;br /&gt;
&lt;br /&gt;
[[File:CXC_DuplicateRule.png|center]]&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Import Rules&lt;br /&gt;
|anchor=ImportRules&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=To import a rule, select '''Lists &amp;gt; List Rules''' and click '''Select file (.json)'''.&lt;br /&gt;
&lt;br /&gt;
Locate and select the '''.json''' file that contains the rules you want to import. Click '''Open''' and then '''Import'''. The imported rule will appear. You can edit the imported rule before saving it. You will then return to the '''List Rules''' page.[[File:CXC_Import_List_Rule.png|center]]&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Related Topics&lt;br /&gt;
|anchor=RelatedTopics&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=*{{Link-AnywhereElse|product=PEC-OU|version=Current|manual=CXContact|topic=Lists|display text=Create and Manage Contact Lists}}&lt;br /&gt;
*{{Link-AnywhereElse|product=PEC-OU|version=Current|manual=CXContact|topic=ListsSpecFiles|display text=Import Specification Files}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-OU/Current/CXContact/SMSCampaign&amp;diff=131374</id>
		<title>PEC-OU/Current/CXContact/SMSCampaign</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-OU/Current/CXContact/SMSCampaign&amp;diff=131374"/>
		<updated>2023-03-06T11:55:14Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Create an SMS Template&lt;br /&gt;
|TocName=Create an SMS Template&lt;br /&gt;
|Context=Learn how to build and modify SMS templates if you plan to run a campaign using the SMS channel.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Administrator&lt;br /&gt;
|Application=CX Contact&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|sectionHeading=Create SMS Content&lt;br /&gt;
|anchor=SMSContent&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=To get started, you need to  {{Link-SomewhereInThisManual|topic=DialingProfile|display text=create an SMS dialing profile}}&lt;br /&gt;
&lt;br /&gt;
When you set up your SMS profile, you'll see a tab named '''Content'''. This is where you'll create a template for an SMS message and one for responses to Help and Opt-out requests from customers.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|alignment=Horizontal&lt;br /&gt;
|Media=Image&lt;br /&gt;
|image=Variable-alert SMS-alert-type.png&lt;br /&gt;
|structuredtext=&amp;lt;br /&amp;gt; &lt;br /&gt;
{{AnchorDiv|Labels}}&lt;br /&gt;
To begin, specify the following: &lt;br /&gt;
&lt;br /&gt;
*Type - Select '''Alert''' or '''Variable Alert'''. When you select '''Variable Alert''', you can create additional SMS templates by clicking the plus button. The templates can have different Sender IDs and messages.&lt;br /&gt;
*Labels - If you plan to personalize messages using fields you defined in a labeling schema, select the labeling schema here. Otherwise, the Personalization menu will populate the default CX Contact list fields. See the {{Link-SomewhereInThisManual|topic=SMSCampaign|anchor=Personalization|display text=Personalized Content}} section below for more information.&lt;br /&gt;
*Use Smart Filter - When enabled (default), CX Contact removes unnecessary symbols, spaces, and line breaks before sending the text message.&lt;br /&gt;
|structuredtextwide={{NoteFormat|The type of template cannot be changed after a dialing profile is created.|Important}}&lt;br /&gt;
&lt;br /&gt;
====Create an Alert SMS Template====&lt;br /&gt;
Watch this video to learn how to create a general SMS template.&lt;br /&gt;
&lt;br /&gt;
{{Video|id=749879852|Description=Alert SMS Template}}&lt;br /&gt;
&lt;br /&gt;
====Create a Variable SMS Template====&lt;br /&gt;
For variable alerts, the first template you create is the default template. For subsequent templates you can add a custom JavaScript expression in the '''Selection Expression''' field, which evaluates the conditions for a True or False outcome. True allows for that template to be used. If the conditions specified in all such expression fields fail, the default template is used.&lt;br /&gt;
&lt;br /&gt;
Watch this video to learn how to create a variable SMS template.{{Video|id=751990249|Description=Variable SMS templates}}&lt;br /&gt;
&lt;br /&gt;
====Add Message Content====&lt;br /&gt;
Now, insert the text into the message body for each type of alert message:&lt;br /&gt;
&lt;br /&gt;
*Initial Message - The initial outbound message, also known as the Message Termination (MT).&lt;br /&gt;
*Help Response - The response used when a customer texts the Help or Info keyword. See the {{Link-SomewhereInThisManual|topic=SMSCampaign|anchor=SMSKeywords|display text=Supported Keywords}} section for a list of supported keywords.&lt;br /&gt;
*Opt-out/Stop Response - The response used when a customer texts the '''Stop''' keyword. Those customers are automatically added to the suppression list. Additional {{Link-SomewhereInThisManual|topic=SMSCampaign|anchor=SMSKeywords|display text=Supported Keywords}} such as, '''Unsubscribe''', '''Cancel''', '''Quit''', and '''End''' will also automatically add the customers device/mobile number to the suppression list.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|ARRET and UNSUB are supported Opt-Out/Stop responses for Canada.}}&lt;br /&gt;
&lt;br /&gt;
[[File:CXC_SMS_SampleResponses_Personalization.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
{{AnchorDiv|SMSKeywords}}&lt;br /&gt;
===Supported Keywords===&lt;br /&gt;
The following is a list of supported keywords. These are not case sensitive.&lt;br /&gt;
&lt;br /&gt;
*Help&lt;br /&gt;
*Info&lt;br /&gt;
*Stop&lt;br /&gt;
*Unsubscribe&lt;br /&gt;
*Cancel&lt;br /&gt;
*Quit&lt;br /&gt;
*Aide&lt;br /&gt;
*Arret&lt;br /&gt;
*Unsub&lt;br /&gt;
*Unstop&lt;br /&gt;
*Start&lt;br /&gt;
*Subscribe&lt;br /&gt;
*Resume&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Alpha or alphanumeric Sender IDs cannot receive mobile-originated (MO) SMS responses. Therefore, CX Contact disables '''Edit''' dialogs in the UI for the '''Stop''' and '''Help''' keywords if the Sender ID’s are configured for an SMS Campaign Group.|2}}&lt;br /&gt;
&lt;br /&gt;
====Custom keywords====&lt;br /&gt;
You can override the default keywords for the options Help and Stop/Opt out and specify custom ones. When you add a personalized response for the Stop or Help options, click the '''Override Stop Keywords''' or '''Override Help Keywords''' buttons to set custom keywords. You can specify multiple custom keywords and delete the ones that you don't want. Keywords can include both alphabets and digits. If required, you can also use GUIDs in keywords.&lt;br /&gt;
&lt;br /&gt;
[[File:Custom SMS keywords.png|500x500px]]&lt;br /&gt;
&lt;br /&gt;
===Character Length in Message Bodies===&lt;br /&gt;
There is no limit to the amount of characters in the message body text, but sending an SMS with more than 160 characters is enabled with SMS Concatenation. Also, when using Personalized content, those field values count toward the maximum field length. Every tag counts as 10 characters.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Delivering content with more than 160 characters requires the system to send multiple SMS messages. Since each SMS incurs costs, please consider this when creating content over 160 characters.}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Personalized Content&lt;br /&gt;
|anchor=Personalization&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=To personalize a message (for example, greet the customer by name): &lt;br /&gt;
&lt;br /&gt;
#Select the {{Link-SomewhereInThisManual|topic=SMSCampaign|anchor=Labels|display text=labeling schema}} from the Labels menu&lt;br /&gt;
#Fom the personalization menu, drag the contact list field name to the body of the message.&lt;br /&gt;
&lt;br /&gt;
[[File:CXC_SMS_DragDropFields.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|When you use the personalization feature, we recommend you always use the '''Send SMS Test''' option to ensure the template populates as expected.}}&lt;br /&gt;
&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}'''Scenario'''&lt;br /&gt;
{{!}}&lt;br /&gt;
'''Action:'''&lt;br /&gt;
You write: ''Hi'' followed by the ''First Name'' tag:&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:CXC_Email_FirstNameTag.png]]&lt;br /&gt;
&lt;br /&gt;
'''Result:'''&lt;br /&gt;
The system scans the contact's information and finds that the ''First Name'' value for this contact is &amp;lt;tt&amp;gt;John&amp;lt;/tt&amp;gt;. The customer receives the following text message: ''Hi John.''&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PEC-OU/Current/CXContact/TriggerRules&amp;diff=131373</id>
		<title>PEC-OU/Current/CXContact/TriggerRules</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PEC-OU/Current/CXContact/TriggerRules&amp;diff=131373"/>
		<updated>2023-03-06T11:55:06Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Create and Manage Trigger Rules&lt;br /&gt;
|TocName=Create and Manage Trigger Rules&lt;br /&gt;
|Context=Learn how to create Trigger Rules for various CX Contact events.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysCloud&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Use the Trigger Rules feature in CX Contact to create rules that notify you of various events related to lists, automation jobs, and campaigns. Rules are customizable and allow you to specify various conditions for different types of events. When these conditions are met, a notification is sent to you via an email or SMS. For example, you can create a rule so that the system sends a customized email to you (or to a specific email address) whenever a list automation job fails.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Create a Trigger Rule&lt;br /&gt;
|anchor=CreateTriggerRule&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=To create a new trigger rule, go to the '''Trigger Rules''' page, and then click '''New''' &amp;gt; '''Trigger Rule'''. Enter a name and description for the trigger rule. Select an event type, a related sub type, and specify conditions. The system sends an email or SMS notification when all these conditions are satisfied.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger rules option.png]]&lt;br /&gt;
&lt;br /&gt;
The following table describes the various event types and conditions you can specify in a rule:&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}+&lt;br /&gt;
!Trigger Event Type&lt;br /&gt;
!Trigger Event Sub Type&lt;br /&gt;
!Conditions&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Automation Job Completed&lt;br /&gt;
{{!}}&lt;br /&gt;
*Calling List Import&lt;br /&gt;
*Suppression List Import&lt;br /&gt;
*Report Export&lt;br /&gt;
{{!}}&lt;br /&gt;
*Any Job&lt;br /&gt;
*Job with the name matching RegEx&lt;br /&gt;
*Event Result&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Manual Import Completed&lt;br /&gt;
{{!}}&lt;br /&gt;
*Calling List Import&lt;br /&gt;
*Suppression List Import&lt;br /&gt;
{{!}}&lt;br /&gt;
*Any List&lt;br /&gt;
*List with the name matching RegEx&lt;br /&gt;
*Event Result&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Campaign Group State Completed&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
*Any Campaign Group&lt;br /&gt;
*Any Voice Campaign Group&lt;br /&gt;
*Any SMS Campaign Group&lt;br /&gt;
*Any Email Campaign Group&lt;br /&gt;
*Campaign Group with the name matching RegEx&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Create a trigger rule.png]]&lt;br /&gt;
&lt;br /&gt;
In the '''Actions''' field, select '''Send Email''' or '''Send SMS'''. After specifying the sender and recipient details for email or SMS notifications, add your notification content. You can use the macros described in the following table to compose your notification content.&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}+&lt;br /&gt;
!Macro Name&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Full Event&lt;br /&gt;
{{!}}The complete event output. The format is event-dependent and can vary from list names to the number of imported records.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Result Text&lt;br /&gt;
{{!}}Indicates the outcome of an event:&lt;br /&gt;
&lt;br /&gt;
*Success&lt;br /&gt;
*Failure&lt;br /&gt;
*Partial Success&lt;br /&gt;
*Nothing To Do&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Result Int&lt;br /&gt;
{{!}}Indicates the outcome of an event as an integer.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Job Name&lt;br /&gt;
{{!}}The name of the automation job.&amp;lt;br /&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Trigger Rule Name&lt;br /&gt;
{{!}}The name of the trigger rule.&lt;br /&gt;
{{!}}}&lt;br /&gt;
 &lt;br /&gt;
Once you have entered the required details for a rule, you can send a test email or SMS to test notifications before saving the rule. &lt;br /&gt;
&lt;br /&gt;
All your rules are saved to the '''Trigger Rules''' page. On the '''Trigger Rules''' page, you can disable, modify, or even delete a rule when you no longer need it. Select a rule to see its associated events, conditions, and notification actions on the right panel of the '''Trigger Rules''' page.&lt;br /&gt;
&lt;br /&gt;
[[File:Trigger rules page.png]]&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Related Topics&lt;br /&gt;
|anchor=RelatedTopics&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=*{{Link-SomewhereInThisManual|topic=Lists|anchor=top|display text=Create and Manage Contact Lists}}&lt;br /&gt;
*{{Link-SomewhereInThisManual|topic=ListRules|anchor=top|display text=Create and Manage List Rules}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/AIConnector/100.0.139.7721&amp;diff=131215</id>
		<title>RN/AIConnector/100.0.139.7721</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/AIConnector/100.0.139.7721&amp;diff=131215"/>
		<updated>2023-02-20T06:55:07Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=c5a76aa7-eedc-4cba-8bf2-b23a4d28ef29&lt;br /&gt;
|JQL=issue in (nexus-10573)&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a, 8b480b3c-2733-433a-9166-eab2c2d0663a&lt;br /&gt;
|ReleaseDate=2023-02-15&lt;br /&gt;
|PrivateEditionReleaseDate=2023-02-15&lt;br /&gt;
|Highlight=AI Connector now uses an enhanced phone call model with Google Cloud Speech-to-Text.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-10573&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|Content=The AI Connector now uses an enhanced phone call model with Google Cloud Speech-to-Text to provide better quality audio calls. (NEXUS-10573)&lt;br /&gt;
|LocalContent=The Digital Channels AI Connector now uses an enhanced phone call model with Google Cloud Speech-to-Text to provide better quality audio calls.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/DigitalChannels/100.0.139.7721&amp;diff=131214</id>
		<title>RN/DigitalChannels/100.0.139.7721</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/DigitalChannels/100.0.139.7721&amp;diff=131214"/>
		<updated>2023-02-20T06:55:05Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=074d8cb2-e6a5-4df8-97d2-d1044727c558&lt;br /&gt;
|JQL=issue in (nexus-9693, nexus-10567)&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a, 5439f1be-1868-4091-b058-1667389b6ce1, 8b480b3c-2733-433a-9166-eab2c2d0663a&lt;br /&gt;
|ReleaseDate=2023-02-15&lt;br /&gt;
|ReleaseNumber=100.0.139.7721&lt;br /&gt;
|PrivateEditionReleaseDate=2023-02-15&lt;br /&gt;
|Highlight=Admins can configure whether agents are automatically subscribed to contacts for specific digital channels.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-10567&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|Content=Digital Channels now correctly handles connections and disconnections from CX Contact. Previously, when handling events for outbound campaigns through CX Contact, Digital Channels occasionally sent events to a closed connection that caused them to be lost. (NEXUS-10567)&lt;br /&gt;
|LocalContent=Digital Channels now correctly handles connections and disconnections from CX Contact. Previously, when handling events for outbound campaigns through CX Contact, Digital Channels occasionally sent events to a closed connection that caused them to be lost.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-9693&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=Administrators can now configure whether agents are automatically subscribed to contacts for specific digital channels.  Using the option ‘disableSubscription’ in section ‘chat’ in the Digital Channels tenant options, Administrators can disable the contact subscription for specific sub-media types: InboundNew, SMS, WhatsApp, FacebookPrivate, FacebookPublic, TwitterPrivate, or TwitterPublic. (NEXUS-9693)&lt;br /&gt;
|LocalContent=Administrators can now configure whether agents are automatically subscribed to contacts for specific digital channels. Using the option &amp;lt;code&amp;gt;disableSubscription&amp;lt;/code&amp;gt; in the '''chat section''' in the Digital Channels tenant options, Administrators can disable the contact subscription for specific sub-media types: &amp;lt;code&amp;gt;InboundNew&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SMS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WhatsApp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FacebookPrivate&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FacebookPublic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TwitterPrivate&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;TwitterPublic&amp;lt;/code&amp;gt;.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=WID/Current/SDK/GWCBusAPIOverview&amp;diff=131139</id>
		<title>WID/Current/SDK/GWCBusAPIOverview</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=WID/Current/SDK/GWCBusAPIOverview&amp;diff=131139"/>
		<updated>2023-02-06T14:41:08Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Widgets Bus API overview&lt;br /&gt;
|TocName=Widgets Bus API overview&lt;br /&gt;
|Context=Learn about the bus that all widgets components are built on.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Role=Developer&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|sectionHeading=Overview&lt;br /&gt;
|anchor=Overview&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Genesys Widgets is built on top of the CXBus messaging bus. CXBus uses the {{#Widget:ExtLink|link=https://en.wikipedia.org/wiki/Publish–subscribe_pattern|displaytext=publish-subscribe}} model to facilitate communication between the Widgets components, all of which are ''plugins'' that can both ''publish'' events on the bus and ''subscribe'' to the events they are interested in.&lt;br /&gt;
&lt;br /&gt;
With the help of the Widgets-Core plugins, CXBus makes it possible to combine the logic implemented by user interface plugins, service plugins, and utility plugins into cohesive products that can provide chat sessions, schedule callbacks, and so on.&lt;br /&gt;
&lt;br /&gt;
Publications and subscriptions are loosely bound so that you can publish and subscribe to any event without that event explicitly being available. This allows for plugins to lazy load into the bus or provide conditional logic in your plugins so they can wait for other plugins to be available.&lt;br /&gt;
&lt;br /&gt;
CXBus events and commands are executed asynchronously using deferred methods and promises. This allows for better performance and standardized Pass/Fail handling for all commands. Command promises are not resolved until the command is finished, including any nested asynchronous commands that command may invoke. This gives you assurance that the command completed successfully and the timing of your follow-up action will occur at the right time. As for permissions, CXBus provides metadata in every command call including which plugin called the command and at what time. This allows for plugins to selectively allow/deny invocation of commands. &lt;br /&gt;
&lt;br /&gt;
You can use three methods to access the Bus:&lt;br /&gt;
&lt;br /&gt;
*Global access&lt;br /&gt;
*Genesys Widgets onReady callback&lt;br /&gt;
*Extensions&lt;br /&gt;
&lt;br /&gt;
===Global access===&lt;br /&gt;
====QuickBus====&lt;br /&gt;
&amp;lt;tt&amp;gt;window._genesys.widgets.bus&amp;lt;/tt&amp;gt;&amp;lt;br /&amp;gt;For quick access to call commands on the bus, you can access the '''QuickBus''' instance after Genesys Widgets loads. QuickBus is a CXBus plugin that is exposed globally for your convenience. Typical use cases for using QuickBus are for debugging or calling a command when a link or button is clicked. Instead of creating your own plugin, you can use QuickBus to add the click handler inline in your HTML.&amp;lt;br /&amp;gt;Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#&amp;quot; onclick=&amp;quot;_genesys.widgets.bus.command('WebChat.open');&amp;quot;&amp;gt;Open WebChat&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Global CXBus====&lt;br /&gt;
CXBus is available as a global instance named &amp;quot;CXBus&amp;quot; (or window.CXBus). Unlike QuickBus, this is not a plugin but CXBus itself.&lt;br /&gt;
&amp;lt;br /&amp;gt;CXBus has been updated to include a &amp;quot;command&amp;quot; method that allows you to execute a command directly from the CXBus instance. &lt;br /&gt;
&amp;lt;br /&amp;gt;Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
CXBus.command(&amp;quot;WebChat.open&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;You can use this, like QuickBus, for debugging or setting up click events.&lt;br /&gt;
===Genesys Widgets onReady callback===&lt;br /&gt;
Genesys Widgets provides an &amp;quot;onReady&amp;quot; callback function that you can define in your configuration. This will be triggered after Genesys Widgets initializes. QuickBus is provided as an argument in this function, but you may also access CXBus globally in your function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
window._genesys.widgets.onReady = function(QuickBus){&lt;br /&gt;
    &lt;br /&gt;
    // Use the QuickBus plugin provided here to interface with the bus&lt;br /&gt;
    // QuickBus is analogous to window._genesys.widgets.bus&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Extensions===&lt;br /&gt;
You can define your own plugins/widgets that interface with Genesys Widgets. For more information, please see {{Link-SomewhereInThisVersion|manual=SDK|topic=GWCBusExtensions|display text=Genesys Widgets extensions}}.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=CXBus Reference&lt;br /&gt;
|anchor=CXBusReference&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=The CXBus instance is exposed globally (window.CXBus) and has several methods available:&lt;br /&gt;
&lt;br /&gt;
*CXBus.command&lt;br /&gt;
*CXBus.configure&lt;br /&gt;
*CXBus.loadFile&lt;br /&gt;
*CXBus.loadPlugin&lt;br /&gt;
*CXBus.registerPlugin&lt;br /&gt;
&lt;br /&gt;
===CXBus.command===&lt;br /&gt;
Calls a command on the bus under the namespace &amp;quot;CXBus&amp;quot;. Use this to quickly and easily call commands without needing to generate a unique plugin interface object first.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
CXBus.command(&amp;quot;WebChat.open&amp;quot;, {});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Name&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}Command name&lt;br /&gt;
{{!}}{{!}}string&lt;br /&gt;
{{!}}{{!}}The name of the command you wish to execute.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}Command options&lt;br /&gt;
{{!}}{{!}}object&lt;br /&gt;
{{!}}{{!}}Optional: You may pass an object containing properties that the command will accept. Refer to the documentation on each command to see what options are available.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
====Returns====&lt;br /&gt;
Always returns a promise. You can define done(), fail(), or always() callbacks for every command. &lt;br /&gt;
===CXBus.configure===&lt;br /&gt;
Allows you to change configuration options for CXBus.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
CXBus.configure({debug: true, pluginsPath: &amp;quot;/js/widgets/plugins/&amp;quot;});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Name&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}Configuration options&lt;br /&gt;
{{!}}{{!}}object&lt;br /&gt;
{{!}}{{!}}An object containing properties, similar to command options. In this object you can change configuration options for CXBus.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
====Configuration options====&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Name&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}debug&lt;br /&gt;
{{!}}{{!}}boolean&lt;br /&gt;
{{!}}{{!}}Enable or disable CXBus logging in the javascript console. Set to '''true''' to enable; set to '''false''' to disable. Default value is '''false'''.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}pluginsPath&lt;br /&gt;
{{!}}{{!}}string&lt;br /&gt;
{{!}}{{!}}The location of the Genesys Widgets &amp;quot;plugins&amp;quot; folder.&lt;br /&gt;
'''Example''': &amp;quot;/js/widgets/plugins/&amp;quot;&lt;br /&gt;
The default value here is &amp;quot;&amp;quot;. This configuration option is used for lazy loading plugin files. Be sure to configure this option when using Genesys Widgets in lazy loading mode.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}pluginMap&lt;br /&gt;
{{!}}{{!}}object&lt;br /&gt;
{{!}}{{!}}Used to change the target JS file for each plugin or to add a new plugin.&lt;br /&gt;
&lt;br /&gt;
'''Example''':&lt;br /&gt;
 {sendmessage: &amp;quot;&amp;lt;nowiki&amp;gt;https://www.yoursite.com/plugins/custom-sendmessage.js&amp;lt;/nowiki&amp;gt;&amp;quot;}&lt;br /&gt;
CXBus will automatically lazy load plugins defined in this object when something tries to call a command on that plugin.&lt;br /&gt;
&lt;br /&gt;
For instance, if SendMessage.open is called and '''SendMessage''' isn't loaded, CXBus will fetch it from the default &amp;quot;plugins/&amp;quot; folder. If you want to load a different '''SendMessage''' widget, you can override the default URL of the JS file associated with &amp;quot;sendmessage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can also prevent a plugin from loading by mapping it to '''false'''.&lt;br /&gt;
&lt;br /&gt;
'''Example''':&lt;br /&gt;
{sendmessage: false}{{NoteFormat|&lt;br /&gt;
* Any number of plugins can be included in this object.&lt;br /&gt;
* Only works when using the lazy-loading method of initializing Widgets.&lt;br /&gt;
*Not intended to be used to load different versions of Genesys Widgets plugins.&lt;br /&gt;
*Intended to be used along with the proper pluginsPath configuration. Do not use &amp;lt;tt&amp;gt;pluginMap&amp;lt;/tt&amp;gt; method separately.|}}&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
====Returns====&lt;br /&gt;
This method returns nothing.&lt;br /&gt;
===CXBus.loadFile===&lt;br /&gt;
Loads any javascript file.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
CXBus.loadFile(&amp;quot;/js/widgets/plugins/webchat.min.js&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Name&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}File path&lt;br /&gt;
{{!}}{{!}}string&lt;br /&gt;
{{!}}{{!}}Loads a javascript file based on the file path specified.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
====Returns====&lt;br /&gt;
Always returns a promise. You can define done(), fail(), or always() callbacks. &lt;br /&gt;
When the file loads successfully, done() will be triggered.&lt;br /&gt;
When the file fails to load, fail() will be triggered.&lt;br /&gt;
===CXBus.loadPlugin===&lt;br /&gt;
Loads a plugin file from the configured &amp;quot;plugins&amp;quot; folder.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
CXBus.loadPlugin(&amp;quot;webchat&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Name&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}Plugin name&lt;br /&gt;
{{!}}{{!}}string&lt;br /&gt;
{{!}}{{!}}Loads a plugin from the &amp;quot;plugins&amp;quot; folder by name (configured by the &amp;quot;pluginsPath&amp;quot; option). Plugin names match their CXBus namespaces but are lowercase. &amp;lt;br /&amp;gt;Example: To load WebChat, use &amp;quot;webchat&amp;quot;. &amp;lt;br /&amp;gt;You can refer to the files inside the &amp;quot;plugins&amp;quot; folder as well. The first part of the file name will be the name you use with this function. &amp;lt;br /&amp;gt;Example: Use &amp;quot;webchat&amp;quot; to load &amp;quot;webchat.min.js&amp;quot;.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
====Returns====&lt;br /&gt;
Always returns a promise. You can define done(), fail(), or always() callbacks. &lt;br /&gt;
When the plugin loads successfully, done() will be triggered.&lt;br /&gt;
When the plugin fails to load, fail() will be triggered.&lt;br /&gt;
{{AnchorDiv|regplugin}}&lt;br /&gt;
===CXBus.registerPlugin===&lt;br /&gt;
Registers a new plugin namespace on the bus and returns a plugin interface object. You will use the plugin interface object to publish, subscribe, call commands, and perform other CXBus functions. &lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var oMyNewPlugin = CXBus.registerPlugin(&amp;quot;MyNewPlugin&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
!{{!}}Name&lt;br /&gt;
!{{!}}Type&lt;br /&gt;
!{{!}}Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{!}}CXBus plugin namespace&lt;br /&gt;
{{!}}{{!}}string&lt;br /&gt;
{{!}}{{!}}The namespace you want to reserve for your plugin.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
====Returns====&lt;br /&gt;
If the namespace is not already taken, it will return a CXBus plugin interface object configured with the selected namespace. &lt;br /&gt;
If the namespace is already taken, it will return false.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=CXBus Plugin Interface Reference&lt;br /&gt;
|anchor=CXBusPluginInterfaceReference&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=When you register a plugin using CXBus.registerPlugin(), it returns a CXBus Plugin Interface Object. This object contains many methods that allow you to interact with other plugins on the bus.&lt;br /&gt;
&lt;br /&gt;
Let's start with the assumption that we've created the below plugin interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var oMyNewPlugin = CXBus.registerPlugin(&amp;quot;MyNewPlugin&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===oMyNewPlugin.registerCommand===&lt;br /&gt;
Allows you to register a new command on the bus for other plugins to use.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.registerCommand(&amp;quot;test&amp;quot;, function(e){&lt;br /&gt;
	&lt;br /&gt;
	console.log(&amp;quot;'MyNewPlugin.test' command was called&amp;quot;, e)&lt;br /&gt;
&lt;br /&gt;
	e.deferred.resolve();&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Command name&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The name you want for this command. When other plugins call your command, they must specify the namespace as well.&amp;lt;br /&amp;gt;Example: &amp;quot;test&amp;quot; is called on the bus as &amp;quot;MyNewPlugin.test&amp;quot;.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Command function&lt;br /&gt;
{{!}}function&lt;br /&gt;
{{!}}The command function that is executed when the command is called. This function is provided an '''Event Object''' that contains metadata and any options passed in.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Event object====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}time&lt;br /&gt;
{{!}}number (integer time)&lt;br /&gt;
{{!}}The time the command was called.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}commander&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The name of the plugin that called your command. Example: If your plugin called a command, the value would be &amp;quot;MyNewPlugin&amp;quot;. &amp;lt;br /&amp;gt; You can use this information to create plugin-specific logic in your command.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}command&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The name of this command. Example: &amp;quot;MyNewPlugin.test&amp;quot;. &amp;lt;br /&amp;gt;This can be useful if you are using the same function for multiple commands and need to identify which command was called.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}deferred&lt;br /&gt;
{{!}}deferred promise object&lt;br /&gt;
{{!}}When a command is called, a promise is generated. You must resolve this promise in your command without exception. Either execute e.deferred.resolve() or e.deferred.reject().&amp;lt;br /&amp;gt;You may pass values back through these methods. If you pass a value back inside reject() it will be printed in the console as an error log automatically.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}data&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}This is the object containing command options passed in when the command was called. If no options were passed, this will default to an empty object.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Returns====&lt;br /&gt;
Returns true.&lt;br /&gt;
===oMyNewPlugin.registerEvents===&lt;br /&gt;
Registering events is a formality that allows CXBus to keep a registry of all possible events. You don't need to register events before publishing them, but it's a best practice to always register events.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.registerEvents([&amp;quot;ready&amp;quot;, &amp;quot;testEvent&amp;quot;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Event name array&lt;br /&gt;
{{!}}array&lt;br /&gt;
{{!}}An array of event names.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Returns====&lt;br /&gt;
Returns true if at least one value event was included in the array.&lt;br /&gt;
Returns false if no events are included in the array or no array is passed in.&lt;br /&gt;
===oMyNewPlugin.subscribe===&lt;br /&gt;
&lt;br /&gt;
Subscribes your plugin to an event on the bus with a callback function. When the event is published, the callback function is executed. You can subscribe to any event, even if the event does not exist. This allows for binding events that may come in the future. &lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.subscribe(&amp;quot;WebChat.opened&amp;quot;, function(e){&lt;br /&gt;
	&lt;br /&gt;
	// e = Event Object. Contains metadata and attached data &lt;br /&gt;
	//&lt;br /&gt;
	// Example Event Object data:&lt;br /&gt;
	//&lt;br /&gt;
	// e.time == 1532017560154&lt;br /&gt;
	// e.event == &amp;quot;WebChat.opened&amp;quot;&lt;br /&gt;
	// e.publisher == &amp;quot;WebChat&amp;quot;&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Event name&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The name of the event you want to subscribe to. Must include the plugin's namespace.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Callback function&lt;br /&gt;
{{!}}function&lt;br /&gt;
{{!}}A function to execute when the event is published. An Event Object is passed into this function that gives you access to metadata and attached data.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Event object====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}time&lt;br /&gt;
{{!}}number (integer time)&lt;br /&gt;
{{!}}The time the event was published.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}event&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The name of the event, including namespace. That can be useful if you are using the same function to handle multiple events.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}publisher&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The namespace of the plugin that published the event.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Returns====&lt;br /&gt;
Returns the name of the event back to you if the subscription was successful.&lt;br /&gt;
Returns false if you did not specify an event and/or a callback function.&lt;br /&gt;
===oMyNewPlugin.publish===&lt;br /&gt;
Publishes an event on the bus under your plugin's namespace. &lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Publishes the event &amp;quot;MyNewPlugin.testEvent&amp;quot; with attached data {test: &amp;quot;123&amp;quot;}&lt;br /&gt;
oMyNewPlugin.publish(&amp;quot;testEvent&amp;quot;, {test: &amp;quot;123&amp;quot;});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Event name&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The name of the event you want to publish. Do not include the plugin namespace.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Attached data&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}An object of arbitrary properties you can attach to your event.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Returns====&lt;br /&gt;
Always returns true.&lt;br /&gt;
===oMyNewPlugin.republish===&lt;br /&gt;
A special method of publishing intended for one-off events like &amp;quot;ready&amp;quot;. In some cases, an event will fire only once. If a plugin is loaded at a later time that needs to subscribe to this event, it will never get it because it will never be published again. To solve this problem, the &amp;quot;republish&amp;quot; method will automatically republish an event to new subscribers as soon as they subscribe to it. &lt;br /&gt;
&lt;br /&gt;
In Genesys Widgets, every plugin publishes a &amp;quot;ready&amp;quot; event. This event is published using &amp;quot;republish&amp;quot; so that any plugin loaded and/or initialized after can still receive the event.&lt;br /&gt;
&lt;br /&gt;
It is  important that you only use &amp;quot;republish&amp;quot; for events that publish once. Using republish multiple times for the same event can cause unwanted behavior.&lt;br /&gt;
&lt;br /&gt;
Genesys Widgets plugins all publish a &amp;quot;ready&amp;quot; event. This is not related to the CXBus plugin interface object's &amp;quot;ready()&amp;quot; method. Calling oMyNewPlugin.ready() will not publish any events.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.republish(&amp;quot;ready&amp;quot;, {...});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Event name&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The name of the event you want to have republished. Do not include the plugin namespace.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Attached data&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}An object of arbitrary properties you can attach to your event.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Returns====&lt;br /&gt;
Always returns true.&lt;br /&gt;
===oMyNewPlugin.publishDirect===&lt;br /&gt;
A slight variation on &amp;quot;publish&amp;quot;, this method will only publish an event on the bus if it has subscribers. The intention of this method is to avoid spamming the logs with events that no plugins are listening to. In particular, if you have an event that publishes frequently or on an interval, &amp;quot;publishDirect&amp;quot; may be used to minimize its impact on logs in the console.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.publishDirect(&amp;quot;poll&amp;quot;, {...});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Event name&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}The name of the event you want to have republished. Do not include the plugin namespace.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Attached data&lt;br /&gt;
{{!}}object&lt;br /&gt;
{{!}}An object of arbitrary properties you can attach to your event.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Returns====&lt;br /&gt;
Always returns true.&lt;br /&gt;
===oMyNewPlugin.command===&lt;br /&gt;
Have your plugin call a command on the bus. &lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.command(&amp;quot;WebChat.open&amp;quot;, {...}).done(function(e){&lt;br /&gt;
&lt;br /&gt;
	// If command succeeds&lt;br /&gt;
	// e == any returned data&lt;br /&gt;
&lt;br /&gt;
}).fail(function(e){&lt;br /&gt;
	&lt;br /&gt;
	// If command fails&lt;br /&gt;
	// e == any returned data&lt;br /&gt;
&lt;br /&gt;
}).always(function(){&lt;br /&gt;
	&lt;br /&gt;
	// Always executed&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Command name&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Name of the command you wish to call.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Command options&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Optional: An object containing properties the command will use in its execution. Refer to plugin references for a list of options available for each command.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Returns====&lt;br /&gt;
Always returns a promise. You can define done(), fail(), or always() callbacks for every command.  &lt;br /&gt;
===oMyNewPlugin.before===&lt;br /&gt;
Allows you to interrupt a registered command on the bus with your own &amp;quot;before&amp;quot; function. You may modify the command options before they're passed to the command, you may trigger some action before the command is executed, or you can cancel the command before it executes.&lt;br /&gt;
&lt;br /&gt;
You may specify more than one &amp;quot;before&amp;quot; function for a command. If you do, they will be executed in a chain where the output of the previous function becomes the input for the next function. &lt;br /&gt;
You cannot remove &amp;quot;before&amp;quot; functions once they have been added.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.before(&amp;quot;WebChat.open&amp;quot;, function(oData){&lt;br /&gt;
&lt;br /&gt;
    // oData == the options passed into the command call&lt;br /&gt;
    // e.g. if this command is called:   oMyPlugin.command(&amp;quot;WebChat.open&amp;quot;, {form: {firstname: &amp;quot;Mike&amp;quot;&lt;br /&gt;
    // then oData will == {form: {firstname: &amp;quot;Mike&amp;quot;&lt;br /&gt;
    // You must return oData back, or an empty object {} for execution to continue.&lt;br /&gt;
    // If you return false|undefined|null or don't return anything, execution of the command will be stopped&lt;br /&gt;
    return oData;&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Arguments====&lt;br /&gt;
{{{!}} &lt;br /&gt;
{{!}}- &lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!Description&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}Command name&lt;br /&gt;
{{!}}string&lt;br /&gt;
{{!}}Name of the function you want to interrupt with your &amp;quot;before&amp;quot; function.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}&amp;quot;before&amp;quot; function&lt;br /&gt;
{{!}}function&lt;br /&gt;
{{!}}A function that accepts command options (oData in above example). If you want the command to continue executing, you must return the oData object. If you want to cancel the command, return '''false''' or '''undefined''' or don't return anything. You may modify the contents of oData before it is sent to the command. This allows you to override command options or add on dynamic options depending on external conditions.&lt;br /&gt;
{{!}}- &lt;br /&gt;
{{!}}} &lt;br /&gt;
====Returns====&lt;br /&gt;
Returns true when you pass a properly formatted command name (e.g. &amp;quot;PluginName.commandName&amp;quot;).&lt;br /&gt;
Returns false when you pass an improperly formatted command name.&lt;br /&gt;
===oMyNewPlugin.registry===&lt;br /&gt;
Returns the CXBus Registry lookup table.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.registry();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
No arguments.&lt;br /&gt;
====Returns====&lt;br /&gt;
Returns the internal CXBus registry that tracks all plugins, their commands, and their events. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Registry Structure Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;Plugin1&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
		commands: [&amp;quot;command1&amp;quot;, &amp;quot;command2&amp;quot;],&lt;br /&gt;
		events: [&amp;quot;event1&amp;quot;, &amp;quot;event2&amp;quot;]&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;Plugin2&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
		commands: [&amp;quot;command1&amp;quot;, &amp;quot;command2&amp;quot;],&lt;br /&gt;
		events: [&amp;quot;event1&amp;quot;, &amp;quot;event2&amp;quot;]&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===oMyNewPlugin.subscribers===&lt;br /&gt;
Returns a list of events and their subscribers.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.subscribers();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
No arguments.&lt;br /&gt;
====Returns====&lt;br /&gt;
Returns an object identifying a list of events being subscribed to, and a list of plugin names subscribed to each event.&lt;br /&gt;
&lt;br /&gt;
Example of WebChatService's subscribers:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Format  {&amp;quot;eventname&amp;quot;: [&amp;quot;subscriber1&amp;quot;, &amp;quot;subscriber2&amp;quot;]}&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;WebChatService.agentConnected&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.agentDisconnected&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.ready&amp;quot;:[],&lt;br /&gt;
	&amp;quot;WebChatService.started&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.restored&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.clientDisconnected&amp;quot;:[],&lt;br /&gt;
	&amp;quot;WebChatService.clientConnected&amp;quot;:[],&lt;br /&gt;
	&amp;quot;WebChatService.messageReceived&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.error&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.restoreTimeout&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.restoreFailed&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.ended&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.agentTypingStarted&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.agentTypingStopped&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.restoredOffline&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.chatServerWentOffline&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.chatServerBackOnline&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.disconnected&amp;quot;:[&amp;quot;WebChat&amp;quot;],&lt;br /&gt;
	&amp;quot;WebChatService.reconnected&amp;quot;:[&amp;quot;WebChat&amp;quot;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===oMyNewPlugin.namespace===&lt;br /&gt;
Returns your plugin's namespace.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.namespace();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
No arguments.&lt;br /&gt;
====Returns====&lt;br /&gt;
Returns your plugin's namespace. If your plugin's namespace is &amp;quot;MyNewPlugin&amp;quot;, it will return &amp;quot;MyNewPlugin&amp;quot;.&lt;br /&gt;
===oMyNewPlugin.ready===&lt;br /&gt;
Marks your plugin as ready to have its commands called. This method is required to be called for all plugins. You should call this method after all your commands are registered, initialization code is finished, and configuration has completed. Failure to call this method will result in your commands being unexecutable.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
oMyNewPlugin.ready();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Arguments====&lt;br /&gt;
No arguments.&lt;br /&gt;
====Returns====&lt;br /&gt;
Returns nothing.&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/GenesysWidgets/9.0.018.06&amp;diff=131138</id>
		<title>RN/GenesysWidgets/9.0.018.06</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/GenesysWidgets/9.0.018.06&amp;diff=131138"/>
		<updated>2023-02-06T12:08:40Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=7802d66f-e043-41e3-8ef9-fa8f01a5d482&lt;br /&gt;
|JQL=project = &amp;quot;CX Widget&amp;quot; AND labels = 9.0.018.06&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a&lt;br /&gt;
|ReleaseDate=2023-02-06&lt;br /&gt;
|Highlight=This release includes important improvements and fixes to the WebChat Widget.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=CXW-312&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|LocalContent=The placeholder text, for Norwegian language, displayed in the '''Chat Input''' field in Web Chat Widget is corrected.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/DigitalChannels/100.0.136.7409&amp;diff=131092</id>
		<title>RN/DigitalChannels/100.0.136.7409</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/DigitalChannels/100.0.136.7409&amp;diff=131092"/>
		<updated>2023-01-27T04:47:51Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=074d8cb2-e6a5-4df8-97d2-d1044727c558&lt;br /&gt;
|JQL=issue in (NEXUS-9614, NEXUS-10201, NEXUS-10504, NEXUS-10330, NEXUS-10338, NEXUS-10365)&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a, 5439f1be-1868-4091-b058-1667389b6ce1, 8b480b3c-2733-433a-9166-eab2c2d0663a&lt;br /&gt;
|ReleaseDate=2023-01-25&lt;br /&gt;
|ReleaseNumber=100.0.136.7409&lt;br /&gt;
|PrivateEditionReleaseDate=2023-01-25&lt;br /&gt;
|Highlight=Agents can now update contact information and immediately switch channels.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-10504&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=The maximum size allowed for chat attachments has been increased to 15MB.&lt;br /&gt;
|LocalContent=The maximum size allowed for chat attachments has been increased to 15 MB in Multicloud CX on Azure.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-10365&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|Content=When a chat session expires and Digital Channels cannot retrieve the message history, the agent desktop will now show a message that says: “Unable to get messaging history. Session might be expired. Consider using Interaction History search function to find previous interactions.”&lt;br /&gt;
|LocalContent=When a chat session expires and Digital Channels cannot retrieve the message history, the agent desktop will now show a message that says: “Unable to get messaging history. Session might be expired. Consider using Interaction History search function to find previous interactions.”&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-10338&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|Content=The Digital Resources section in Designer for Standard Responses, Field Codes, and PII Management now uses the privileges provided by the server to configure visibility.  Previously, the UI was not honoring the Designer.Business.General.canUpdate role.&lt;br /&gt;
|LocalContent=The Digital Resources section in Designer for Standard Responses, Field Codes, and PII Management now uses the privileges provided by the server to configure visibility.  Previously, the UI was not honoring the Designer.Business.General.canUpdate role.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-10330&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|Content=When inserting a standard response into a chat message, the standard response content will not erase any previously typed text.&lt;br /&gt;
|LocalContent=When inserting a standard response into a chat message, the standard response content will not erase any previously typed text.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-10201&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=Customers can now specify which rich media types are allowed as an option in the Digital Channels tenant settings.&lt;br /&gt;
|LocalContent=Customers can now specify which rich media types are allowed as an option in the Digital Channels tenant settings.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=NEXUS-9614&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=Agents can now update the contact information for a contact and use that updated information to switch channels and communicate with the contact over that channel.&lt;br /&gt;
|LocalContent=Agents can now update the contact information for a contact and use that updated information to switch channels and communicate with the contact over that channel.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=Draft:RN/DigitalChannels/100.0.136.0000&amp;diff=131090</id>
		<title>Draft:RN/DigitalChannels/100.0.136.0000</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=Draft:RN/DigitalChannels/100.0.136.0000&amp;diff=131090"/>
		<updated>2023-01-27T04:45:41Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Xavier moved page Draft:RN/DigitalChannels/100.0.136.0000 to Draft:RN/DigitalChannels/100.0.136.7409&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Draft:RN/DigitalChannels/100.0.136.7409]]&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/GenesysWidgets/9.0.018.05&amp;diff=131018</id>
		<title>RN/GenesysWidgets/9.0.018.05</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/GenesysWidgets/9.0.018.05&amp;diff=131018"/>
		<updated>2023-01-17T10:15:32Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=7802d66f-e043-41e3-8ef9-fa8f01a5d482&lt;br /&gt;
|JQL=issue in (CXW-311)&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a&lt;br /&gt;
|ReleaseDate=2023-01-17&lt;br /&gt;
|Highlight=This release includes important improvements and fixes to the WebChat Widget.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=CXW-311&lt;br /&gt;
|IssueCategoryId=5c483167-c133-4dc5-87c0-bd2719670bc1&lt;br /&gt;
|LocalContent=Users can now view images attached to a chat. Earlier, clicking on an attached image opened an empty browser tab and the image was not displayed.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=ReleaseNotes/Current/GenesysEngage-cloud/Hosted&amp;diff=130907</id>
		<title>ReleaseNotes/Current/GenesysEngage-cloud/Hosted</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=ReleaseNotes/Current/GenesysEngage-cloud/Hosted&amp;diff=130907"/>
		<updated>2022-12-22T05:43:08Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ArticleUnstructured&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Genesys Multicloud CX Release Notes&lt;br /&gt;
|TocName=Cloud Release Notes&lt;br /&gt;
|Context=These Release Notes provide information about recent releases of Genesys Multicloud CX services, starting with March 31, 2021. Click the Release Date next to a particular service name to see detailed information for that release. The release date indicates the earliest date when a service release might be available in your environments. Some updates might not apply to all environments.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tabber&amp;gt;&lt;br /&gt;
Released in last 7 days=&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=ComponentRN,&lt;br /&gt;
ComponentRN__DeploymentTypeId=DepId,&lt;br /&gt;
DeploymentType,&lt;br /&gt;
Component&lt;br /&gt;
|join on=ComponentRN._ID=DepId._rowID,&lt;br /&gt;
DepId._value=DeploymentType.Id,&lt;br /&gt;
ComponentRN.ComponentId=Component.Id&lt;br /&gt;
|fields=ComponentRN.ComponentId=ComponentId&lt;br /&gt;
|group by=ComponentRN.ComponentId&lt;br /&gt;
|format=template&lt;br /&gt;
|template=GetMaxReleaseDate&lt;br /&gt;
|named args=yes&lt;br /&gt;
|order by=Component.Name&lt;br /&gt;
|intro=&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable sortable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=2&amp;gt;Service&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;2&amp;quot;&amp;gt;Release&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=2&amp;quot;&amp;gt;Available&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center&amp;gt;Genesys CX on&amp;lt;/th&amp;gt;	&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;2&amp;quot;&amp;gt;Highlights&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;AWS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Azure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;th&amp;gt;GCP&amp;lt;/th&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
|outro=&amp;lt;/table&amp;gt;&lt;br /&gt;
|where=ComponentRN._pageNamespace=&amp;quot;0&amp;quot; AND DeploymentType.Hosted IS TRUE AND DATEDIFF(ReleaseDate,NOW()) &amp;gt;= -7&lt;br /&gt;
|default=No releases in last 7 days&lt;br /&gt;
}}&lt;br /&gt;
|-|&lt;br /&gt;
Released in last 30 days=&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=&lt;br /&gt;
Component,&lt;br /&gt;
ComponentRN,&lt;br /&gt;
ComponentRN__DeploymentTypeId=DepId,&lt;br /&gt;
DeploymentType,&lt;br /&gt;
|join on=Component.Id=ComponentRN.ComponentId,&lt;br /&gt;
ComponentRN._ID=DepId._rowID,&lt;br /&gt;
DepId._value=DeploymentType.Id&lt;br /&gt;
|fields=ComponentRN.ComponentId=ComponentId&lt;br /&gt;
|group by=ComponentRN.ComponentId&lt;br /&gt;
|format=template&lt;br /&gt;
|template=GetMaxReleaseDate&lt;br /&gt;
|named args=yes&lt;br /&gt;
|order by=Component.Name&lt;br /&gt;
|intro=&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable sortable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=2&amp;gt;Service&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;2&amp;quot;&amp;gt;Release&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=2&amp;quot;&amp;gt;Available&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center&amp;gt;Genesys CX on&amp;lt;/th&amp;gt;	&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;2&amp;quot;&amp;gt;Highlights&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;AWS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Azure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;th&amp;gt;GCP&amp;lt;/th&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
|outro=&amp;lt;/table&amp;gt;&lt;br /&gt;
|where=ComponentRN._pageNamespace=&amp;quot;0&amp;quot; &lt;br /&gt;
AND DeploymentType.Hosted IS TRUE &lt;br /&gt;
AND DATEDIFF(ReleaseDate,NOW()) &amp;gt;= -30&lt;br /&gt;
}}&lt;br /&gt;
|-|&lt;br /&gt;
Latest releases per service=&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=ComponentRN,&lt;br /&gt;
ComponentRN__DeploymentTypeId=DepId,&lt;br /&gt;
DeploymentType,&lt;br /&gt;
Component&lt;br /&gt;
|join on=ComponentRN._ID=DepId._rowID,&lt;br /&gt;
DepId._value=DeploymentType.Id,&lt;br /&gt;
ComponentRN.ComponentId=Component.Id&lt;br /&gt;
|fields=ComponentRN.ComponentId=ComponentId&lt;br /&gt;
|group by=ComponentRN.ComponentId&lt;br /&gt;
|format=template&lt;br /&gt;
|template=GetMaxReleaseDate&lt;br /&gt;
|named args=yes&lt;br /&gt;
|order by=Component.Name&lt;br /&gt;
|intro=&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable sortable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=2&amp;gt;Service&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;2&amp;quot;&amp;gt;Release&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th rowspan=2&amp;quot;&amp;gt;Available&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: center&amp;gt;Genesys CX on&amp;lt;/th&amp;gt;	&lt;br /&gt;
&amp;lt;th rowspan=&amp;quot;2&amp;quot;&amp;gt;Highlights&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;AWS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Azure&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;th&amp;gt;GCP&amp;lt;/th&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
|outro=&amp;lt;/table&amp;gt;&lt;br /&gt;
|where=ComponentRN._pageNamespace=&amp;quot;0&amp;quot; &lt;br /&gt;
AND DeploymentType.Hosted IS TRUE&lt;br /&gt;
|default=1st query no results&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/tabber&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:ComponentRN.ComponentId cleanup]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=Template:GetReleaseDetails&amp;diff=130902</id>
		<title>Template:GetReleaseDetails</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=Template:GetReleaseDetails&amp;diff=130902"/>
		<updated>2022-12-21T05:51:37Z</updated>

		<summary type="html">&lt;p&gt;Xavier: PUBSWIKI-2672 - removed GCP icon td&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;!-- get component name --&amp;gt;&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
	tables=ComponentRN,Component&lt;br /&gt;
	|join on=ComponentRN.ComponentId=Component.Id&lt;br /&gt;
	|fields=Component.Name&lt;br /&gt;
	|group by=Name&lt;br /&gt;
	|where=&lt;br /&gt;
		ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot;&lt;br /&gt;
		AND ReleaseDate=&amp;quot;{{{ReleaseDate|}}}&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;!-- get release number --&amp;gt;&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
	tables=ComponentRN&lt;br /&gt;
	|fields=MAX(ReleaseNumber)&lt;br /&gt;
	|where=&lt;br /&gt;
		ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot;&lt;br /&gt;
		AND ReleaseDate=&amp;quot;{{{ReleaseDate|}}}&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;!-- get release date and format as link to ArticleCloudRN page &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: this query uses hard-coded uuids--&amp;gt;&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
	tables=&lt;br /&gt;
		ArticleCloudRN__ComponentId,&lt;br /&gt;
		ArticleCloudRN,&lt;br /&gt;
		ComponentRN,&lt;br /&gt;
		Component&lt;br /&gt;
	|join on=&lt;br /&gt;
		ArticleCloudRN__ComponentId._value=Component.Id,&lt;br /&gt;
		ArticleCloudRN__ComponentId._rowID=ArticleCloudRN._ID,&lt;br /&gt;
		ArticleCloudRN__ComponentId._value = ComponentRN.ComponentId,&lt;br /&gt;
		ComponentRN.ComponentId=Component.Id&lt;br /&gt;
	|fields=&lt;br /&gt;
	CONCAT&lt;br /&gt;
		(&lt;br /&gt;
		'[[',ArticleCloudRN._pageName,'#',Component.Name,'-',ReleaseNumber,'|',DATE_FORMAT(MAX(ReleaseDate),'%M %d, %Y'),']]'&lt;br /&gt;
		)&lt;br /&gt;
	|where=&lt;br /&gt;
		ArticleCloudRN._pageName NOT LIKE &amp;quot;%/Internal%&amp;quot;&lt;br /&gt;
                AND ComponentRN.ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot; &lt;br /&gt;
		AND ArticleCloudRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot; &lt;br /&gt;
		AND ReleaseDate=&amp;quot;{{{ReleaseDate|}}}&amp;quot; &lt;br /&gt;
		AND (&lt;br /&gt;
		DeploymentTypeId HOLDS NOT '8b480b3c-2733-433a-9166-eab2c2d0663a' &lt;br /&gt;
		OR DeploymentTypeId HOLDS NOT '577e188b-36c5-4733-86a7-e1d0d6564aff'&lt;br /&gt;
		)&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
	get AWS icons for relevant release  &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
	table=ComponentRN,DeploymentType&lt;br /&gt;
	|join on=ComponentRN.DeploymentTypeId HOLDS DeploymentType.Id&lt;br /&gt;
	|intro=&amp;lt;div style=&amp;quot;margin: -10px 0 -10px 0&amp;quot;&amp;gt;&lt;br /&gt;
	|outro=&amp;lt;/div&amp;gt;&lt;br /&gt;
	|fields=CONCAT('[[File:',Image,'|',Size,'px|link=]]')&lt;br /&gt;
	|delimiter=&lt;br /&gt;
	|where=&lt;br /&gt;
		ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot; &lt;br /&gt;
		AND ReleaseDate=&amp;quot;{{{ReleaseDate|}}}&amp;quot; &lt;br /&gt;
		AND ComponentRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot; &lt;br /&gt;
		AND DeploymentType.Id=&amp;quot;ec194bf2-b79a-436d-8ff6-eaff94d9f43a&amp;quot;&lt;br /&gt;
	|default=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
	get Azure icons for relevant release  &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
	table=&lt;br /&gt;
	ComponentRN,&lt;br /&gt;
	DeploymentType&lt;br /&gt;
	|join on=ComponentRN.DeploymentTypeId HOLDS DeploymentType.Id&lt;br /&gt;
	|intro=&amp;lt;div style=&amp;quot;margin: -10px 0 -10px 0&amp;quot;&amp;gt;&lt;br /&gt;
	|outro=&amp;lt;/div&amp;gt;&lt;br /&gt;
	|fields=CONCAT('[[File:',Image,'|',Size,'px|link=]]')&lt;br /&gt;
	|delimiter=&lt;br /&gt;
	|where=&lt;br /&gt;
		ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot; &lt;br /&gt;
		AND ReleaseDate=&amp;quot;{{{ReleaseDate|}}}&amp;quot; &lt;br /&gt;
		AND ComponentRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot; &lt;br /&gt;
		AND DeploymentType.Id=&amp;quot;5439f1be-1868-4091-b058-1667389b6ce1&amp;quot;&lt;br /&gt;
	|default=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!-- get HighlightBoilerplateId and send to formatting template --&amp;gt;{{#cargo_query:&lt;br /&gt;
	tables=ComponentRN&lt;br /&gt;
	|fields=HighlightBoilerplateId,ReleaseNumber,ComponentId&lt;br /&gt;
	|format=template&lt;br /&gt;
	|template=PrintHighlightBoilerplate&lt;br /&gt;
	|named args=yes&lt;br /&gt;
	|where=&lt;br /&gt;
		ComponentRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot; &lt;br /&gt;
		AND ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot;&lt;br /&gt;
		AND ReleaseDate=&amp;quot;{{{ReleaseDate|}}}&amp;quot; &lt;br /&gt;
	|default=&lt;br /&gt;
}}&amp;lt;!-- get Highlight from each release --&amp;gt;{{#cargo_query:&lt;br /&gt;
	tables=ComponentRN&lt;br /&gt;
	|fields=Highlight&lt;br /&gt;
	|where=&lt;br /&gt;
		ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot;&lt;br /&gt;
		AND ReleaseDate=&amp;quot;{{{ReleaseDate|}}}&amp;quot; &lt;br /&gt;
		AND ComponentRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot;&lt;br /&gt;
	|default=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/tr&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:PrivateEdition]][[Category:ComponentRN.ComponentId cleanup]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=Template:PrintTopRN&amp;diff=130901</id>
		<title>Template:PrintTopRN</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=Template:PrintTopRN&amp;diff=130901"/>
		<updated>2022-12-21T05:48:40Z</updated>

		<summary type="html">&lt;p&gt;Xavier: PUBSWIKI-2672 - removed td for GCP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;tr&amp;gt;&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
	print Service column if there is more than 1 service &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#ifeq:&lt;br /&gt;
		{{#cargo_query:tables=ArticleCloudRN,ArticleCloudRN__ComponentId&lt;br /&gt;
			|join on=ArticleCloudRN._ID=ArticleCloudRN__ComponentId._rowID&lt;br /&gt;
			|fields=COUNT(*)&lt;br /&gt;
			|where=&lt;br /&gt;
				ArticleCloudRN._pageName=&amp;quot;{{FULLPAGENAME}}&amp;quot; &lt;br /&gt;
				AND ArticleCloudRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot;&lt;br /&gt;
			|no html&lt;br /&gt;
		}}&lt;br /&gt;
|1||&amp;lt;td&amp;gt;{{#cargo_query:tables=Component|fields=Name|where=Id=&amp;quot;{{{ComponentId|}}}&amp;quot;}}&amp;lt;/td&amp;gt;&lt;br /&gt;
}}&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
	Print ReleaseDate &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;td&amp;gt;{{#cargo_query:&lt;br /&gt;
		tables=Component&lt;br /&gt;
		|fields=CONCAT('[[#',Name,'-{{{ReleaseNumber|}}}|{{#time:F j, Y|{{{ReleaseDate|}}}}}]]')&lt;br /&gt;
		|where=Id=&amp;quot;{{{ComponentId|}}}&amp;quot;&lt;br /&gt;
}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
	Find and print Genesys CX on AWS per ComponentRN &lt;br /&gt;
--&amp;gt;{{#cargo_query:&lt;br /&gt;
		tables=ComponentRN,DeploymentType&lt;br /&gt;
		|join on=ComponentRN.DeploymentTypeId HOLDS DeploymentType.Id&lt;br /&gt;
		|fields=CONCAT('[[File:',Image,'|',Size,'px|link=]]')&lt;br /&gt;
		|where=&lt;br /&gt;
			ComponentRN.ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot; &lt;br /&gt;
			AND ComponentRN.ReleaseNumber=&amp;quot;{{{ReleaseNumber|}}}&amp;quot; &lt;br /&gt;
			AND ComponentRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot; &lt;br /&gt;
			AND DeploymentType.Id=&amp;quot;ec194bf2-b79a-436d-8ff6-eaff94d9f43a&amp;quot;&lt;br /&gt;
		|delimiter=&lt;br /&gt;
		|order by=DeploymentType.Name&lt;br /&gt;
		|default=&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
	&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
		Find and print Genesys CX on Azure per ComponentRN&lt;br /&gt;
&lt;br /&gt;
	--&amp;gt;{{#cargo_query:&lt;br /&gt;
		tables=ComponentRN,DeploymentType&lt;br /&gt;
		|join on=ComponentRN.DeploymentTypeId HOLDS DeploymentType.Id&lt;br /&gt;
		|fields=CONCAT('[[File:',Image,'|',Size,'px|link=]]')&lt;br /&gt;
		|where=&lt;br /&gt;
			ComponentRN.ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot; &lt;br /&gt;
			AND ComponentRN.ReleaseNumber=&amp;quot;{{{ReleaseNumber|}}}&amp;quot; &lt;br /&gt;
			AND ComponentRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot; &lt;br /&gt;
			AND DeploymentType.Id=&amp;quot;5439f1be-1868-4091-b058-1667389b6ce1&amp;quot;&lt;br /&gt;
		|delimiter=&lt;br /&gt;
		|order by=DeploymentType.Name&lt;br /&gt;
	|default=&lt;br /&gt;
	}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;!--Find Private Edition--&amp;gt;&lt;br /&gt;
	 {{#cargo_query:tables=ComponentRN,DeploymentType&lt;br /&gt;
		|join on=ComponentRN.DeploymentTypeId HOLDS DeploymentType.Id&lt;br /&gt;
		|fields=CONCAT('[[File:',Image,'|',Size,'px|link=]]')&lt;br /&gt;
		|where=&lt;br /&gt;
			ComponentRN.ComponentId=&amp;quot;{{{ComponentId|}}}&amp;quot; &lt;br /&gt;
			AND ComponentRN.ReleaseNumber=&amp;quot;{{{ReleaseNumber|}}}&amp;quot; &lt;br /&gt;
			AND ComponentRN._pageNamespace=&amp;quot;{{NAMESPACENUMBER}}&amp;quot; &lt;br /&gt;
			AND DeploymentType.Id=&amp;quot;8b480b3c-2733-433a-9166-eab2c2d0663a&amp;quot;&lt;br /&gt;
		|delimiter=&lt;br /&gt;
		|order by=DeploymentType.Name&lt;br /&gt;
		|default=&lt;br /&gt;
}}&amp;lt;/td&amp;gt;&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
	print Highlights&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
	printing boilerplate and content for highlight content&lt;br /&gt;
&lt;br /&gt;
|{{&lt;br /&gt;
		{{{HighlightBoilerplateId|}}}&lt;br /&gt;
			|{{{ReleaseNumber|}}}&lt;br /&gt;
			|{{{ComponentId}}}&lt;br /&gt;
		}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{HighlightBoilerplateId|}}}&lt;br /&gt;
	|&lt;br /&gt;
		{{#arraymap:&lt;br /&gt;
			{{{HighlightBoilerplateId|}}}&lt;br /&gt;
			|,&lt;br /&gt;
			|x&lt;br /&gt;
			|{{Template:x|{{{ReleaseNumber|}}}|{{{ComponentId}}}}}&lt;br /&gt;
			|&amp;lt;br/&amp;gt;&lt;br /&gt;
		}}&lt;br /&gt;
	&amp;lt;br/&amp;gt;{{{Highlight|}}}&lt;br /&gt;
	|{{{Highlight|}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
	include relase number if exists &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{ReleaseNumber|}}}&lt;br /&gt;
	|&amp;lt;td&amp;gt;{{{ReleaseNumber|}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
	|&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:RNAutomation]][[Category:TrackConstants]][[Category:ComponentRN.ComponentId cleanup]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=STRMS&amp;diff=128406</id>
		<title>STRMS</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=STRMS&amp;diff=128406"/>
		<updated>2022-09-15T17:04:43Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MintyDocsProduct&lt;br /&gt;
|displayname=Event Stream&lt;br /&gt;
|contentarea=Genesys Multicloud CX&lt;br /&gt;
|landingpage=No&lt;br /&gt;
|definition=Event Stream is a microservice that runs on the Genesys Multicloud CX platform.&lt;br /&gt;
|ComingSoon=Yes&lt;br /&gt;
|MintyDocsProductLandingSections={{MintyDocsProductLandingSections&lt;br /&gt;
|Type=Release Notes&lt;br /&gt;
|Links=*{{Link-AnywhereElse|product=ReleaseNotes|version=Current|manual=GenesysEngage-cloud|topic=EventStream}}&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Type=Developer Resources&lt;br /&gt;
|Links=*{{Link-AnywhereElse|product=STRMS|version=Current|manual=Admin}} (coming soon)&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}{{MintyDocsProductLandingSections&lt;br /&gt;
|Type=Private Edition&lt;br /&gt;
|Links=* {{Link-AnywhereElse|product=STRMS|version=Current|manual=STRMSPEGuide}} (coming soon)&lt;br /&gt;
|Columns=No&lt;br /&gt;
}}&lt;br /&gt;
|workspace_id=STRMS&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=RN/Email/100.0.090.0000&amp;diff=127043</id>
		<title>RN/Email/100.0.090.0000</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=RN/Email/100.0.090.0000&amp;diff=127043"/>
		<updated>2022-08-24T04:17:13Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ComponentRN&lt;br /&gt;
|ComponentId=3422613a-aedc-4c60-8382-2568e9d0c983&lt;br /&gt;
|JQL=issuekey in (CIWD-4228, CIWD-4232, CIWD-4040)&lt;br /&gt;
|DeploymentTypeId=ec194bf2-b79a-436d-8ff6-eaff94d9f43a&lt;br /&gt;
|ReleaseDate=2022-08-23&lt;br /&gt;
|Highlight=Displays connection status for Office 365 and Gmail.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=CIWD-4232&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=Now it is possible to upload key certificate for Gmail mailbox in Workload Manager&lt;br /&gt;
|LocalContent=Users can now upload a key certificate when creating a mailbox for Gmail with access type ''Without a user''.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=CIWD-4228&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=Now App Secret field label of Office365 configuration is renamed to &amp;quot;App Secret Value&amp;quot;, and an info (i) icon with popup text explaining that this field is for secret value, NOT secret id is added.&lt;br /&gt;
|LocalContent=The '''App Secret''' field on the '''Mailboxes''' screen for Office 365 is now renamed as '''App Secret Value'''. Additionally, the field displays a tooltip suggesting that the field accepts a secret value, not a secret ID.&lt;br /&gt;
}}&lt;br /&gt;
{{Issue&lt;br /&gt;
|TicketNumber=CIWD-4040&lt;br /&gt;
|IssueCategoryId=720446c8-10b6-42b8-af36-34a298aa1c72&lt;br /&gt;
|Content=Mow in Workload Manager extended status is displayed for GRAPH and GMAIL type of mailboxes.&lt;br /&gt;
|LocalContent=Workload Manager now shows the incoming and outgoing connection statuses for Office 365 and Gmail mailboxes.&lt;br /&gt;
|SupportingDocumentation={{Link-AnywhereElse|product=PEC-IWD|version=Current|manual=Administrator|topic=IWDMailboxes|anchor=ViewAllMailbox}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=User:Xavier/Experiments/mermaid&amp;diff=122368</id>
		<title>User:Xavier/Experiments/mermaid</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=User:Xavier/Experiments/mermaid&amp;diff=122368"/>
		<updated>2022-06-22T15:27:12Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Created page with &amp;quot;=🧜‍♀️⚗️=   Docs: Sequence Diagrams   ==Code to create diagram== &amp;lt;source&amp;gt; {{#mermaid:sequenceDiagram  pa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=🧜‍♀️⚗️= &lt;br /&gt;
&lt;br /&gt;
Docs: [[https://mermaid-js.github.io/mermaid/#/sequenceDiagram|Sequence Diagrams]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code to create diagram==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
{{#mermaid:sequenceDiagram &lt;br /&gt;
participant Switch&lt;br /&gt;
participant Kafka&lt;br /&gt;
participant Client&lt;br /&gt;
  Switch-&amp;gt;&amp;gt;Kafka: CallAppearedOnRoutingPoint&lt;br /&gt;
  Kafka-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
  Switch-&amp;gt;&amp;gt;Kafka: CallLeftRoutingPoint&lt;br /&gt;
  Kafka-&amp;gt;&amp;gt;Client: EventRouteUsed&lt;br /&gt;
|config.theme=default&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Resulting Diagram===&lt;br /&gt;
{{#mermaid:sequenceDiagram &lt;br /&gt;
  Switch-&amp;gt;&amp;gt;Kafka: CallAppearedOnRoutingPoint&lt;br /&gt;
  Kafka-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
  Switch-&amp;gt;&amp;gt;Kafka: CallLeftRoutingPoint&lt;br /&gt;
  Kafka-&amp;gt;&amp;gt;Client: EventRouteUsed&lt;br /&gt;
|config.theme=default&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Some more diagrams from Corrine ===&lt;br /&gt;
==== sample 1====&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
participant Client&lt;br /&gt;
participant Voice Microservices&lt;br /&gt;
participant Kafka&lt;br /&gt;
Client-&amp;gt;&amp;gt;Voice Microservices: TAgentLogin&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventAgentLogin&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventAgentReady or EventAgentNotReady&lt;br /&gt;
|config.theme=neutral&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
participant Client&lt;br /&gt;
participant Voice Microservices&lt;br /&gt;
participant Kafka&lt;br /&gt;
Client-&amp;gt;&amp;gt;Voice Microservices: TAgentLogin&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventAgentLogin&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventAgentReady or EventAgentNotReady&lt;br /&gt;
|config.theme=neutral&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== sample 2====&lt;br /&gt;
This uses a &amp;lt;tt&amp;gt;config.theme&amp;lt;/tt&amp;gt; parameter with a ''neutral'' (black &amp;amp; white) theme. &lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallAppearedOnRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallLeftRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventRouteUsed&lt;br /&gt;
|config.theme = base&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallAppearedOnRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallLeftRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventRouteUsed&lt;br /&gt;
|config.theme=base&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Template Calls ===&lt;br /&gt;
&lt;br /&gt;
{{Mermaid|&lt;br /&gt;
  Switch-&amp;gt;&amp;gt;Kafka: CallAppearedOnRoutingPoint&lt;br /&gt;
  Kafka-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
  Switch-&amp;gt;&amp;gt;Kafka: CallLeftRoutingPoint&lt;br /&gt;
  Kafka-&amp;gt;&amp;gt;Client: EventRouteUsed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Themes ==&lt;br /&gt;
===Base Theme===&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallAppearedOnRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallLeftRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventRouteUsed&lt;br /&gt;
|config.theme=base&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Forest Theme===&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallAppearedOnRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallLeftRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventRouteUsed&lt;br /&gt;
|config.theme=forest&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Dark Theme===&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallAppearedOnRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallLeftRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventRouteUsed&lt;br /&gt;
|config.theme=dark&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Default Theme (same as Forest)===&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallAppearedOnRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallLeftRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventRouteUsed&lt;br /&gt;
|config.theme=default&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Neutral Theme===&lt;br /&gt;
{{#mermaid:sequenceDiagram&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallAppearedOnRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Client: EventRouteRequest&lt;br /&gt;
Switch-&amp;gt;&amp;gt;Voice Microservices: CallLeftRoutingPoint&lt;br /&gt;
Voice Microservices-&amp;gt;&amp;gt;Kafka: EventRouteUsed&lt;br /&gt;
|config.theme=neutral&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=WID/Current/GCDeveloper/Branding&amp;diff=122087</id>
		<title>WID/Current/GCDeveloper/Branding</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=WID/Current/GCDeveloper/Branding&amp;diff=122087"/>
		<updated>2022-06-17T10:32:57Z</updated>

		<summary type="html">&lt;p&gt;Xavier: Published&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=Customize appearance&lt;br /&gt;
|TocName=Customize appearance&lt;br /&gt;
|Context=Use ''themes'' to change the appearance of Genesys Widgets. Themes allow you to apply colors and fonts to all of your widgets in a single operation.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Platform=GenesysEngage-cloud&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Genesys Widgets includes two built-in themes: '''dark''' and '''light'''. The dark theme is active by default.&lt;br /&gt;
&lt;br /&gt;
'''Dark theme'''&lt;br /&gt;
&lt;br /&gt;
[[File:Darktheme.png|500x500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Light theme'''&lt;br /&gt;
&lt;br /&gt;
[[File:Lighttheme.png|500x500px]]&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Set the active theme&lt;br /&gt;
|anchor=sat&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=There are two ways to set the active theme:&lt;br /&gt;
&lt;br /&gt;
'''Configuration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
window._genesys.widgets.main.theme = &amp;quot;light&amp;quot;; // or &amp;quot;dark&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Widget bus command'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
window._genesys.widgets.bus.command(&amp;quot;App.setTheme&amp;quot;, {theme: &amp;quot;light&amp;quot;}); // or &amp;quot;dark&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Create a custom theme&lt;br /&gt;
|anchor=cct&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext====Theme templates===&lt;br /&gt;
Genesys Widgets uses special LESS files called ''theme templates'' to define themes. Use a theme template to create a new color palette and add custom styles. Everything is laid out clearly in the template file.&lt;br /&gt;
&lt;br /&gt;
LESS syntax defines local variables that allow you to create a clear color palette consisting of no less than 28 separate color variables, which are grouped by their usage:&lt;br /&gt;
&lt;br /&gt;
*Background Colors&lt;br /&gt;
*Text Colors&lt;br /&gt;
*Icon Colors&lt;br /&gt;
*Border Colors&lt;br /&gt;
*Outline Colors&lt;br /&gt;
&lt;br /&gt;
At a bare minimum, you can create a new style by simply changing the color values in the color palette. You can also add or remove colors from this palette as you see fit.&lt;br /&gt;
&lt;br /&gt;
'''Color palette example'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/* Color Palette */&lt;br /&gt;
&lt;br /&gt;
@bg_color_1: 		#33383D; // Main Background Color&lt;br /&gt;
@bg_color_2: 		#444A52; // Form Inputs&lt;br /&gt;
@bg_color_3: 		#222529; // Button default&lt;br /&gt;
@bg_color_4:		#5081E1; // Button primary gradient 1&lt;br /&gt;
@bg_color_5:		#4375D6; // Button primary gradient 2&lt;br /&gt;
@bg_color_6:		#CCCCCC; // Button disabled / scrollbar color&lt;br /&gt;
@bg_color_7:		#212529; // Native scrollbar track color&lt;br /&gt;
@bg_color_8:		#A3A8AE; // Scrollbar color&lt;br /&gt;
&lt;br /&gt;
@txt_color_1: 		#FDFDFD; // Main text color&lt;br /&gt;
@txt_color_2: 		#98A7B8; // footer text&lt;br /&gt;
@txt_color_3: 		#FDFDFD; // Button default &amp;amp; primary / autocomplete text hover color&lt;br /&gt;
@txt_color_4: 		#FDFDFD; // Hyperlink color&lt;br /&gt;
@txt_color_5:		#C5CCD6; // Placeholder color&lt;br /&gt;
@txt_color_6:		#F53131; // Alert/error color&lt;br /&gt;
&lt;br /&gt;
@icon_color_1:		#FDFDFD; // Base icon color&lt;br /&gt;
@icon_color_2:		#8C8C8C; // Secondary icon color (multitone only)&lt;br /&gt;
@icon_color_3:		#000000; // Icon shadow color (multitone only)&lt;br /&gt;
@icon_color_4:		#000000; // Icon secondary shadow color (multitone only)&lt;br /&gt;
@icon_color_5:		#98A7B8; // Window control icon color&lt;br /&gt;
@icon_color_6:		#98A7B8; // Form input icon overlay color (e.g. &amp;quot;clear&amp;quot; icon)&lt;br /&gt;
@icon_color_7: 		#5081E1; // Interactive icon color 1 (attach files, delete file, etc)&lt;br /&gt;
@icon_color_8: 		#4AC764; // Positive Color (confirmation, availability, usually green)&lt;br /&gt;
@icon_color_9: 		#F53131; // Negative Color (error, exception, usually red)&lt;br /&gt;
@icon_color_10: 	#F8A740; // Warning Color (warning, pending, offline, usually yellow or orange)&lt;br /&gt;
@icon_color_11: 	#FDFDFD; // Icon color for primary buttons&lt;br /&gt;
&lt;br /&gt;
@border_color_1: 	#222529; // Main border color&lt;br /&gt;
@border_color_2:	#2E69DB; // Button primary&lt;br /&gt;
@border_color_3:	transparent; // Button default&lt;br /&gt;
@border_color_4:	transparent; // Button disabled&lt;br /&gt;
@border_color_5:	#F53131; // Alert/error color&lt;br /&gt;
@border_color_6: 	#758384; // Form controls default state&lt;br /&gt;
&lt;br /&gt;
@outline_color_1: 	#75A8FF; // Form input focus outline / autocomplete hover background color&lt;br /&gt;
@outline_color_2: 	#DAE6FC; // Outline color for primary buttons&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Sample theme template files====&lt;br /&gt;
'''Note''': Click the following links to automatically download the sample template files to your computer.&lt;br /&gt;
&lt;br /&gt;
{{Repository|theme-template-dark.less|bc0a2c34-c723-477e-9c48-f651490970d9|theme-template-dark.less}}&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Repository|theme-template-light.less|600aaa4a-386d-474b-be57-0692cc26a800|theme-template-light.less}}&lt;br /&gt;
&lt;br /&gt;
Theme templates are LESS files, which must be converted to CSS before being used on a website. Use a website or tool to convert them when you're ready to test and implement them on your site. &lt;br /&gt;
&lt;br /&gt;
By default, theme templates override the styles of all of your Genesys Widgets—but you can also make changes that only affect a specific widget, as described below.&lt;br /&gt;
&lt;br /&gt;
===Name a theme===&lt;br /&gt;
In the &amp;quot;dark&amp;quot; theme template file, the first class selector is defined as:&lt;br /&gt;
&lt;br /&gt;
'''.cx-widget.cx-theme-dark'''&lt;br /&gt;
&lt;br /&gt;
'''.cx-widget''' is the base class for the entire Genesys Widget UI. The outermost container of every widget or standalone UI element has this class and is used to identify UI elements that belong to Genesys Widgets.&lt;br /&gt;
&lt;br /&gt;
'''.cx-theme-dark''' is the class name created for the &amp;quot;dark&amp;quot; theme. Themes are applied by searching for all elements with the '''.cx-widget''' class and appending the theme's classname to it. Thus, the combined class selector indicates styles that will be applied only when your custom theme is active in the configuration object.&lt;br /&gt;
&lt;br /&gt;
You can name your theme classname anything you wish. There are no restrictions or limitations. &lt;br /&gt;
&lt;br /&gt;
In a later step, you will register this theme classname in your configuration.&lt;br /&gt;
&lt;br /&gt;
===Customization guidelines===&lt;br /&gt;
When you create your own themes, you can only use the following CSS properties:&lt;br /&gt;
&lt;br /&gt;
*color&lt;br /&gt;
*background&lt;br /&gt;
*font-family&lt;br /&gt;
*font-style&lt;br /&gt;
*border-color&lt;br /&gt;
*border-style&lt;br /&gt;
*and other non-structural properties&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Widgets primarily relies on class names for CSS selectors, rather than fixed node path selectors. Using class names allows for the HTML structure to be changed without breaking selectors. For example, the selector &amp;quot;.cx-webchat .cx-message&amp;quot; is all that's needed to target message bubbles inside WebChat. Using a fixed node path equivalent, like &amp;quot;div.cx-webchat &amp;gt; div.cx-body &amp;gt; div.cx-transcript &amp;gt; div.cx-message-group &amp;gt; div.cx-message&amp;quot; creates a dependency on the HTML node type and structure. If any changes are made to WebChat's HTML structure, this CSS selector will break. Use the smallest necessary specificity in your selectors and try to use class names only. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Be careful not to modify the structure and functionality of the CSS when you make your changes. Otherwise, it won't work right.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In particular, you must avoid setting the following CSS properties: height, width, thickness, size, and visibility; or any other properties that change the structure of widgets. These properties are not supported. Changing them can break widget stability and usability.|3}}{{NoteFormat|By default, the Widgets CSS uses the Roboto font, available at https://fonts.google.com/}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Register a theme with Genesys Widgets&lt;br /&gt;
|anchor=regtheme&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=The following example shows how to register themes in the Genesys Widgets configuration. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;window._genesys.widgets.main.themes = {&lt;br /&gt;
    &amp;quot;blue&amp;quot;: &amp;quot;cx-theme-blue&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The name:value pair used here consists of a key (&amp;quot;blue&amp;quot;) and the theme's CSS classname (&amp;quot;cx-theme-blue&amp;quot;). You can add as many themes to this list as you need.&lt;br /&gt;
&lt;br /&gt;
Use a theme's key to make it the active theme: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;window._genesys.widgets.main.theme = &amp;quot;blue&amp;quot;;&lt;br /&gt;
// OR&lt;br /&gt;
window._genesys.widgets.bus.command(&amp;quot;App.setTheme&amp;quot;, {theme: &amp;quot;blue&amp;quot;});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Change the appearance of a specific widget&lt;br /&gt;
|anchor=changeappear&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=You can specify specific widgets—and even specific elements within a widget—by appending the widget's CSS classname to the theme classname.&lt;br /&gt;
&lt;br /&gt;
The following example shows how to extend the '''cx-theme-blue''' class with a widget-specific entry that makes the WebChat widget's background color a darker shade.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.cx-widget.cx-theme-blue, .cx-widget .cx-container{&lt;br /&gt;
&lt;br /&gt;
    color: #FDFDFD;&lt;br /&gt;
    background: #1e5799;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.cx-widget.cx-theme-blue *{&lt;br /&gt;
&lt;br /&gt;
    border-color: #7DB9E8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.cx-widget.cx-theme-blue.cx-webchat, .cx-widget.cx-theme-blue .cx-webchat{&lt;br /&gt;
	&lt;br /&gt;
    background: #225897;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GWCCustomize SpecificTheme01.png|500x500px]]&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Notice the dual CSS selector used when specifying the widget. This is required to make sure your styles always apply properly.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Widget-Specific and Element-Specific'''&lt;br /&gt;
&lt;br /&gt;
The next example shows how to extend the &amp;quot;cx-theme-blue&amp;quot; class with a widget- and element-specific entry that changes the background color of the input fields within the WebChat widget to a light shade of blue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.cx-widget.cx-theme-blue, .cx-widget .cx-container{&lt;br /&gt;
&lt;br /&gt;
    color: #FDFDFD;&lt;br /&gt;
    background: #1e5799;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.cx-widget.cx-theme-blue *{&lt;br /&gt;
&lt;br /&gt;
    border-color: #7DB9E8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.cx-widget.cx-theme-blue.cx-webchat, .cx-widget.cx-theme-blue .cx-webchat{   &lt;br /&gt;
&lt;br /&gt;
    background: #225897; // Darker Shade&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.cx-widget.cx-theme-blue.cx-webchat .form input, .cx-widget.cx-theme-blue .cx-webchat .form input{&lt;br /&gt;
&lt;br /&gt;
    background: #DCF5FF; // Lighter Shade&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[File:GWCCustomize SpecificTheme02.png|500x500px]]&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Change the layout and structure of a widget&lt;br /&gt;
|anchor=changelayout&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=You can only use themes to customize a limited set of styles for your version of Genesys Widgets. To create an alternate layout of your own design, disable the widget you want to customize and use the provided service plugins to build your own replacement.&lt;br /&gt;
&lt;br /&gt;
'''Choosing Which Plugins to Load'''&lt;br /&gt;
&lt;br /&gt;
Refer to the '''plugins''' configuration option here: {{Link-SomewhereInThisVersion|manual=SDK|topic=App-combined|anchor=config|display text=app configuration}}&lt;br /&gt;
&lt;br /&gt;
'''Service Plugins'''&lt;br /&gt;
&lt;br /&gt;
Service plugins provide a high-level API for quickly integrating a UI with backend services. Each widget is matched with a corresponding service plugin. This separation allows for advanced integrations.&lt;br /&gt;
&lt;br /&gt;
*{{Link-SomewhereInThisVersion|manual=SDK|topic=WebChatService-combined|display text=WebChatService}}&lt;br /&gt;
*{{Link-SomewhereInThisVersion|manual=SDK|topic=CallbackService-combined|display text=CallbackService}}&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Genesys does not support changes to the layout of the official Genesys Widgets, as your changes can be overwritten when you upgrade to a newer version of Genesys Widgets.|3}}&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Change fonts&lt;br /&gt;
|anchor=changefont&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=By default, Genesys Widgets downloads and uses Google's Roboto font. Use the following CSS to specify a different font: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;.cx-widget{ font-family: name-of-font-here; }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The font you choose here will be applied to all of the Genesys Widgets.&lt;br /&gt;
===Disable Roboto font download===&lt;br /&gt;
To prevent Google's Roboto font file from being downloaded at startup, set the '''main.downloadGoogleFont''' configuration option to '''false''': &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;_genesys.widgets.main.downloadGoogleFont = false;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this option is set to '''true''', Google's Roboto font will be downloaded. The default value is ''true''.&lt;br /&gt;
&lt;br /&gt;
{{NoteFormat|Use this configuration option if you have security concerns about including fonts from third-party sources, to optimize your page load time, or if you already include Roboto on your website.}}&lt;br /&gt;
&lt;br /&gt;
===Change font size===&lt;br /&gt;
By default, the font size in Genesys Widgets content is in ''em'' units. This is to support accessibility guidelines allowing font size to scale as needed when zoomed in or out based on the screen size. For normal text, the font size value is '''0.75em''' and can vary for other text contents.{{NoteFormat|Since these are relative units, the actual value is derived from the font size of the parent page body. A base font size can be defined on the .cx-widget class in em units to change font size, which allows Widgets to calculate internal font size using this value.|}}&amp;lt;br /&amp;gt;&lt;br /&gt;
|Status=No&lt;br /&gt;
}}{{Section&lt;br /&gt;
|sectionHeading=Icons&lt;br /&gt;
|anchor=icons&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext=Genesys Widgets are provided in SVG format, which means you can apply color fills and other SVG CSS properties when you use them. SVG also supports the highest possible rendering quality on all devices, regardless of the zoom level or resolution. You can scale the icons to fit any container; use them either inline or as blocks; and animate their orientation, colors, and other styling.&lt;br /&gt;
&lt;br /&gt;
You can also use the Genesys icons in your own custom extensions, which allows them to match the look and feel of the default Genesys widgets. Here are some of the things you can do with them:&lt;br /&gt;
&lt;br /&gt;
*Create a custom launcher button for chat, using the chat icon&lt;br /&gt;
*Create a custom widget with your choice of icon in the title bar&lt;br /&gt;
*Mix icons right in with your text, so you can refer to your widgets graphically&lt;br /&gt;
&lt;br /&gt;
Genesys Widgets includes two sets of icons:&lt;br /&gt;
&lt;br /&gt;
*The Multi-tone icon set uses several layers and colors per icon&lt;br /&gt;
*The Outline icon set takes a minimalist approach to both design and color&lt;br /&gt;
&lt;br /&gt;
You can use these icons in any way that works for you, but please note that you can't customize or replace the icons.&lt;br /&gt;
&lt;br /&gt;
===How to use icons===&lt;br /&gt;
====Automatic HTML injection====&lt;br /&gt;
Specify which icons you want and where you want them by applying the CSS '''cx-icon''' class and '''data-icon''' attribute to the appropriate elements:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;div id=&amp;quot;your-element&amp;quot; data-origID=&amp;quot;your-element&amp;quot;  data-origid=&amp;quot;your-element&amp;quot; class=&amp;quot;cx-icon&amp;quot; data-icon=&amp;quot;chat&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  ...SVG icon will be inserted here&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
When you pass the element into the '''CXCommon.populateAllPlaceholders( $(&amp;quot;#your-element&amp;quot;) )''' function—as a jQuery-wrapped set or an HTML string—Genesys Widgets inserts the appropriate SVG icons and returns the HTML to you.&lt;br /&gt;
&lt;br /&gt;
====Fetching SVG icon markup====&lt;br /&gt;
You can also fetch the markup for each SVG icon manually:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
$(&amp;quot;#your-element&amp;quot;).append( CXCommon.Generate.Icon(&amp;quot;chat&amp;quot;) );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Multi-tone icon set===&lt;br /&gt;
[[File:Multi-icon-set1.png|600px]][[File:Multi-icon-set2.png|600px]][[File:Multi-icon-set3.png|600px]]&lt;br /&gt;
===Outline icon set===&lt;br /&gt;
[[File:Outline-icon-set1.png|600px]][[File:Outline-icon-set2.png|600px]][[File:Outline-icon-set3.png|600px]]&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Xavier</name></author>
		
	</entry>
</feed>