Categories:
genesys-directline-processor plugin
Technical description of genesys-directline-processor plugin
Introduction
This plugin receives requests from handover and transforms them to DirectLine format to send them to aura-groot.
The specific environment variables for this plugin are located at genesys-directline-processor plugin configuration.
Consumes components (IOC)
| Name | Type | Description |
|---|---|---|
| configurationManager | PluginType.Service | Configuration manager |
| directlineClient | PluginType.Service | DirectLine client |
| directlineService | PluginType.Service | Services and utilities for Directline channel |
Provides components (IOC)
| Name | Type | Description |
|---|---|---|
| genesysProcessor | PluginType.Processor | Manage requests from handover |
Controller
This plugin sets the endpoints that support handover.
| Operation id | Path | Description |
|---|---|---|
| postGenesysMessages | /aura-services/v1/genesys/messages | Manage the messages sent by handover |
Flow definition
To process a message from handover, the genesys-directline-processor plugin uses AuraBridgeFlow with the following definition:
const flow: BridgeFlow = {
source: {
type: BridgeNodeType.Genesys
},
destination: {
type: BridgeNodeType.Directline,
converter: GenesysToDirectlineConverter,
client: services.directlineClient,
clientOptions: { retries: {} }
},
onError: {
destinations: [
{
type: BridgeNodeType.Directline,
converter: GenesysToDirectlineEventConverter,
client: services.directlineClient
}
]
}
};
According to the flow definition, AuraBridgeFlow tries to process, convert and send (using retries) the message to aura-groot using the DirectLine client.
If some type of error occurs during this process, an event message will be sent to aura-groot with the error information.
flowchart LR
subgraph Flow
direction LR
B(Controller) --> C(Converter)
end
A(Handover) -->|message| Flow
Flow -->|ok| D(Groot Directline)
Flow -->|error| E(Groot Directline Event)
Message conversion
The plugin uses two converters to transform messages from Handover to DirectLine format: GenesysToDirectlineConverter and GenesysToDirectlineEventConverter.
GenesysToDirectlineConverter
Main converter, in charge of transforming Handover messages to DirectLine format messages using the messageFactory service of directline-whatsapp-service plugin.
The Handover data information in DirectLine message is added to the channeldata.payload.handover field. The converted message also includes an auraCommand with suggestion type and value defined in the environment variable AURA_GENESYS_AURA_COMMAND_DEFAULT_INTENT (by default: intent.common.handover).
Further information about handover payload in channelData v3
GenesysToDirectlineEventConverter
It makes the conversion to a DirectLine event message if an error in the process has occurred.