Genesys LiveChat Workers

Type: Genesys LiveChat Worker

A Genesys LiveChat worker will route a conversation to a live agent in a Genesys chat Workspace. This uses Genesys' Chat API Version 2.

Note: Genesys LiveChat workers cannot be interacted with directly by users, they must be transferred to an agent on Genesys LiveChat through a flow worker first.

Setup

To connect your Genesys LiveChat to ServisBOT you will need two things:

  1. Your Genesys Digital Channel URL
  2. Your chat Service Name

Using these you can use the cli to create a new worker with a configuration like this:

{
  "Data": {
    "GenesysUrl": "https://core.demo.genesys.com",
    "GenesysServiceName": "customer-support",
    "SlashCommands": {}
  },
  "Config": {},
  "Enabled": true,
  "Description": "Live chat for genesys",
  "Type": "genesys-livechat-v2-worker",
  "Name": "GenesysLivechatAlpha"
}

Transfer to Genesys LiveChat

Before you can transfer to a Genesys LiveChat agent you must set some variables that Genesys requires to start a chat. This information should relate to the user.

  1. nickname - Required
  2. firstName - Required
  3. lastName - Required
  4. emailAddress - Optional
  5. subject - Optional

Use the setContext node to set these values in the flow context.

Depending on your Digital Channel configuration the emailAddress field might be required and be a configured in Genesys to be allowed make chat requests.

Once these values are set use the pushBotSoStack node and select a bot configured with a your Genesys LiveChat worker

Returning from Transfer

When you return to the original Bot after being transferred to a bot containing an Genesys LiveChat Worker there are certain items available in context

  • SessionEndReason

Contains the reason the session with the connect worker has ended. Current values:

  1. UserLeft
  2. AgentLeft
  3. Error
  • LastKnownAgent

Contains the last known agent in the conversation in the form of

{ AgentName: "Agent" }

Sample baas that can be used as slash command to send an email

This requires the customer email to be set in context.

The example slash command would be:

"SlashCommands": {
  "/email": {
    "description": "Send an email to the customer",
    "actions": [
      {
        "type": "executeApi",
        "value": "sendEmail"
      }
    ]
  }
}

Baas Example:


{
  "Persona": "/images/blueprints/Amazon-Simple-Email-Service-SES.png",
  "Organization": "shane",
  "Description": "!Ref:::Parameters.baasDescription",
  "RequestMapping": {
    "Email": {
      "type": "requestBody",
      "requestBodyPath": "$.Destination.ToAddresses[0]",
      "inputPath": "$.email"
    }
  },
  "ResponseMapping": {},
  "Type": "aws-sdk",
  "Body": {
    "Message": {
      "Body": {
        "Text": {
          "Data": "body of the email"
        }
      },
      "Subject": {
        "Data": "Subject here"
      }
    },
    "Source": "YOUR_SOURCE@EMAIL.HERE"
  },
  "Created": 1585815972627,
  "Credentials": "srn:vault::YOURORG:cross-account-role:somesecret",
  "Method": "sendEmail",
  "Endpoint": "SES",
  "Alias": "sendEmail",
  "Updated": 1585818222020,
}