Jump to: navigation, search

Chat API Deployment Notes

GMS Chat API Version 2 (both pure REST and CometD based) is used by chat web applications (usually called Widgets) which are often embedded into web pages of a company website. For example, Genesys Chat Widget is widely used for web chat. The company website page and GMS API may be hosted on different domains. If this is the case, the solution must be properly deployed to handle it because browser considers cookies received from GMS as third party cookies.

Phasing out third-party cookies suggests web applications to use CHIPS (also known as Partitioned cookie attribute). Third-party cookies will be blocked by Chromium (Edge and Chrome browsers) in the second half of 2024 if the cookies do not have the Partitioned cookie attribute.

In GMS chat data flow, cookies may be added by:

  • GMS nodes - for example, to handle CometD communication, BAYEUX_BROWSER cookie is used.
  • Load Balancer - for example, to support session affinity.

For both types of cookies, configure your Load Balancer to append Partitioned attribute to the cookies.

Deployment recommendations for CometD Chat API

When using Chat API Version 2 via CometD, CometD connection (both for long-poll mode or via WebSocket) is implemented via setting BAYEUX_BROWSER Cookie. If company web pages and GMS API are deployed on different domains, Partitioned cookie attribute must be used. For example, GMS might be deployed in the following way:
Chat GMS LBforAPI.png

Configure GMS Load Balancer to append the Partitioned cookie attribute to the BAYEUX_BROWSER cookie in each response from GMS nodes. The cookie (in response from GMS Load Balancer to a web browser) will look like this:

Set-Cookie: BAYEUX_BROWSER=533bkb4ydvsdrti9gz9zxs3fgfv; SameSite=None; HttpOnly; Secure; Path=/; Partitioned;

where SameSite, HttpOnly, Secure, Path, and Partitioned attributes are added by GMS Load Balancer.

Important
  • For Chat API Version 2 via CometD Genesys requires to enable session affinity (sticky sessions) on GMS Load Balancer. Please refer to your Load Balancer documentation for instructions on how to configure the Partitioned cookie attribute for any Set-Cookie header added by your Load Balancer.
  • It is recommended to terminate SSL traffic on the Load Balancer and to use HTTP for internal communication with GMS nodes (it significantly simplifies GMS node deployment).

Deployment recommendations for REST Chat API with load balancing

The architecture of (so-called pure REST) Chat API Version 2 allows the GMS Load Balancer to send any request to any GMS node. However, for troubleshooting reasons, it is preferable that all requests related to a certain chat session, are to be processed by the same GMS node. For that, enable session affinity (sticky sessions) on the GMS Load Balancer; append the Partitioned cookie attribute for any Set-Cookie header added by your Load Balancer.

This page was last edited on March 27, 2024, at 06:10.
Comments or questions about this documentation? Contact us for support!