Dialogue Cloud

Dialogue Cloud Best Practice Deployment

Introduction

Anywhere365 in Dialogue Cloud is built up of multiple building blocks. These building blocks work together to provide a desired functionality. As Anywhere365's building blocks are released (and installed) as a bundle, the components in this bundle must match to provide a functional and supported environment. Keeping these components in their correct relationship and with the proper configuration is a necessity to ensure intended functionality. Incomplete, or improper configurations, or incorrect relationships (i.e. mismatching version numbers of dependent building blocks) will cause errors.

Furthermore, Dialogue Cloud global regions have limited update timeslots, so updating building blocks in one region while a UCC A Unified Contact Center, or UCC, is a queue of interactions (voice, email, IM, etc.) that are handled by Agents. Each UCC has its own settings, IVR menus and Agents. Agents can belong to one or several UCCs and can have multiple skills (competencies). A UCC can be visualized as a contact center “micro service”. Customers can utilize one UCC (e.g. a global helpdesk), a few UCC’s (e.g. for each department or regional office) or hundreds of UCC’s (e.g. for each bed at a hospital). They are interconnected and can all be managed from one central location. from another region uses that building block is a guarantee for partial or complete loss of functionality because updates can never be processed simultaneously across global regions. Please see and follow the recommendations below to ensure a proper functional UCC service per region.

Environment recommendations

General rules

  1. A UCC should only connect to a single (regional) WebAgent Service. (Check PluginSettings list Learn More)

    • Why: A running WebAgent Service keeps these sessions in memory, so they can be shown to the Agent as soon as they (re)open the WebAgent in their browser. With the Agent only looking at one of multiple WebAgent Services, any other WebAgent Service(s) set up in that same UCC will keep dialogues open indefinitely (or until a service restart) and flood the service hosting that unused WebAgent Service.

  2. A WebAgent Service can only connect to a single (regional) Dialogue Manager. (Check PluginSettings list Learn More)

    • Why: In WebAgent Service can only connect to a single Dialogue Manager, this is done via it's primary settings. If you are have 2 UCCs configured for the same WebAgent Service but a different Dialogue Manager URL then the first UCC to push it's settings will become the primary. The other Dialogue Manager will not be used, this is hard to troubleshoot because the behavior changes after each restart.

  3. Don't have multiple Dialogue Managers connected to the same database. Design and use a regional component setup. Learn More

    • Why: They will end up in a race condition of which Dialogue Manager can process the record first.

  4. Don't query the Dialogue Manager database (for example via PowerBI) directly, use a copy of the database

    • Why: When performing a query records in a table can be locked. If a Dialogue Manager or Dialogue Provider tries to access those records it will get an error and it cannot retrieve or send the message, resulting in missing messages or even conversations not being created. Additionally, incorrect usage could decrease the performance of the SQL environment, which could result in latency.

  5. Don't have partly configured UCC's. For example Dialogue Manager URL still has the value "Enter connection string here". Learn More

    • Why: Components like Dialogue Manager, Dialogue Provider, and WebAgent Service use Primary Settings. This means the first UCC's to push its config after a restart becomes the settings it will use. Because it is unpredictable to determine which UCC or UCC Service will be started first, it could happen that this partly configured UCC becomes the primary and therefore causes outages. This is hard to troubleshoot because the behavior changes after each restart.

  6. Never put the plugin setting "Enabled" on false for the Dialogue Manager or Dialogue Providers. If you don't want to use the Dialogue Manager or Dialogue Provider for that UCC, just delete the settings (Learn More) and the record in the ListPlugin (Learn More)

    • Why: "Enabled" is a primary setting, this means that if this UCC is the first to push the settings, then it will turn off the whole Dialogue Manager or Dialogue Provider for all UCC's using that same Dialogue Manager.

If UCC's are in Multiple Regions But Only One Region is Running the WebAgent Service

  1. Switch over to regional WebAgent services and have users use the regional WebAgent URL Learn More

    • Why: It is not possible to schedule an update where both regions are updated simultaneously.

      • If the region running the WebAgent is updated, but the other one is not, then the WebAgent Service could receive data in an older format that it cannot handle, resulting in possible outages. *Note that this could also result in un-tested scenarios in the WebAgent.*

      • If the region running the WebAgent is not updated, but the other one is, then the WebAgent Service could receive data in a newer format that it cannot handle, resulting is possible outages. *Note that this could also result in un-tested scenarios in the WebAgent.*

Tip

If an Agent needs to be an agent in UCC's in two regions, for example, they can and need to use the URL of both regional WebAgent Front Ends in separate browser tabs or windows. Learn More

If UCC's in multiple regions are running Dialogue Providers but only one region is running the Dialogue Manager (and hence one DM Database)

  1. Switch over to regional Dialogue Managers, each with their own database. (See Install instructions - Learn More)

    • Why: When updating a Dialogue Manager, the Dialogue Manager will execute SQL commands to update the database schema's. The Dialogue Provider (the one on a different version) now has the risk of either writing the wrong data in the database, which could lead to outages of the whole Dialogue Manager, or no longer processing data to or from the Database, which could lead to outages on that Dialogue Provider