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:
- Your Genesys Digital Channel URL
- 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.
- nickname - Required
- firstName - Required
- lastName - Required
- emailAddress - Optional
- subject - Optional
Use the setContext node to set these values in the flow context.
Note
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:
- UserLeft
- AgentLeft
- 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,
}