Genesys Component

Genesys Component

Function: genesysField()

Allows participation in voice calls using Genesys PureEngage.

About Genesys

Genesys is an industry leader in cloud and on-premise customer experience solutions. Genesys PureEngage is a contact center platform providing omni-channel customer engagement for large-scale businesses. You can access Genesys's voice features in Appian by using the Genesys Component on an interface in your Appian application.

Access Genesys's PureEngage documentation for more details.

Genesys APIs used by Appian

Appian integrates with Genesys PureEngage by using Genesys provided APIs. The following APIs are used by Appian when using the Genesys Component:

All APIs and Genesys configuration will be maintained in the Genesys PureEngage Environment. Access Genesys's API documentation for more details.

Voice and Networking Overview

For voice calls and chat messages, the Genesys component uses a Genesys APIs to enable real-time calls and messages through on Appian Interface. It relies on the browser's ability to access the computer's microphone and speaker.

There are several network requirements for Appian to properly communicate to Genesys, as listed below.

  • The Appian environment must be network resolvable from Genesys web server.
  • The agent's computer that accepts the call must be network resolvable to Genesys to connect the call or chat to the agent.

For additional details on networking, please refer to Genesys configuration or your Genesys provider.

Parameters

Name Keyword Type Description
Label label Text Optional text to display as the field label.
Label Position labelPosition Text Optional text to determine where the label appears. Valid values include
  • "ABOVE" (default) Displays the label above the component.
  • "ADJACENT" Displays the label to the left of the component.
  • "COLLAPSED" Hides the label. The label will still be read by screen readers; see accessibility considerations for more information.
  • "JUSTIFIED" Aligns the label alongside the component starting at the edge of the page.
