Documentation on handling escalation failure - WideChat/Rocket.Chat GitHub Wiki

Documentation on handling escalation failures (Failed To Handover).

Whenever Dialog flow Application in unable to handle a case it escalates the case and transfer's it to a Salesforce LiveAgent. This escalation process involves communication between multiple apps/modules and hence it is prone to failures. We have added some log point in our RocketChat application to catch and log those failures under a common log message Failed To Handover.

Cases when escalation may fail.

Since escalation involves a lot of steps and communication between multiple apps/modules, there can be number of failures that may happen, Some of them are being tracked under log points and are documented below.

When no live agents are available (Link to PR).

This log point will trigger when no Live Agents are currently online on Salesforce organization. it won't track any failure in Rocket.Chat application.

Steps to reproduce:

  1. Make sure LiveChat widget currently works without any issues and is able to escalate cases.
  2. Make all live agents offline in Salesforce Organization (Service Console).
  3. That's all, You're all set.
  4. Go to Rocket.Chat LiveChat widget and try to escalate a case.
  5. It will fail to escalate with a message Failed To Handover.

Screenshot of log point:

No LiveAgents Available

When app is not configured properly with Salesforce (Link to PR).

Salesforce configuration are the unique URLs/Tokens which is required to connect with Salesforce organization

This log point will trigger when Salesforce configuration are not entered correctly in:

Steps to reproduce:

  1. Make sure LiveChat widget currently works without any issues and is able to escalate cases.
  2. Misconfigure your Salesforce configuration in either DialogFlow console or Rocket.Chat admin settings or Both.
  3. Steps to misconfigure Salesforce configuration for Rocket.Chat admin settings.
  4. Steps to misconfigure Salesforce configuration for DialogFlow Console.
    • Go to DialogFlow Console.
    • Go to Intents and select the Intent that's responsible for escalation via Handover phrase.
    • Scroll down to Responses, It will be having salesforceButtonId and salesforceId entries.
    • Misconfigure either of these entries.
  5. Now since you have properly misconfigured the Salesforce config, you're all set.
  6. Go to Rocket.Chat LiveChat widget and try to escalate a case.
  7. It will fail to escalate with a message Failed To Handover.

Screenshot of log point:

Incorrect ButtonID

When Salesforce bot user is offline/disabled (Link to PR).

Salesforce bot is a user with roles set as bot and livechat-agent, it is responsible to handling cases and transferring them to either different departments or Rocket.Chat Apps. This log point will trigger in any situation when salesforce-live-agent-integration.bot user is offline or deactivated, and DialogFlow tries to escalate the case.

Steps to reproduce:

  1. Make sure LiveChat widget currently works without any issues and is able to escalate cases.
  2. Logout from salesforce-live-agent-integration.bot user or deactivate it.
  3. To check if bot user is offline:
  4. To deactivate a user:
  5. Since your salesforce-live-agent-integration.bot user is out of service, you're all set.
  6. Go to Rocket.Chat LiveChat widget and try to escalate a case.
  7. It will fail to escalate with a message Failed To Handover.

Screenshot of log point:

Salesforce bot user offline/deactivated