Instructions instructions Text Optional text displayed below the field's label.
Help Tooltip helpTooltip Text Displays a help icon with the specified text as a tooltip. The tooltip displays a maximum of 500 characters. The help icon does not show when the label position is "COLLAPSED".
Required required Boolean Determines if a value is required to submit the form. Default is false.
Disabled disabled Boolean Determines if the user is prevented from changing the value and determines if the field should be grayed out. Default is false.
Validations validations Text Array Validation errors to be displayed below the field when the value is not null.
Visibility showWhen Boolean Determines whether the component is displayed on the interface. When set to false, the component is hidden and is not evaluated. Default is true
Genesys Web Services URL & Port genesysBaseURL Text The URL and port to the Genesys Web Services Server (e.g., https://10.111.01.01:1000)
On Call Load onCallLoad Save Array One or more variables that are updated when an inbound or outbound call is initiated. The value to be saved will be a dictionary representing the loaded call in the Genesys call resource format. Use a!save() to save a modified or alternative value to a variable.
On Call Complete onCallComplete Save Array One or more variables that are updated when the call ends. The value to be saved will be a dictionary representing the completed call in the Genesys call resource format. Use a!save() to save a modified or alternative value to a variable.
After Work Completion afterWorkComplete Save Array One or more variables that are updated when the agent wrap up ends. The value to be saved will be a dictionary representing the wrapped up call or chat in the Genesys call resource format
  • genesysCallId The unique Genesys Call Id assigned to the call.
  • wrapUpDuration The after work or wrap up duration in seconds.
Use a!save() to save a modified or alternative value to a variable.
On Consult Load onConsultLoad Save Array One or more variables that are updated when a consultation call is initiated. The value to be saved will be a dictionary representing the consult call in the Genesys call resource format. Use a!save() to save a modified or alternative value to a variable.
On Consult Completion onConsultComplete Save Array One or more variables that are updated when the consultation call is complete. The value to be saved will be a dictionary representing the consultation call in the Genesys call resource format. Use a!save() to save a modified or alternative value to a variable.
On Transfer Initiation onTransferInitiate Save Array One or more variables that are updated when the original call is transferred. The value to be saved will be a dictionary representing the transferred call. The dictionary will have two keys:
  • callData A dictionary in the Genesys call resource format.
  • transferTarget The number the call is being transferred to.
Use a!save() to save a modified or alternative value to a variable.
On Transfer Error onTransferError Save Array One or more variables that are updated when a blind transfer or a consult call fails. The value to be saved will be a dictionary representing the transfer error. The dictionary will have two keys:
  • statusCode The HTTP status code received when the transfer or call fails.
  • errorMessage The error message received from Genesys if provided.
Use a!save() to save a modified or alternative value to a variable.
On Call Deliver onCallDeliver Save Array One or more variables that are updated when a call is delivered but hasn't been accepted. The value to be saved will be a dictionary representing the delivered call in the Genesys call resource format. Use a!save() to save a modified or alternative value to a variable.
On Call Dismiss onCallDismiss Save Array One or more variables that are updated when a call is rejected or timed out. This save array will only execute when Genesys is not configured for auto answer. The value to be saved will be a dictionary representing the dismissed call in the Genesys call resource format. Use a!save() to save a modified or alternative value to a variable.
Outbound Call outboundCall Boolean Determines if the user has the ability to place an outbound call. Default is false.
Default Country Code defaultCountryCode Integer Sets a country code for all outbound calls. If not provided, the default value is 1 for US country code.
On Dial Error onDialError Save Array One or more variables that are updated when an outbound call fails. The value to be saved will be a dictionary with two keys:
  • statusCode The HTTP status code received when the outbound call fails.
  • errorMessage The error message received from Genesys if provided.
Use a!save() to save a modified or alternative value to a variable.
Outbound Suggestion outboundSuggestion Text A suggested phone number that will appear in the outbound dial pad. The number can be edited by the user before the call is placed.
On Chat Load onChatLoad List of Save One or more variables that are updated when a chat is initiated. The value to be saved will be a dictionary representing the loaded call. The dictionary will follow the Genesys chat API call resource format. Use a!save() to save a modified or alternative value to a variable.
Supported Channels supportedChannels Text Array Determines which communication channels are supported. Valid values: "VOICE", "CHAT".
On New Chat Message onNewChatMessage List of Save One or more variables that are updated when a new chat message is sent or received. The value to be saved will be a dictionary representing the new message, including fields for agent user name and message. Use a!save() to save a modified or alternative value to a variable.
On New Chat Audio onNewChatAudio Boolean Determines whether there will be an audio notification at the start of a chat interaction. The audio will be dismissed when the user accepts the chat interaction or clicks in the text response box. Default is false.
Chat Suggestion chatSuggestion Text A suggested chat message which will appear in the chat message window. The message can be edited by the user before being sent.
On Chat Complete onChatComplete List of Save One or more variables that are updated when a chat ends. The value to be saved will be dictionary keys "chat" and "messages" representing the completed chat and the messages for the chat. The dictionary will follow the Genesys chat API call resource format. The chat key will contain a dictionary that will follow the Genesys API chat resource format. The messages key will contain an array of dictionaries that follow the Genesys API message resource. Use a!save() to save a modified or alternative value to a variable.
On Participant Leave onParticipantLeave List of Save One or more variables that are updated when a participant leaves the chat. The value to be saved will be a dictionary representing the identity of the participant that left, the participant nickname, participant type, channel type. Use a!save() to save a modified or alternative value to a variable.
Chat Auto Accept chatAutoAccept Boolean Determines if the user is automatically connected with the incoming chat messages. Default is false.
On Chat Deliver onChatDeliver List of Save One or more variables that are updated when a chat is delivered but hasn't been accepted. The dictionary will follow the Genesys Chat API resource format. Use a!save() to save a modified or alternative value to a variable.
On Chat Dismiss onChatDismiss List of Save One or more variables that are updated when a chat is rejected or timed out. This save array will only execute when Genesys is not configured for auto answer. The value to be saved will be a dictionary representing the Genesys Chat API resource format. Use a!save() to save a modified or alternative value to a variable.

Setting Up Genesys

In order to use the Genesys component, the following must be configured in your Genesys Environment:

  • Genesys Workspace (GWS) needs SSL enabled.
  • Add the DYNAMIC_SERVER_AND_PORT value for your Appian instance to the allowedOrigins in the GWS config file.
  • Make sure the location hosting GWS is reachable from your Appian instance.

Configuration

Auto Answer

The configuration for auto answer will be done in the Genesys Environment. The following parameters need to be set in Genesys Workspace to enable or disable auto-answer for incoming voice calls or chat messages:

  1. Auto-answer
  2. Auto-answer.enable-reject

Outbound

The configuration for outbound will be done in the Genesys Environment. The dial plan established in Genesys must support outbound calls for successful outbound calls.

Genesys Call Resource Format

The Genesys component saves call metadata using a dictionary format based on the Genesys PureEngage Call Resource. The following is the dictionary format:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 Dictionary
    id: "S9CO8TE2TL0OJ55ABO2IC6VSRO000016"
    state: "Established"
    callUuid: "S9CO8TE2TL0OJ55ABO2IC6VSRO000016"
    connId: "006902d4aa59b025"
    deviceUri: "http://htcc/api/v2/devices/362a1dc8-0d11-4d67-9132-29fee7d62a44"
    participants: List of Dictionary: 1 item
        Dictionary
            e164Number: null (Text)
            formattedPhoneNumber: "1000"
            phoneNumber: "1000"
            digits: "1000"
    dnis: "2101"
    callType: "Internal"
    capabilities: List of Text String: 12 items
        "Hangup"
        "SingleStepConference"
        "SendDtmf"
        "DeleteUserData"
        "Hold"
        "SingleStepTransfer"
        "ClearCall"
        "DeleteUserDataPair"
        "UpdateUserData"
        "AttachUserData"
        "InitiateTransfer"
        "InitiateConference"
    userData: Dictionary
        RStrategyDBID: "167"
        CBR-IT-path_DBIDs: null (Text)
        RTargetPlaceSelected: "4005"
        RVQID: null (Text)
        RTenant: "Environment"
        RTargetObjectSelected: "?:Skill3 >= 0"
        PegAG?:Skill3 >= 0: 1
        RTargetRequested: "?:Skill3 >= 0"
        ServiceObjective: null (Text)
        RTargetPlSelDBID: "106"
        RStrategyName: "RS_RP4"
        RRequestedSkillCombination: null (Text)
        CBR-contract_DBIDs: null (Text)
        ServiceType: "default"
        RTargetTypeSelected: "2"
        CBR-actual_volume: null (Text)
        RTargetObjSelDBID: null (Text)
        CBR-Interaction_cost: null (Text)
        RRequestedSkills: null (Null)
        CustomerSegment: "default"
        RTargetRuleSelected: null (Text)
        RTargetAgentSelected: "test_agent"
        RVQDBID: null (Text)
        RTargetAgSelDBID: "120"
        RTenantDBID: "1"
    duration: "2205"
    mute: "Off"
    supervisorListeningIn: false
    monitoredUserMuted: false
    monitoring: false
    uri: "http://htcc/api/v2/me/calls/S9CO8TE2TL0OJ55ABO2IC6VSRO000016"
    path: "/calls/S9CO8TE2TL0OJ55ABO2IC6VSRO000016"

Genesys Chat Resource Format

The Genesys component saves chat metadata using a dictionary format based on the Genesys PureEngage Chat Resource. The following is the dictionary format:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
state: "Chatting"
id: "0000Na9B26EF002G"
uri: "http://localhost:8080/api/v2/chats/0000Na9B26EF002G"
participants: List of Dictionary: 2 items
        type: "Agent"
        nickname: "Agent1"
        participantId: "009052BDEE4A003E",
        type: "Customer"
        nickname: "PersonP"
        participantId: "009052BDEE39003C"
capabilities: List of Text String: 8 items
        "AttachUserData",
        "UpdateUserData",
        "DeleteUserData",
        "Leave",
        "LeaveAndComplete",
        "Transfer",
        "Invite",
        "Consult"
userData: Field to add data
FEEDBACK