Key-Value Pair
Also known as a KVP. A data structure that is used to communicate or store a piece of information. A KVP consists of a key, whose value is a string, and a value, which may be any of a variety of data types, including a key-value set (thus, making the structure recursive). The key identifies the meaning of the data that is contained in the value.
Glossary
Contents
- 1 Communication Protocols
- 1.1 Event Overview
- 1.2 Desktop Requests and OCS Responses
- 1.3 Campaign Status Notification from OCS to Desktop
- 1.4 Campaign Group Status Notification from OCS to Web or Application Server
- 1.5 PreviewDialingModeStart Request
- 1.6 ReadyTime Request
- 1.7 Preview Record Request and Acknowledgment
- 1.8 Updating Call Results and Custom Fields
- 1.9 Chained Records
- 1.10 Rejecting Records
- 1.11 Canceling Records
- 1.12 Submitting DoNotCall Requests
- 1.13 Scheduling and Rescheduling Records
- 1.14 Adding Records to a Calling List
- 1.15 Unsolicited Notifications
- 1.16 Agent Logout
- 1.17 Proactive Interaction Support
- 1.18 Caller ID Support
- 1.19 Virtual Agent Support for Notifications
- 1.20 Personalized Ring Tone Support
- 1.21 Outbound Contact Library
Communication Protocols
This chapter explains the Outbound Contact Server (OCS) and Desktop communication protocol. The desktop uses this protocol to send requests to OCS, and OCS uses it to send information and acknowledgments to the desktop and the calling list database.
This chapter also describes the overall process of transmitting information from the calling list database, through OCS and either SIP Server or T-Server, to the agent desktop and back again until a call transaction is complete.
Event Overview
There are telephony and user events in Genesys.
- Telephony events, which T-Server sends, indicate changes in the call status. Every telephony event contains outbound data from the calling list database, which OCS sends to T-Server with the request to make a call. An agent receives notice (EventEstablished) from T-Server that a call has been established and receives attached data along with this event. Every call has approximately 10 different associated events, all of which contain data. Once data is attached to a call, it is permanent and attached to every event associated with this call.
- User events, which include attached user data, are messages that provide a documented protocol of the interactions between OCS and the agent’s desktop application.
Characteristics of Event Structures
There are two types of user events:
- Agent desktop request to OCS. All messages that travel from the desktop to OCS have the GSW_AGENT_REQ_TYPE key.
- OCS to desktop, either:
- A response to a desktop request.
- An unsolicited notification from OCS.
-
All messages that travel from OCS to the desktop have the GSW_USER_EVENT key.
When OCS retrieves a record, it creates a unique record identifier (GSW_RECORD_HANDLE) that identifies the record. This attribute identifies the record to which attached data pertains in a user event. Any communication between the desktop and OCS concerning this record requires a key value with the GSW_RECORD_HANDLE. The key-value GSW_RECORD_HANDLE is internally generated and is not related to the RECORD_ID field of the call record.
All requests having GSW_RECORD_HANDLE as a mandatory field receive the Record Not Found response error if the record is not in the internal OCS buffers (for example, the record was already processed).
All events, whether they are from the desktop or from OCS, should have the key-value pair GSW_APPLICATION_ID <Int>, which is the OCS application ID (sometimes called the OCS DBID in the Configuration Server database). In Outbound Contact, after an agent logs in, OCS sends a Campaign status notification to the agent desktop. The OCS application ID sent with this notification is attached to every request sent to OCS. Only the OCS with the matching GSW_APPLICATION_ID responds to the request.
In case the primary and backup OCS have been switched, the OCS that just became primary notifies all logged-in desktops about the change by sending them a user event with new GSW_APPLICATION_ID and the current statuses of loaded and running dialing sessions for Campaigns. Then all desktops will use the new GSW_APPLICATION_ID in their communications with the new primary OCS, but they remember the previous GSW_APPLICATION_ID for a while, to let the backup OCS finish its work with the records started while it was the primary OCS.
Key-value pairs of a user event may be sent in any order. The desktop applications recognize the key-value pairs by the key and not by the sequence of the attached key-value pair.
Event Responses
When a desktop request to OCS is related to a specific record (using GSW_RECORD_HANDLE), the desktop must explicitly tell OCS that it has finished with the record, using the RecordProcessed request. The RecordProcessed request signals the final transaction for the record. The only requests that do not need a RecordProcessed request are DoNotCall and RecordCancel requests related to an open record (hence sent from the desktop to OCS with GSW_RECORD_HANDLE).
With the exception of ChainedRecordRequest, OCS acknowledges all events separately, by sending either an acknowledgment, an error, or the requested data. ChainedRecordRequest is the only request that OCS returns with multiple responses. ChainedRecordRequest responds with each record in the chain, and ChainedRecordDataEnd signals the end of the user event.
Error Events and Messages
OCS sends an error event, via T-Server, when OCS cannot interpret the desktop request. The error message conveys the reason for the failure.
All error events should have the key-value pair GSW_ERROR <Error Name> in the attached data. The key-value pairs in the Error Event Attributes table should be contained in all error events.
Key | Type | Comment |
---|---|---|
GSW_ERROR | String | Error name; see Error Names and Codes. |
GSW_ERROR_NUMBER | Int | Mandatory |
Error Names and Codes lists the OCS error messages sent to the desktop, their corresponding values, and possible diagnostics.
Attaching Record Information to Desktop and OCS User Events
A calling list contains two types of fields: Genesys mandatory fields and custom (user-defined) fields. The value of these fields can be attached to user events (and telephony events) as user data. The attached data is then sent as a pair, called a key-value pair.
Default Record Information
The value of certain fields from each calling list record is attached to all telephony and user events by OCS, by default. Key-value pairs might include, for example:
- phone number (key GSW_PHONE)
- chain ID of the record (key GSW_CHAIN_ID)
- call result (key GSW_CALL_RESULT)
These pairs are sent when a user event, or telephony event, is related to handling a specific calling list record. The pair with the key GSW_RECORD_HANDLE is attached to outbound-related events as a unique record identifier. Genesys recommends that the desktop application should not change the value of these key-value pairs (except GSW_CALL_RESULT).
The Default Record Information table contains a list of key-value pairs that OCS attaches to outbound call's user data by default.
Key | Type | Description |
---|---|---|
GSW_ABANDONED | Int64 (Unix timestamp) | The timeAbandoned parameter from FTC timestamps. |
GSW_ACW_COMPLETED | Int64 (Unix timestamp) | The time when After Call Work is completed. |
GSW_APPLICATION_ID | Integer | The OCS configuration application database ID. The unique identifier of the running OCS instance. |
GSW_ATTEMPTS | Integer | The number of attempts for the record. |
GSW_CALL_ATTEMPT_GUID | String | The global unique identifier of the call processing attempt used for historical reporting. |
GSW_CALL_RESULT | Integer | Call Result saved from the previous call, or Call Result sent to change automatically detected call result; see Enumeration Table and Call Result Types. |
GSW_CALLING_LIST | String | The name of the Calling List. |
GSW_CAMPAIGN_GROUP_DESCRIPTION | String | The description of the Campaign Group. |
GSW_CAMPAIGN_GROUP_GUID | String | The global unique identifier of the Campaign Group. |
GSW_CAMPAIGN_GROUP_NAME | String | The name of the Campaign Group. |
GSW_CAMPAIGN_NAME | String | The name of the Campaign. |
GSW_CHAIN_ID | Integer | The unique Chain ID. |
GSW_COMPLETE_PROCESSING | Int64 (Unix timestamp) | The time when processing of the call attempt was completed. |
GSW_COUNTRY_CODE | String | The Client's country code. |
GSW_D_AREA_CODE | String | The area code associated with the device. |
GSW_HIST_SEQUENCE_NUM | Integer | Record submission sequential number 0 or 1. Value 0 means the first call report record submission for a given call attempt. Value 1 means the second call report record submission for a given finalized call. |
GSW_OPTIMIZE_BY | Integer | The optimization method (enumeration). Available for predictive dialing modes only. |
GSW_OPTIMIZE_GOAL | Integer | The optimization goal. Available for predictive dialing modes only. |
GSW_PHONE | String | The customer’s phone number. |
GSW_POSTAL_CODE | String | The Client's postal code. |
GSW_RECORD_HANDLE | Integer | The unique Record Identifier. |
GSW_SCHEDULED_TIME | Int64 (Unix timestamp) | The reschedule time for a record. Available only with records of particular types. |
GSW_START_PROCESSING | Int64 (Unix timestamp) | The time that OCS started processing the call attempt. If pre-dial validation is in place, this is the time that the pre-dial validation request was sent. |
GSW_TENANT_NAME | String | The value is populated from the current Tenant (where the Campaign Group belongs). The Tenant\Annex\devops\customer_name option. Defaults to undefined if not set. |
GSW_TZ_CODE | String | The client's time zone. |
GSW_TZ_OFFSET | Integer | Offset (time difference) in seconds between Universal Time Coordinated (UTC) and a particular time zone. It may contain different values throughout the year if Daylight Savings Time (DST) is used for the specified time zone. Values: -43200 … 43200. |
Send Attributes
If the value of a field is not attached by default, and you wish to include its value in the user data, then you must define the option named send_attribute in the field configuration object which corresponds to the field of the value you want to be attached.
The value of the send_attribute option defines the key of the pair that will be attached to the user data. The value of the field is the value of the pair.
For example, a calling list might have a user-defined field for customer_name. If you want to send the content of the field customer_name (John Doe, for example) to the desktop, you would set up the send_attribute option with the value = customer_name. The desktop will then receive the attached data with the key = customer_name and the value = John Doe.
You can define the send_attribute option in the Configuration Database, on the Annex tab of the Field configuration object.
User Event Attributes
The User Event Attributes table shows a list of user event attributes that OCS uses to communicate with Stat Server for reporting purposes. The event type GSW_STAT_EVENT is the mandatory attribute for these events.
Key |
Type |
Description |
---|---|---|
GSW_STAT_EVENT |
Int |
Event Type |
GSW_CAMPAIGN_DBID |
Long (integer) |
Reference to Campaign DBID of CFGCampaign object from Configuration Server |
GSW_CALL_LIST_DBID |
Long (integer) |
Reference to calling list in Campaign DBID of CfgCallList from Configuration Server |
GSW_GROUP_DBID |
Long (integer) |
Reference to group in Campaign DBID of CfgGroup |
GSW_AGENT_DBID |
Long (integer) |
Reference to agent DBID of CFGPerson in Configuration Server |
GSW_CALL_RESULT |
Int |
Call Result |
GSW_CAMPAIGN_COMPLETE |
Int |
The sum of ready and retrieved chains for the campaign |
GSW_LIST_COMPLETE |
Int |
Number of Ready chains for the given calling list |
GSW_ERROR_DESCRIPTION |
String |
Error description |
GSW_DIAL_MODE |
Int |
Dial mode. Valid values are as follows: |
GSW_APPLICATION_ID |
Int |
OCS application DBID |
GSW_CALLBACK_TYPE |
Int |
Callback Type |
GSW_SCHED_REC_NUM |
Int |
Number of scheduled records in process. Valid values begin at 0. |
Updating Genesys Mandatory Fields and Custom Fields
The desktop can use the RecordProcessed or UpdateCallCompletionStats request to modify the values in Genesys mandatory fields and custom fields. See Modifiable Mandatory Genesys Fields for modifiable mandatory Genesys fields.
Genesys Mandatory Fields
The Modifiable Mandatory Genesys Fields table contains the only Genesys mandatory fields that are modifiable by the RecordProcessed or UpdateCallCompletionStats events.
Genesys Mandatory Field Name |
Recommended Key for send_attribute |
Type |
Description |
---|---|---|---|
call_result |
GSW_CALL_RESULT |
Int |
Sent to change an automatically detected call result. See Enumeration Table and Call Result Types. |
daily_from |
GSW_FROM |
Int |
GSW_FROM to GSW_UNTIL: Time frame when a record can be called, in seconds from midnight (system or local time). |
contact_info |
GSW_PHONE |
String |
Customer’s phone number. |
contact_info_type |
GSW_PHONE_TYPE |
Int |
Customer phone type. See Enumeration Table. |
daily_till |
GSW_UNTIL |
Int |
GSW_FROM to GSW_UNTIL: Time until a record can be called, in seconds from midnight (system or local time). |
Custom Data Formats
The data type of custom fields may change as data is attached to a call; the attached data can then be sent to the desktop as user data. Integer data is sent as an integer. All other data is sent as a string.
Custom data should be formatted as shown in Custom Data Formats.
Data Type in Calling List |
User Data Format |
---|---|
FLOAT |
STRING |
CHAR |
STRING |
DATETIME |
STRING |
INT |
INTEGER |
VARCHAR |
STRING |
Reserved Keys
The key names in Reserved Keys are reserved and cannot be used as the send_attribute for custom fields. The values associated with some of these keys can be changed; others cannot. The primary source of data for the values in this table is the calling list database. Values for all keys of type String are case sensitive and should appear in desktop application code exactly as shown in the Values column.
Key | Values | Type | Description |
---|---|---|---|
GSW_AGENT_ANSWERED | Int64 (Unix timestamp) | The time when an agent answers a call. | |
GSW_AGENT_RELEASED | Int64 (Unix timestamp) | The time when an agent releases a call. | |
GSW_AGENT_ID | String | The Login ID of the last agent who worked with the record. | |
GSW_AGENT_REQ_TYPE | String | The event identifier for events coming from desktops to OCS. | |
GSW_APPLICATION_ID | 101… | Integer | The OCS configuration application database ID; unique identifier of the running OCS instance. |
GSW_ASM_OVERDIAL | 1 | Integer | The presence of this key indicates that the outbound call was not merged with an engaging call in ASM mode (VoIP environment) and the call is considered overdialled by OCS. |
GSW_ASSURED_HANDLE | 1... | Integer | The handle of a record which is dialed with guaranteed connection to an agent; added to an engaging call used to seize an agent for guaranteed connection. |
GSW_ATTEMPTS | 0 … | Integer | The number of attempts for the record; used when a new record is added. |
GSW_BLOCKING_RULE | String | The name of the rule that caused a negative result of pre-dial validation. OCS might receive it from a third-party validation server in a negative validation response. In such case, OCS passes it in a call attempt record submission unchanged. | |
GSW_BLOCKING_RULE_TYPE | Integer | The type of the compliance object that caused a negative pre-dial validation (Mandatory Suppression List, Custom Compliance Rule, etc). OCS may receive it from a third-party validation server in a negative validation response. In such case, OCS passes it in a call attempt record submission unchanged. | |
GSW_CALL_ATTEMPT_GUID | String | The global unique identifier of the call processing attempt used for historical reporting (same value as in the primary for all the chained records). | |
GSW_CALL_RESULT | Integer | Call Result saved from the previous call, or Call Result sent to change an automatically detected call result; see Enumeration Table and Call Result Types. | |
GSW_CALL_RESULT_FEEDBACK | 1 | Integer | The presence of this key indicates that the given outbound call is selected as a test call for Answering Machine Detection (AMD) false positives and AMD false negatives. This call will be delivered to an agent, even if Answering Machine has been detected by the CPD engine and treatments on AM require otherwise. The call result for this call requires manual verification by an agent. Agent Desktop is expected to provide the actual call result to OCS in the GSW_CALL_RESULT attribute of the UpdateCallCompletionStats or RecordProcessed desktop request. |
GSW_CALL_TIME | 0… | Integer | The system time when a record was called, in seconds from 1/1/70 (GMT). This key is used when a new record is added. |
GSW_CALLBACK_TYPE | Personal, Campaign | String | The type of callback an agent wants to create, either Personal or Campaign. |
GSW_CALLING_LIST | String | The name of the calling list. | |
GSW_CAMPAIGN_DESCRIPTION | String | The description of the Campaign. A value may be an empty string. | |
GSW_CAMPAIGN_MODE |
Power GVP, Predictive, Predictive with Seizing, Preview, Progressive, Progressive with Seizing, Push Preview |
String |
Campaign dialing mode. See Enumeration Table. The values Engaged Predictive and Engaged Progressive correspond to the Predictive with seizing and Progressive with seizing dialing modes. |
GSW_CONTACT_MEDIA_TYPE |
any, email, voice |
String | The media type for the calling record that corresponds to the value of the contact_info_type field in the calling list. |
GSW_CAMPAIGN_GROUP_DBID | String | The DBID of the Campaign Group. | |
GSW_CAMPAIGN _GROUP_NAME | String | The name of the Campaign Group. | |
GSW_CAMPAIGN_GROUP_DESCRIPTION | String | The description of the Campaign Group. A value may be an empty string. | |
GSW_CAMPAIGN_NAME | String | The name of the Campaign. | |
GSW_CAMPAIGN_TEMPLATE_NAME | String | The name of the Campaign Template (the Script of type Outbound Campaign, referenced by the Campaign Group via the scriptDBID attribute). | |
GSW_CHAIN_ATTR | AllChain, RecordOnly | String | The flag determining whether to update a record chain or just a single record. |
GSW_CHAIN_ID | 0… | Integer | The unique chain ID. |
GSW_CHAIN_N | 0... | Integer | The unique identifier of a record in a chain. |
GSW_CPD_COMPLETED | Int64 (Unix timestamp) | The time when CPD is completed. | |
GSW_CPN_DIGITS | String | CPNDigits as configured for a given record. | |
GSW_CPN_DIGITS_SET | String | The name of the Caller ID Set (the Script configuration object) that is included the CPNDigits value used in this call attempt. May not be present if no CPNDigits is configured or if CPNDigits is configured not via a Caller ID Set (via SCXML or the CPNDigits OCS option at any level). | |
GSW_CUSTOMER_ID | String | The customer ID that is used for requests. | |
GSW_DATE_TIME | A string represented in time in this format: MM/DD/YY(YYYY) HH:MM. | String | The date and time of a scheduled call, in the record’s time zone. |
GSW_DIALING | Int64 (Unix timestamp) | The time when call dialing is started. | |
GSW_D_STATE_CODE | String | The region code of a device. | |
GSW_D_TZ_JAVA_NAME | String | The time zone of a device. | |
GSW_DEVICE_MASK | String | The device mask. | |
GSW_ERROR | Error name | String | The error name. See Error Names and Codes. |
GSW_ERROR_DESCRIPTION | Error description | String | The error description. See Error Names and Codes. |
GSW_ERROR_NUMBER | Error Number | Integer | The error code. See Error Names and Codes. |
GSW_FROM | 0… | Integer | GSW_FROM - GSW_UNTIL: Time frame when a record can be called, seconds from midnight. |
GSW_LOGOUT_TIME | 1...N | Int | Time remaining, in seconds, before an agent may log out after an unsuccessful logout attempt. |
GSW_MESSAGE | String | The DoNotCall message or a record cancellation message | |
GSW_PHONE | String | The customer’s phone number. | |
GSW_PHONE_TYPE | Integer | The customer's phone type. See Enumeration Table. | |
GSW_RECORD_HANDLE | 1… | Integer | The Unique Record Identifier. |
GSW_RECORD_STATUS | See Enumeration Table. | Integer | The status of adding a record sent from a desktop. |
GSW_RECORD_TYPE | See Enumeration Table. | Integer | The type of an added record sent from a desktop. |
GSW_RELEASED | Int64 (Unix timestamp) | The time when a call is released. | |
GSW_SCRIPT_ID | Integer | The DBID of the Script configuration object. | |
GSW_STATE_CODE | String | The Client's region code. | |
GSW_SWITCH_DBID | Integer | The DBID of the Switch configuration object. | |
GSW_TENANT_CCID | Integer | The Contact Center ID. The value is populated from the current Tenant (where the Campaign Group belongs). The Tenant\Annex\devops\customer_name option. Defaults to undefined if not set. | |
GSW_TREATMENT |
RecordTreat Personal, RecordTreat Campaign |
String | The treatment that should be applied to a record chain for RecordProcessed event. |
GSW_TZ_JAVA_NAME | String | The Client's time zone. | |
GSW_TZ_NAME | String | The Configuration Server time zone name (usually a standard three-letter abbreviation). | |
GSW_TZ_OFFSET | -43200 … 43200 | configuration | Offset (the time difference) in seconds between UTC and a particular time zone. It might contain different values throughout the year if Daylight Savings Time (DST) is used for the specified time zone. |
GSW_UNTIL | 0… > GSW_FROM | configuration | GSW_FROM - GSW_UNTIL: The time frame when a record can be called (in seconds from midnight). |
GSW_USER_EVENT | Event Type, see All Desktop Protocol Events and Event Type Protocols. | String | The event identifier for events coming from OCS to desktops. |
InteractionType | Outbound | String | The type of the interaction that is created by OCS. The value of this key is always set to Outbound. |
InteractionSubtype | OutboundNew | String | The subtype of the interaction that is created by OCS. The value of this key is always set to OutboundNew. |
Genesys Enumeration Tables
Some Genesys mandatory fields in a calling list table are represented as predefined integer constants. When these fields are attached to user events or telephony events as key-value pairs, the values of these fields are sent as integers (sometimes called enumeration values or internal representations). Enumeration Table lists the Genesys mandatory fields that are sent as enumeration values and their corresponding descriptive strings displayed in various applications (such as Outbound Contact Manager and Genesys Administrator). The desktop application should translate the enumeration value to the appropriate description when required for display.
Genesys Mandatory Field in Calling List Table |
Key |
Enumeration Value |
Data Type in User Event |
Description |
---|---|---|---|---|
call_result |
GSW_CALL_RESULT |
See Call Result Types for the call result enumeration values and descriptions. |
Int |
Call result saved from the previous call, or the call result sent to change an automatically detected call result. |
contact_info_type |
GSW_PHONE_TYPE |
0, No Contact Type |
Int |
Customer phone type. |
record_status |
GSW_RECORD_
STATUS |
0, No Record Status |
Int |
Status of adding record sent from a desktop. |
record_type |
GSW_RECORD_TYPE |
0, No Record Type |
Int |
Type of record sent from a desktop. |
Attaching Scripts to OCS User Events and Telephony Events
The Configuration Object Script with the Type Outbound Campaign defines all of the attributes that are required by Agent Scripting.
References to this script can be defined in the Script combo box of a Campaign, Calling List, or Campaign Group Configuration Objects.
When a script is defined in either of these objects: Outbound Contact Server attaches the DBID of the corresponding Object Script to a User Data of an Outbound Call or Preview Record, as a value of a key-value pair where GSW_SCRIPT_ID is a key.
When the script is specified in multiple Outbound Objects related to a particular Record (for example, in both Campaign and Calling List), then OCS selects the script DBID in the following order:
- Calling List (highest priority)
- Campaign
- Campaign Group (lowest priority)
In this case, when different Scripts are specified in the Campaign and Calling List, the script DBID of the Script that is specified in the Campaign is attached to the call.
Desktop Requests and OCS Responses
The previous sections gave a general overview of the OCS/Desktop Communication protocol. The rest of this chapter describes desktop requests and the corresponding OCS responses in more detail. The topics covered include:
- Campaign status notifications
- Campaign agent assignment
- Starting Preview dialing mode
- Request preview records
- ReadyTime request
- Updating call results and custom fields
- Chained records
- Rejecting records
- Canceling records
- Submitting DNC requests
- The differences between canceling records and marking them DoNotCall
- Scheduling and Rescheduling records
- Adding records to the calling list
- Unsolicited notifications
- Agent logout
Finally, it provides a library of error codes and all Genesys events and event type protocols.
The general format for each event section is:
- A diagram (when appropriate) with the event sequence, conditions, and responses.
- A table that features the description, desktop action, mandatory fields, and additional fields for that event.
- Another table that shows the values and descriptions of the additional fields, gives the default values, and describes whether those keys are mandatory or optional.
It is important to note that key-value pairs can be sent in any order. That is, they may be sent in an order other than that specified in the tables in this document. Therefore, any program should have the intelligence to understand keys not by sequence, but by key name.
Campaign Status Notification from OCS to Desktop
Agents receive immediate information about the active Campaign at login. When an agent logs in, OCS sends notification to the desktop telling the agent if a Campaign/Campaign group is running, the name of the Campaign, and the Campaign mode.
The following are notification messages from OCS to the desktop:
- CampaignStarted
- CampaignLoaded
- CampaignUnloaded
- CampaignStopped
- CampaignModeChanged
- CampaignGroupAssigned
Notification messages are sent to the agent desktop when:
- The status of a Campaign changes.
- The agent logs in to a group that has a running or active (loaded) Campaign associated with it.
- The agent assignment is changed.
If the primary and backup OCS switch for any reason, a new primary server sends event CampaignStarted/CampaignLoaded to every agent in the Campaign to let the desktop know that the GSW_APPLICATION_ID attribute has changed. For more information, see Characteristics of Event Structures.
Within a given group, and simultaneously, one or all of the following can be occurring:
- One Campaign/Campaign group is running in auto dialing mode.
- Several Campaigns/Campaign groups are running in the Preview or Push Preview dialing mode
- Several Campaigns are loaded (active) within a group.
Therefore, the status of the Campaign must be stated for each group, since a dialing session for a Campaign may be started and stopped for different groups at different times.
Campaign Status from OCS to the Desktop shows the user events CampaignStarted, CampaignStopped, and CampaignModeChanged, which OCS sends to the desktop.
CampaignStarted
OCS sends this event to the desktop when a dialing session for a Campaign is started. CampaignStarted contains more information.
CampaignStarted User Event | |
---|---|
Description |
OCS sends this event to all logged in agents when the dialing for a Campaign begins, or, as a response to an agent login when a dialing session for a Campaign is started. |
Recommended Desktop Action |
The desktop should store the Campaign name and OCS application ID from the attached data of this user event. The desktop can choose to display the Campaign information from the attached data. |
The CampaignStarted Attached Data table lists the attached data for the CampaignStarted event.
Data Key |
Type |
Key Required |
Value |
Description |
---|---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
CampaignStarted
|
Hard coded request name |
GSW_APPLICATION_ID |
Int |
Yes |
<OCS application DBID> |
DBID for OCS from Configuration DB |
GSW_CAMPAIGN_
DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign Group. |
GSW_CAMPAIGN_MODEa |
String |
Yes |
Power GVP,
Progressive GVP.Predictive,
Predictive with Seizing, Preview,
Progressive,
Progressive with Seizing,
and Push Preview.
|
Mode in which the dialing session of a Campaign started. |
GSW_CAMPAIGN_NAME |
String |
Yes |
<Campaign name> |
|
GSW_CAMPAIGN _GROUP_NAME |
String |
Yes |
<Campaign Group name> |
a In the OCS log, the Predictive with Seizing and Progressive with Seizing modes are referred to as Engaged Predictive and Engaged Progressive, respectively.
CampaignLoaded
OCS sends this event to the desktop when a Campaign/Campaign group is loaded. CampaignLoaded contains more information.
CampaignLoaded User Event | |
---|---|
Description |
OCS sends this event to all logged in agents when a Dialing Session for a Campaign Group is loaded, or, as a response to an agent login when a Dialing Session for a Campaign Group is started. |
Recommended Desktop Action |
The desktop should store the Campaign name and OCS application ID from the attached data of this user event. The desktop can choose to display the Campaign information from the attached data. |
CampaignLoaded Attached Data lists the attached data for the CampaignLoaded event.
Data Key |
Type |
Key Required |
Value |
Description |
---|---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
CampaignLoaded
|
Hard coded request name |
GSW_APPLICATION_ID |
Int |
Yes |
<OCS application DBID> |
DBID for OCS from Configuration DB |
GSW_CAMPAIGN_
DESCRIPTION |
String |
Yes |
<description> or an empty string. |
Description of Campaign |
GSW_CAMPAIGN_NAME |
String |
Yes |
<Campaign name> |
|
GSW_CAMPAIGN _GROUP_DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign Group |
GSW_CAMPAIGN _GROUP_NAME |
String |
Yes |
<Campaign Group name> |
CampaignUnloaded
OCS sends this event to the desktop when a Dialing Session for a Campaign is unloaded. CampaignUnloaded contains more information.
CampaignUnloaded User Event | |
---|---|
Description |
OCS sends this event to all logged in agents when a Dialing Session for a Campaign is unloaded. |
Recommended Desktop Action |
The desktop should stop sending requests to the Campaign. |
The CampaignUnloaded Attached Data table lists the attached data for the CampaignUnloaded event.
Data Key |
Type |
Key Required |
Value |
Description |
---|---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
CampaignUnloaded
|
Hard coded event name |
GSW_APPLICATION_ID |
Int |
Yes |
<Unique ID of OCS> |
|
GSW_CAMPAIGN_NAME |
String |
Yes |
<Campaign name> |
|
GSW_CAMPAIGN
_DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign |
GSW_CAMPAIGN _GROUP_DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign Group |
GSW_CAMPAIGN _GROUP_NAME |
String |
Yes |
<Campaign Group name> |
CampaignStopped
OCS sends this event to the desktop when a Dialing Session for a Campaign is stopped. CampaignStopped contains more information.
CampignStopped User Event | |
---|---|
Description |
OCS sends this event to all logged in agents when a Dialing Session for a Campaign stops. |
Recommended Desktop Action |
The desktop should stop sending requests to the Campaign. |
The CampaignStopped Attached Data table lists the attached data for the CampaignStopped event.
Data Key |
Type |
Key Required |
Value |
Description |
---|---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
CampaignStopped
|
Hard coded event name |
GSW_APPLICATION_ID |
Int |
Yes |
<Unique ID of OCS> |
|
GSW_CAMPAIGN_NAME |
String |
Yes |
<Campaign name> |
|
GSW_CAMPAIGN
_DESCRIPTION |
String |
Yes |
<description> or an empty string |
The description of the Campaign |
GSW_CAMPAIGN _GROUP_DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign Group |
GSW_CAMPAIGN _GROUP_NAME |
String |
Yes |
<Campaign Group name> |
CampaignModeChanged
OCS sends this event to the desktop when the dialing mode for a Campaign has changed. CampaignModeChanged contains more information.
CampaignModeChanged User Event | |
---|---|
Description |
Description of change sent to all logged-in agents when the dialing mode for a Campaign changes from Predictive mode to Progressive mode or vice-versa. |
Recommended Desktop Action |
The desktop can choose to display the Campaign information from the attached data. |
The CampaignModeChanged Attached Data table lists the attached data for the CampaignModeChanged event.
Data Key |
Type |
Key Required |
Value |
Description |
---|---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
CampaignModeChanged |
Hard coded event name |
GSW_APPLICATION_ID |
Int |
Yes |
<Unique ID of OCS > |
|
GSW_CAMPAIGN_MODE |
String |
Yes |
Power GVP, Progressive GVP,
Predictive,
Predictive with Seizing,
Preview,
Progressive,
Progressive with Seizing,
and Push Preview. |
Mode in which Campaign is currently running. |
GSW_CAMPAIGN_NAME |
String |
Yes |
<Campaign name> |
|
GSW_CAMPAIGN_
DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign |
GSW_CAMPAIGN _GROUP_DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign Group |
GSW_CAMPAIGN _GROUP_NAME |
String |
Yes |
<Campaign Group name> |
Campaign Group Agent Assignment
OCS sends this event to the desktop when the agent has been assigned to a Campaign Group. CampaignGroupAssigned contains more information.
CampaignGroupAssigned User Event | |
---|---|
Description |
Sent by OCS when the agent assignment has changed |
Recommended Desktop Action |
Process the changed Campaign Group assignment. |
The CampaignGroupAssigned Attached Data table lists the attached data for the CampaignGroupChanged event.
Data Key |
Type |
Key Required |
Value |
Description |
---|---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
CampaignGroupAssigned |
Hard coded event name |
GSW_APPLICATION_ID |
Int |
Yes |
<Unique ID of OCS> |
|
GSW_CAMPAIGN_NAME |
String |
Yes |
<Campaign name> |
|
GSW_CAMPAIGN_
DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign |
GSW_CAMPAIGN _GROUP_DESCRIPTION |
String |
Yes |
<description> or an empty string |
Description of Campaign Group |
GSW_CAMPAIGN _GROUP_NAME |
String |
Yes |
<Campaign Group name> |
CampaignStatusRequest
OCS responds to CampaignStatusRequest with the same message that is delivered to the agent's desktop upon the agent’s login, in the case where the agent is identified as a participant in the active/running dialing session for a Campaign group. Possible status notification messages in a response to this request include:
- CampaignLoaded
- CampaignStarted
- CampaignGroupAssigned
CampaignStatusRequest contains more information.
CampaignStatus Request User Event | |
---|---|
Description |
This request queries information on Campaign Group(s) statuses from OCS at any arbitrary time when the agent desktop needs to synchronize with OCS on current outbound activities for the agent. |
Recommended Desktop Action |
Synchronize with OCS on all Campaigns in which the agent participates. |
The CampaignStatusRequest Attached Data table lists the attached data for the CampaignStatusRequest event.
Data Key |
Type |
Key Required |
Value |
Description |
---|---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
CampaignStatusRequest |
Hard coded request name |
GSW_APPLICATION_IDa |
Int |
No |
OCS application DBID |
Target OCS application DBID |
GSW_REFERENCE_IDb |
Int |
No |
Request ID |
Reference identifier for the request |
a GSW_APPLICATION_ID is an optional attribute in the message. If it is present, it narrows the request for Campaign Group(s) statuses, and only the OCS application with the provided application DBID will process it. If this attribute is absent from the message, then all of the OCS applications that receive this request will process it.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
Campaign Group Status Notification from OCS to Web or Application Server
The notifications about the change in status of a Campaign Group can be sent from OCS to a Web or Application Server, such as Campaign Manager. The data is communicated to the Web or Application server using HTTP POST. The following states and information can be reported:
- Campaign Group loaded
- Campaign Group started
- Campaign Group stopped
- Campaign Group unloaded
- Campaign Group dial mode change
OCS can also periodically send data about active Campaign Groups, with a user-configurable time interval.
For information about the body of the HTTP POST message, see Fields in HTTP POST Requests to Web or Application Server in the Outbound Contact Deployment Guide.
PreviewDialingModeStart Request
The PreviewDialingModeStart request applies to both Preview and Predictive dialing modes. It is used for receiving scheduled calls or Preview mode records. The PreviewDialingModeStart request can be activated by setting the agent_preview_mode_start option in the Campaign Group object or the OCS Application object in Genesys Administrator. If the option is set to true, the desktop must send this request after an agent logs in to receive scheduled call records from OCS. If the agent wants to participate in a preview Campaign, the desktop is required to send this request before sending any preview record request. Without the Preview Dialing Mode Start request, OCS ignores all preview record requests sent from the desktop. This setting and request are most often used to ensure that no rescheduled call records are sent to the desktop directly after the agent logs in.
When the option agent_preview_mode_start is set to false, OCS assumes that the agent is ready to receive any rescheduled call records. If a preview Campaign is running when the agent logs in, a Preview Record Request can be sent anytime without sending a Preview Dialing Mode Start request.
PreviewDialingModeStart
The desktop sends this request to OCS when the Preview dialing mode starts. PreviewDialingModeStart contains more information.
PreviewDIalingModeStart Request | |
---|---|
Description |
Request to activate preview session for the agent. Needed if the agent_preview_mode_start option is set to true.
|
OCS Action |
Link agent DN and Campaign ID. |
The PreviewDialingModeStart Attached Data table lists the attached data for the PreviewDialingModeStart request.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
PreviewDialingModeStart
|
GSW_APPLICATION_ID |
Int |
Yes |
Unique ID of OCS. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
PreviewDialingModeStartAcknowledge
OCS sends this event to the desktop to acknowledge the start of Preview dialing mode. PreviewDialingModeStartAcknowledge contains more information.
PreviewDialingModeStartAcknowledge | |
---|---|
Description |
OCS accepts a desktop request to initiate preview session. |
Recommended Desktop Action |
The desktop can send requests to OCS and receive callbacks. |
The Preview Dialing Mode Start Acknowledge Attached Data table lists the attached data for the PreviewDialingModeStartAcknowledge event.
Data Key |
Key Required |
Description | |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
PreviewDialingModeStartAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
Unique ID of OCS |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign |
PreviewDialingModeOver
The desktop sends this request to OCS when the Preview dialing mode is over. PreviewDialingModeOver contains more information.
PreviewDialingModeOver User Event | |
---|---|
Description |
Request to terminate preview session for the agent. |
OCS Action |
Remove the link between agent DN and Campaign ID. |
The PreviewDialingModeOver Attached Data table lists the attached data for the PreviewDialingModeOver request.
Data Key |
Type |
Key Required |
Description |
GSW_AGENT_REQ_TYPE |
String |
Yes |
PreviewDialingModeOver
|
GSW_APPLICATION_ID |
Int |
Yes |
Unique ID of OCS |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
PreviewDialingModeOverAcknowledge
OCS sends this event to the desktop to acknowledge the end of Preview dialing mode. PreviewDialingModeOverAcknowledge contains more information.
PreviewDialingModeOverAcknowledge User Event | |
---|---|
Description |
OCS accepts a desktop request to close preview session. |
Recommended Desktop Action |
Desktop should disable the function for sending further requests to OCS and for receiving callbacks. |
The PreviewDialingModeOverAcknowledge Attached Data table lists the attached data for the PreviewDialingModeOverAcknowledge event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
PreviewDialingModeOverAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
Unique ID of OCS |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
ReadyTime Request
This request is used to increase campaign performance in the Predictive or Predictive with seizing dialing modes for small groups. This request only applies when the predictive_algorithm option is set to small_group or advanced_small_group and Overdial Rate is used as the optimization parameter.
Through this event, the agent’s desktop provides OCS with an estimate of the time (in seconds).that the agent will need to finish processing of the current outbound call and before he or she will go to the Ready state.
Note: |
|
ReadyTime
The desktop sends this ReadyTime request to OCS, providing the estimated time (in seconds) remaining until the agent will become Ready. ReadyTime Request contains more information.
ReadyTime Agent Request | |
---|---|
Description |
Provides the time in which the agent will become Ready.
|
OCS Action |
Use this information in the predictive algorithm when calculating the number of outbound calls to be placed in the next seconds |
The ReadyTime Attached Data table lists the attached data for the ReadyTime request.
Data Keyb |
Type |
Key Required |
Value |
Description |
GSW_AGENT_REQ_TYPE |
String |
Yes |
ReadyTime
|
Hard coded request name |
GSW_READY_TIME |
Int |
Yes |
<Expected time in seconds> |
Expected time to go ready in seconds (N), where N >0 |
GSW_APPLICATION_ID |
Int |
Yes |
<Unique ID of OCS> |
Target OCS application DBID |
GSW_RECORD_HANDLEc |
Int |
Yes |
<Unique record handle> |
Record handle for the record currently on the agent’s desktop |
GSW_REFERENCE_IDd |
Int |
No |
<Reference ID> |
Reference identifier for the request |
a ReadyTime can only be applied to a record currently being processed by the agent.
b ReadyTime supports only those key-value pairs listed in this table. Any other pairs will be ignored by OCS.
c The record handle is a mandatory attribute because it identifies the record currently being process by the agent for OCS.
d GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
ReadyTimeAcknowledge
OCS sends this event to the desktop to acknowledge the ReadyTime request.or sends an error (see ReadyTime Error). ReadyTimeAcknowledge contains more information.
ReadyTimeAcknowledge User Event | |
---|---|
Description |
OCS acknowledges receiving the event to the desktop. |
Desktop Action |
Ensure the record gets finalized and the agent goes Ready after the communicated period of time elapses. |
The ReadyTimeAcknowledge Attributes table lists the attributes for the ReadyTimeAcknowledge event.
Data Key |
Type |
Key Required |
Value |
Description |
---|---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
ReadyTimeAcknowledge
|
Hard coded event |
GSW_APPLICATION_ID |
Int |
Yes |
<Unique ID of OCS> |
Originator OCS application DBID |
GSW_RECORD_HANDLE |
Int |
Yes |
<Unique record handle> |
Record handle value, as passed in the ReadyTime request |
ReadyTime Error
If OCS is not able to properly process the ReadyTime, one of the errors in ReadyTime Error Codes is returned.
Error Code |
Error Description |
Returned When: |
---|---|---|
101 |
Invalid request |
Campaign Group dialing mode is not Predictive (Predictive ASM) |
102 |
Invalid request; attribute is not found |
A mandatory attribute is missing from the request |
103 |
Invalid request data; bad attribute value |
Time to go ready is less than or equal to 0 |
104 |
Agent not found |
This agent is unknown to OCS |
112 |
No call found for the record handle |
The record handle is invalid |
120 |
Duplicate request is not allowed |
The ReadyTime request is submitted more than once for the same record handle |
Preview Record Request and Acknowledgment
The desktop can send a preview record request after receiving the CampaignStarted event with the additional key-value GSW_CAMPAIGN_MODE set to Preview. The desktop can then begin working in Preview dialing mode. OCS has the option of setting PreviewDialingModeStart as either true or false. When set totrue, OCS waits for the PreviewDialingModeStart request from the desktop before allowing the agent to issue a PreviewRecord request. When set to false, the desktop can send a PreviewRecord request without sending the PreviewDialingModeStart request for receiving scheduled calls or preview records.
PreviewRecordRequest
The desktop sends this request to OCS to request preview records. PreviewRecordRequest contains more information.
PreviewRecordRequest | |
---|---|
Description |
Request to send preview record. |
OCS Action |
Conditionally sends acknowledgment, depending on setting of the PreviewDialingModeStart event. See PreviewDialingModeStart Request. |
The PreviewRecordRequest Attached Data table lists the attached data for PreviewRecordRequest.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
PreviewRecordRequest
|
GSW_APPLICATION_ID |
Int |
Yes |
Unique ID of OCS |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_REFERENCE_IDa |
Int |
No |
Reference identifier for the request. |
a GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
PreviewRecord
The following event is sent by OCS to the desktop in response to a request for records in the Preview dialing mode. PreviewRecord contains more information. See Reserved Keys and Enumeration Table for predefined attribute values.
PreviewRecord User Event | |
---|---|
Description |
Preview record to dial. |
Recommended Desktop Action |
Perform “Call Work" (the agent performs work associated with the call, such as dialing or updating a record). |
The PreviewRecord Attached Data table lists the attached data for the PreviewRecord event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
PreviewRecord
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_ATTEMPTS |
Int |
No |
Number of attempts for the record. This key is used when a new record is added. |
GSW_CALL_RESULT |
Int |
Yes |
Call Result set by dialer or saved from previous call. (See the Enumeration Table.) |
GSW_CALL_TIME |
String |
No |
System time when record was called, in seconds from 1/1/70 (GMT). |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_CHAIN_ID |
Int |
Yes |
Unique chain ID |
GSW_CPN_DIGITS |
String |
Yes |
CPN Digits as configured for the given record. |
GSW_FROM |
Int |
Yes |
GSW_FROM - GSW_UNTIL: Time frame when a record can be called, seconds from midnight. |
GSW_PHONE |
String |
Yes |
Phone number to dial. |
GSW_PHONE_TYPE |
Int |
No |
Customer phone type (See the Enumeration Table). |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_TZ_OFFSET |
Int |
Yes |
Offset (time difference) in seconds between UTC and a particular time zone. It may contain different values throughout the year if Daylight Savings Time (DST) is used for the specified time zone. |
GSW_UNTIL |
Int |
No |
Time until, seconds since midnight. |
GSW_CONTACT_MEDIA_TYPE |
String |
Yes |
Describes the media type used for contact. |
GSW_CAMPAIGN _GROUP_NAME |
String |
Yes |
The name of the Campaign Group. |
GSW_CAMPAIGN_GROUP__
DESCRIPTION |
String |
Yes |
The description of the Campaign Group. Value may be an empty string. |
Custom fields |
Any |
No |
Custom fields. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
No Records Available
OCS sends this event to the desktop when there are no more Preview records to send or if OCS has not filled the buffer yet. The desktop repeats its PreviewRecordRequest in a few seconds. No Records Available contains more information.
No Records Available User Event | |
---|---|
Description |
No more records in the OCS internal buffer. |
Recommended Desktop Action |
Try to send a request later. |
The No RecordsAvailable Attached Data table lists the attached data for the No Records Available event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
PreviewRecordRequest
|
GSW_ERROR_NUMBER |
Int |
Yes |
Error code. See Error Names and Codes. |
GSW_ERROR |
String |
Yes |
No Records Available. |
GSW_APPLICATION_ID |
Int |
Yes |
OCS Application DBID |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
NoRunningPreviewCampaigns
OCS issues this message if the agent requests a record for a preview Campaign that is not currently running. NoRunningPreviewCampaigns contains more information.
NoRunningPreviewCampaigns User Event | |
---|---|
Description |
No Campaigns are running in Preview mode |
Recommended Desktop Action |
Try to send a request later. |
The No Running Preview Campaign Error table lists the attached data for the NoRunningPreviewCampaign error.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
PreviewRecordRequest
|
GSW_ERROR_NUMBER |
Int |
Yes |
Error code. See Error Names and Codes. |
GSW_ERROR |
String |
Yes |
No Running Preview Campaign |
GSW_APPLICATION_ID |
Int |
Yes |
OCS Application DBID |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
Updating Call Results and Custom Fields
The UpdateCallCompletionStats request updates Genesys modifiable mandatory fields and custom fields in a record to OCS.
For example, in Predictive dialing mode, this request can be used to overwrite the call result detected by call progress detection when needed. Or the desktop can overwrite a call result answer with the call result wrong party. (See the list of predefined call results on Call Result Types.)
This request can be sent multiple times before the RecordProcessed request is sent. Also, the record can still be canceled or rejected (using RecordCancel or RecordReject) before the final RecordProcessed request is sent. Use the UpdateCallCompletionStats when the record is still active on the agent desktop.
The RecordProcessed request signals the final transaction for the record. The request updates all fields (including call completion statistics and custom fields) in OCS and returns the record to the database.
After the request is sent, the record cannot be canceled or rejected. Use the RecordProcessed request when the agent finishes with a record and returns it to the database. Changes made to the database after the RecordProcessed request is used are final.
If you want OCS to apply a treatment to the call result entered in UpdateCallCompletionStats request, then the final RecordProcessed request for this record should contain an optional GSW_TREATMENT attribute, which has a possible value of RecordTreatPersonal or RecordTreatCampaign.
If the value of this attribute is RecordTreatCampaign, OCS will change the status of this record to Campaign Rescheduled and treat it as regular record rescheduled by treatment.
If the value of this attribute is RecordTreatPersonal, OCS will change the status of this record to Personal Rescheduled and treat it similarly to Personal CallBack.
If GSW_TREATMENT attribute is omitted in the RecordProcessed request, no treatment will be applied to the record.
Updating Call Results and Custom Fields Data Flow illustrates a typical data flow when updating Call Results and Custom Fields.
UpdateCallCompletionStats
The desktop sends this request to OCS to update a record on completion of a call.UpdateCallCompletionStats contains more information.
UpdateCallCompletionStats Request | |
---|---|
Description |
Desktop sends to update record details. Intermediate update. |
OCS Action |
Update record fields internally; wait for next requests. |
The UpdateCallCompletionStats Attached Data table lists the attached data for the UpdateCallCompletionStats request.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
UpdateCallCompletionStats
|
GSW_CALL_RESULT |
Int |
No |
Call Result sent to change automatically detected call result. See Enumeration Table and Call Result Types. |
GSW_FROM |
Int |
No |
GSW_FROM - GSW_UNTIL: Time frame when a record can be called, seconds from midnight. |
GSW_UNTIL |
Int |
No |
Time until, seconds since midnight. |
GSW_PHONE |
String |
No |
Customer’s phone number. |
GSW_PHONE_TYPE |
Int |
No |
Customer phone type. See Enumeration Table. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. Do not change this value. |
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
Custom Fields |
Any |
No |
Custom Fields. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
UpdateCallCompletionStatsAcknowledge
OCS sends this event to the desktop to acknowledge a call completion notification. UpdateCallCompletionStatsAcknowledge contains more information.
UpdateCallCompletionStatsAcknowledge User Event | |
---|---|
Description |
OCS accepts a desktop request to update a record’s fields. |
Recommended Desktop Action |
Continue “Call Work" (the agent performs work associated with the call, such as dialing or updating a record). |
The UpdateCallCompletionAcknowledge Attached Data table lists the attached data for the UpdateCallCompletionStatsAcknowledge event.
Data Key |
Type |
Key Required |
Description |
GSW_USER_EVENT |
String |
Yes |
UpdateCallCompletionStatsAcknowledge or error. |
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. Do not change this value. |
RecordProcessed
The desktop sends this request to OCS to indicate that the agent has finished with a record and that it should be processed and sent to the database.
The RecordProcessed request is mandatory in Preview dialing mode and optional in the other dialing modes. When the record_processed option is set to true, it must be sent in all cases. [CommunicationProtocols#RecordProcessed|RecordProcessed]] contains more information.
RecordProcessed Request | |
---|---|
Description |
Desktop sends event to indicate that record is processed. OCS should update record if it is provided. |
OCS Action |
Update a record and its chain in DB; use all changes made by previous requests regarding the records in the chain. If a RecordProcessed event has the GSW_TREATMENT field correctly specified, OCS applies a treatment to the record. |
The RecordProcessed Attached Data table lists the attached data for the RecordProcessed request.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
RecordProcessed
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALL_RESULT |
Int |
No |
Call Result sent to change automatically detected call result. See Enumeration Table and Call Result Types. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_FROM |
Int |
No |
GSW_FROM - GSW_UNTIL: Time frame when a record can be called, seconds from midnight. |
GSW_UNTIL |
Int |
No |
Time until, seconds since midnight. |
GSW_PHONE |
String |
No |
Customer’s phone number. |
GSW_PHONE_TYPE |
Int |
No |
Customer phone type. See Enumeration Table. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
GSW_TREATMENT |
String |
No |
Specifies the treatment type that should be applied to a record chain when RecordProcessed event is processing. Possible values are RecordTreatPersonal or RecordTreatCampaign
. |
Custom Fields |
Any |
No |
Custom Fields. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
RecordProcessedAcknowledge
OCS sends this event to the desktop to acknowledge a RecordProcessed notification. RecordProcessedAcknowledge contains more information.
RecordProcessAcknowledge User Event | |
---|---|
Description |
OCS confirms that the record has been executed. |
Recommended Desktop Action |
Remove the record and the chain if requested. |
The RecordProcessedAcknowledge Attached Data table lists the attached data for RecordProcessedAcknowledge event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
RecordProcessedAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
Chained Records
If a customer cannot be reached at the primary contact number (for example, Home Phone), the agent may try a second, or subsequent, record in a chain of contact numbers (for example, Business Phone). For the primary contact number, the chain_n field is represented by zero or any positive number. When using the ChainedRecordRequest, the attached data of the request must include the initial record’s GSW_RECORD_HANDLE.
The ChainedRecordRequest can be used in the Preview or Predictive dialing mode. However, InPredictive dialing mode the user should use one of the following:
- The Next In Chain treatments, to let the dialer handle the chain record automatically.
- A ChainedRecordRequest to handle chain records manually. Never use both in the same Campaign. Chained Record Data Flow is an example of a typical chained record data flow.
ChainedRecordRequest
The desktop sends this request to OCS to request a record chain. ChainedRecordRequest contains more information.
ChainedRecordRequest | |
---|---|
Description |
Request to send all records from the chain defined by RecordHandle. |
OCS Action |
Send rest of a chain to the desktop. |
The ChainedRecordRequest Attached Data table lists the attached data for ChainedRecordRequest.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
ChainedRecordRequest
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group |
GSW_CAMPAIGN_NAME |
String |
No |
Name of the Campaign. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
ChainedRecord
The following event is sent by OCS to the desktop in response to a ChainedRecordRequest event. Non-mandatory fields should be sent only if the send_attribute option is defined. ChainedRecord contains more information.
ChainedRecord User Event | |
---|---|
Description |
Chain record delivered. |
Recommended Desktop Action |
Continue Call Work (the agent performs work associated with the call, such as dialing or updating a record). |
The ChainedRecord Attached Data table lists the attached data for the ChainedRecord event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
ChainedRecord
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_ATTEMPTS |
Int |
No |
Number of attempts for the record. This key is used when a new record is added. |
GSW_CALL_TIME |
String |
No |
System time when record was called, in seconds from 1/1/70 (GMT). |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CALL_RESULT |
Int |
Yes |
Call Result set by dialer or saved from previous call. (See the Enumeration Table.) |
GSW_CAMPAIGN_NAME |
String |
No |
Name of the Campaign. |
GSW_CHAIN_ID |
Int |
Yes |
Unique chain ID. |
GSW_FROM |
Int |
No |
GSW_FROM - GSW_UNTIL: Time frame when a record can be called, seconds from midnight. |
GSW_PHONE |
String |
Yes |
Customer’s phone number. |
GSW_PHONE_TYPE |
Int |
No |
Customer phone type (See the Enumeration Table). |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_TZ_OFFSET |
Int |
No |
Offset (time difference) in seconds between UTC and a particular time zone. It may contain different values throughout the year if Daylight Savings Time (DST) is used for the specified time zone. |
GSW_UNTIL |
Int |
No |
Time until, seconds since midnight. |
GSW_CONTACT_MEDIA_TYPE |
String |
Yes |
Describes the method of contact. |
GSW_CAMPAIGN _GROUP_NAME |
String |
Yes |
The name of the Campaign Group. |
GSW_CAMPAIGN_GROUP__
DESCRIPTION |
String |
Yes |
The description of the Campaign Group. Value may be an empty string. |
Custom fields |
Any |
No |
Custom Fields. |
ChainedRecordsDataEnd
The following event is sent by OCS to the desktop when all records in a chain have been sent. ChainedRecordsDataEnd contains more information.
ChainedRecordsDataEnd User Event | |
---|---|
Description |
All chain has been delivered. |
Recommended Desktop Action |
Continue “Call Work" (the agent performs work associated with the call, such as dialing or updating a record). |
The ChainedRecordsDataEnd Attached Data table lists the attached data for the ChainedRecordsDataEnd event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
ChainedRecordsDataEnd
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_CHAIN_ID |
Int |
Yes |
Unique chain ID. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
Rejecting Records
The term reject means that the agent does not want to call the record at this time.
For example, an agent might reject a record already delivered to the desktop before going on break or when leaving and logging out for the day. This is a good practice because it prevents OCS from updating these records as Stale when the stale_clean_timeout option has expired.
The rejected record is returned to the database with the following fields modified: record_type is reset to General, record_status is reset to Ready, agent_id is reset to the ID of the agent that rejected the record. It will be retrieved again with the next set of records from the database, for distribution by OCS. The agent ID will be overwritten again when the next agent receives the record.
The RejectRecord Data Flow diagram shows a typical RejectRecord data flow.
RecordReject
The desktop sends this request to OCS to reject a record. When a record is rejected by an agent, the Agent ID field of the call record is updated to that agent’s ID. RecordReject contains more information.
RecordReject Request | |
---|---|
Description |
Desktop sends a request to indicate that preview record or scheduled call will not be dialed by this agent. Record should be re-sent to another agent. This is the final event for the record, which means the desktop does not need to send RecordProcessed after this request. |
OCS Action |
OCS marks this record, and the rest of the chain, as general and ready.
|
The RecordReject Attached Data table lists the attached data for the RejectRecord event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
RecordReject
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
RecordRejectAcknowledge
The following event is sent to the desktop by OCS to acknowledge a rejected record. RecordRejectAcknowledge contains more information.
RecordRejectAcknowledge User Event | |
---|---|
Description |
OCS accepts RejectRecord request. |
Recommended Desktop Action |
Kill the record and the chain. |
The RecordRejectAcknowledge Attached Data table lists the attached data for the RecordRejectAcknowledge event.
Data Key |
Type |
Key Required |
Description |
GSW_USER_EVENT |
String |
Yes |
RecordRejectAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
Canceling Records
The desktop can send a RequestRecordCancel event to notify OCS to cancel a record to be dialed by a Campaign. Agents able to send this type of request include:
- Outbound agents: Those who work only in outbound Campaigns. See Example 1.
- Blended agents: Those who work simultaneously in outbound and inbound Campaigns. See Example 2.
- Inbound agents: Those who work on inbound calls. See Example 3.
The following are three examples of record cancellations.
Example 1
- An agent working on a Campaign has a record on the desktop.
- After reviewing the contact history of the call record, the agent decides no outbound call is required.
- The desktop then sends a RequestRecordCancel (with GSW_RECORD_HANDLE) to OCS.
- OCS updates the record status to cancelled. This record will no longer be handled by the Campaign.
Example 2
- An agent is working in a blended environment (inbound and outbound) and has outbound agent desktop at his disposal.
- The agent accepts an inbound call and sees that there is no longer a need for an outbound call to the customer.
- This agent then sends RequestRecordCancel (with the phone number GSW_PHONE, but without GSW_RECORD_HANDLE) to OCS by means of Outbound-Desktop protocol.
- OCS attempts to find a record that has the matching phone number in OCS memory and in calling lists assigned to loaded Campaigns/Campaign groups.
- If a match is found, OCS updates the record as cancelled in OCS memory (if applicable) and/or in calling lists.
- If a match is found on other desktops within the Campaign Groups, OCS sends a RecordCancel notification to the desktop(s) where that record is located.
- The agent deletes the record from the desktop application memory to ensure the record will not be dialed.
Example 3
- An agent working on inbound calls only receives information that there is no need for an outbound call to a particular customer.
- The agent sends a CM_ReqCancelRecord (with the phone number GSW_PHONE, but without GSW_RECORD_HANDLE) to OCS by means of Communication DN API. (See Record Cancellation from a Third-Party Application.)
- OCS attempts to find a record that has the matching phone number in OCS memory and in calling lists assigned to loaded Campaigns/Campaign groups.
- If a match is found, OCS updates the record as cancelled in OCS memory (if applicable) and/or in calling lists.
- If a match is found on other desktops within the Campaign Groups, OCS sends a RecordCancel notification to the desktop(s) where that record is located.
- The agent deletes the record from the desktop application memory to ensure the record will not be dialed.
The remaining sections pertaining to record cancellation in this chapter are applicable to OCS-Desktop protocol. For information about record cancellation from third-party applications, see Communication DN API.
Record Cancel Requests
This section describes record cancel requests and acknowledgments.
RequestRecordCancel
The desktop sends this request to OCS for one of the following reasons:
- To cancel a record or a chain.
- To cancel a record for which the call has already been dialed, and its record displayed on the desktop.
In both cases, the record is marked as Canceled in the database. RequestRecordCancel contains more information.
RequestRecordCancel Request | |
---|---|
Description |
Desktop sends a request to OCS to either: |
OCS Action |
Cancel record. |
The RequestRecordCancel Attached Data table lists the attached data for the RequestRecordCancel request.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
RequestRecordCancel
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. Always required. |
GSW_CALLING_LIST |
String |
No |
Name of the calling list. Required only if GSW_RECORD_HANDLE is specified. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group |
GSW_CAMPAIGN_NAME |
String |
No |
Name of the Campaign. Required only if GSW_RECORD_HANDLE is specified. |
GSW_CHAIN_ATTR |
String |
No |
Flag determining whether to update the record chain or just the single record. Values are AllChain (default) or RecordOnly
. |
GSW_CUSTOMER_IDb |
String |
No |
A user-defined field in the Calling List table that serves as a customer identifier. |
GSW_PHONEb |
String |
No |
Customer’s phone number. |
GSW_RECORD_HANDLEb |
Int |
No |
Unique Record Identifier. |
GSW_REFERENCE_IDc |
Int |
No |
Reference identifier for the request. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b Record cancellation requests can identify sets of records by the record handle, phone number, and customer ID. If more than one record identifier is included in the same request, the identifiers are prioritized as follows: record handle (highest), phone (middle), and customer ID (lowest).
c GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
Mandatory Fields
This statement covers two scenarios and the data key fields required for them. They vary, depending on what is specified in the event.
- GSW_APPLICATION_ID
- if (GSW_RECORD_HANDLE is specified)
- {
- GSW_CAMPAIGN_NAME
- GSW_CALLING_LIST
- }
- {
- else
- {
- GSW_PHONE
- }
- {
For example, if GSW_RECORD_HANDLE is specified, GSW_CAMPAIGN_NAME and GSW_CALLING_LIST must be specified.
If OCS receives RequestRecordCancel with the required fields for either of these two scenarios, OCS sends RecordCancelAcknowledge to the desktop. If any of the required fields for these scenarios are missing, OCS sends an error message to the desktop.
The field GSW_CHAIN_ATTR directs the update of chained records. If omitted or set with the AllChain value, all chained records are updated as Canceled; if the field has the RecordOnly value, the record with the requested GSW_PHONE is marked as Canceled, but other chained records are Updated.
Under particular conditions, records with the same chain_id are not all cancelled by RequestRecordCancel. For more information, see the Filters that Break a Chain of Records section in the Outbound Contact 8.1 Deployment Guide.
RecordCancelAcknowledge
OCS sends this event to the desktop to acknowledge a RequestRecordCancel event. RecordCancelAcknowledge contains more information.
RecordCancelAcknowledge User Event | |
---|---|
Description |
OCS accepts a desktop request to cancel a record. |
Recommended Desktop Action |
Remove the record and the chain from desktop. |
The RecordCancelAcknowledge Attached Data table lists the attached data for the RecordCancelAcknowledge event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
RecordCancelAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. Always required. |
GSW_CALLING_LIST |
String |
No |
Name of the calling list. Required only if GSW_RECORD_HANDLE is specified. |
GSW_CAMPAIGN_NAME |
String |
No |
Name of the Campaign. Required only if GSW_RECORD_HANDLE is specified. |
GSW_CHAIN_ATTR |
String |
No |
Flag determining whether to update the record chain or just the single record. Values are AllChain (default) or RecordOnly
. |
GSW_MESSAGE |
String |
No |
OCS message (“Incomplete processing: record(s) on desktop") notifying the RequestRecordCancel requester (agent desktop or third party) about OCS’s inability to completely handle the cancellation request, because calls records are still active on an agent’s desktop. |
GSW_PHONE |
String |
No |
Customer’s phone number. |
GSW_RECORD_HANDLE |
Int |
No |
Unique Record Identifier. |
- Scenario 1: If GSW_RECORD_HANDLE is present, then GSW_CALLING_LIST and GSW_CAMPAIGN NAME become mandatory, in addition to GSW_APPLICATION_ID.
- Scenario 2: If GSW_PHONE is present, then only GSW_APPLICATION_ID is mandatory.
RecordCancel Notification
OCS sends this unsolicited notification to the desktop to cancel a record. This occurs, for example, when an inbound agent sends a CM_ReqCancelRecord from a third-party application to OCS, and OCS finds a record with the same phone number (GSW_PHONE) or the same customer ID (GSW_CUSTOMER ID) on another desktop. When OCS sends a RecordCancel notification to the desktop, the agent should remove the record from the desktop. RecordCancel contains more information.
RecordCancel User Event | |
---|---|
Description |
OCS sends this event to the desktop to indicate that this record should not be dialed. Applicable for preview records and scheduled calls. |
Recommended Desktop Action |
Delete the record if GSW_CHAIN_ATTR= RecordOnly
. Delete the chain if the RecordCancel contains GSW_CHAIN_ATTR=AllChain
. |
The RecordCancel Attached Data table lists the attached data for the RecordCancel event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
RecordCancel
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_CHAIN_ATTR |
String |
No |
Flag determining whether to update the record chain or just the single record. Values are AllChain or RecordOnly. (Default = AllChain) |
GSW_PHONE |
String |
Yes |
Customer’s phone number. |
GSW_CUSTOMER_ID |
Int |
Yes |
Customer’s ID. |
Canceled and DoNotCall Chained Records
The GSW_CHAIN_ATTR key applies only to cancelled and DoNotCall chained records. The value of the chained record attribute determines the next action when a record that is part of a chain is marked as Cancel orDoNotCall:
- When the value is set to RecordOnly, only that particular record in the chain is marked with Cancel or DoNotCall
- When the value is set toAllChain or is not specified, the entire chain is marked with the same Cancel or DoNotCall status as the first record.
OCS ignores the status of the GSW_CHAIN_ATTR key when processing UpdateCallCompletionStats, RescheduleRecord, and RecordProcessed requests.
If a chain of records is on an agent's desktop and a Cancel or DoNotCall by phone number or customer ID (AllChain) request is sent to OCS, OCS distributes the RecordCancel message to the desktop application.
Submitting DoNotCall Requests
The desktop can send a DoNotCall (DNC) request to OCS to prevent a record from being dialed by any Campaign. Agents able to send this type of request include:
- Outbound agents: Those who work only in outbound Campaigns. See Example 1.
- Blended agents: Those who work simultaneously in outbound Campaigns and on inbound calls. See Example 2.
- Inbound agents: Those who work on inbound calls. See Example 3.
The following are three examples of DoNotCall request handling.
Example 1
- While an agent is working on an outbound Campaign, a called party asks the agent not to call him (or her) again and wants his (or her) name or phone number removed from the contact list.
- To accomplish this, the Agent sends a DoNotCall request (with GSW_RECORD_HANDLE) to OCS.
- Using the GSW_RECORD_HANDLE provided, OCS identifies the record and updates the record type as NoCall.
- OCS enters the phone number or the customer ID of this record in the gsw_donotcall_list (table).
Example 2
- An agent is working in a blended environment (inbound and outbound) and has an agent desktop at his disposal. The agent accepts an inbound call from a customer who requests no contact with him (or her) in the future.
- The desktop sends a DoNotCall request with the phone number (GSW_PHONE) or the customer ID (GSW_CUSTOMER_ID) but without GSW_RECORD_HANDLE to OCS. OCS saves the phone number in the gsw_donotcall_list (table).
- OCS attempts to find a record that has the matching phone number in OCS memory and in calling lists assigned to loaded Campaigns/Campaign groups.
- If a match is found, OCS updates the record as NoCall in OCS memory (if applicable) and/or in calling lists.
- If a match is found on other desktops within the Campaign Group, OCS sends a RecordCancel notification to the desktop(s) where that record is located.
- The agent deletes the record from the desktop application memory to ensure the record will not be dialed.
Example 3
- An agent working only on inbound calls receives a call from a customer who does not want to be contacted again.
- The agent sends a CM_ReqDoNotCall request (with GSW_PHONE or GSW_CUSTOMER_ID) to OCS by means of Communication DN API. (See Communication DN API.)
- OCS saves the phone number in the gsw_donotcall_list (table).
- OCS attempts to find a record that has the matching phone number in OCS memory and in calling lists assigned to loaded Campaigns/Campaign groups.
- If a match is found, OCS updates the record as NoCall in OCS memory (if applicable) and/or in calling lists.
- If a match is found on other desktops within the Campaign Group, OCS sends a RecordCancel notification to the desktop(s) where that record is located.
- The agent deletes the record from the desktop application memory to ensure the record will not be dialed.
The remaining sections pertaining to DoNotCall requests in this chapter are applicable to OCS-Desktop protocol. For information about DoNotCall requests from third-party applications, see Communication DN API. OCS stores records marked as NoCall in the gsw_donotcall_list (one per tenant) and monitors them in the following way: When a tenant starts a dialing session for a Campaign, OCS retrieves all records that are ready to be dialed from a calling list and checks them against the gsw_donotcall_list. If a record retrieved from a calling list matches a record marked NoCall in the gsw_donotcall_list, OCS does not dial this record, but instead returns it to the calling list and changes its record_type to NoCall.
DoNotCall (Request)
The desktop sends this request for OCS to mark a record DoNotCall. OCS maintains the DoNotCall table (gsw_donotcall_list), which agents can update during a Campaign by using this protocol. DoNotCall contains more information.
DoNotCall Request | |
---|---|
Description |
Agent requests the number or customer ID in a record not to be called again. |
OCS Action |
Update gsw_donotcall_list. Mark record NoCall
. |
The DoNotCall Attached Data table lists the attached data for the DoNotCall request.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
DoNotCall
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Noa |
Name of the calling list. |
GSW_Campaign_GROUP_NAMEb |
String |
No |
Name of the Campaign Group |
GSW_CAMPAIGN_NAME |
String |
Noa |
Name of the Campaign. |
GSW_CHAIN_ATTR |
String |
Noc |
Flag determining whether to update the record chain or just the single record. Values are AllChain or RecordOnly. (Default = AllChain) |
GSW_MESSAGE |
String |
No |
DoNotCall message. Message to be written in DNC log. |
GSW_PHONE |
String |
Nob |
Customer’s phone number. |
GSW_CUSTOMER_ID |
String |
Noc |
A user-defined field in the Calling List table that serves as a customer identifier for DoNotCall requests. |
GSW_RECORD_HANDLE |
Int |
Noa |
Unique Record Identifier. |
GSW_REFERENCE_IDd |
Int |
No |
Reference identifier for the request. |
a If GSW_RECORD_HANDLE is specified, then GSW_CALLING_LIST and GSW_CAMPAIGN_NAME are required.
b Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
c If GSW_RECORD_HANDLE is not specified, then either GSW_PHONE or GSW_CUSTOMER_ID must be present. See Mandatory Fields.
If the GSW_RECORD_HANDLE attribute is specified, then the attribute GSW_CHAIN_ATTR = AllChain takes effect. In this case, OCS finds the chain to which the current record belongs and updates this chain in the calling list(s) as NoCall. Then, it inserts all of the phone numbers in the chain into the DoNotCall table.
If either the GSW_PHONE or GSW_CUSTOMER_ID attribute is specified, then OCS updates the calling list(s) and inserts only the phone number/Customer ID from the request into the DoNotCall table. It will not insert all of the other phone numbers/Customer IDs from the chain into the DoNotCall table.
If the GSW_CHAIN_ATTR = RecordOnly attribute is specified, then only the specified record is marked as DoNotCall. All other records in the chain can be considered for dialing.
d GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
Mandatory Fields
This statement covers two scenarios and the data key fields required for them. These vary, depending on what is specified in the event.
- GSW_APPLICATION_ID
- if (GSW_RECORD_HANDLE is specified)
- {
- GSW_CAMPAIGN_NAME
- GSW_CALLING_LIST
- }
- GSW_CAMPAIGN_NAME
- else
- {
- At least one from the following:
- GSW_PHONE
- GSW_CUSTOMER_ID
- At least one from the following:
- }
For example, if GSW_RECORD_HANDLE is specified, GSW_CAMPAIGN_NAME and GSW_CALLING_LIST must be specified.
DoNotCallAcknowledge
This event acknowledges a DoNotCall request. DoNotCallAcknowledge contains more information.
DoNotCallAcknowledge User Event | |
---|---|
Description |
Confirmation that DoNotCall was accepted. |
Recommended Desktop Action |
Delete the record and the chain. |
The DoNotCallAcknowledge Attached Data table lists the attached data for the DoNotCallAcknowledge event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
DoNotCallAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Noa |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Noa |
Name of the Campaign. |
GSW_CHAIN_ATTR |
String |
No |
Flag determining whether to update the record chain or just the single record. Values are AllChain
or RecordOnly. (Default = RecordOnly) |
GSW_PHONE |
String |
Nob |
Customer’s phone number. |
GSW_CUSTOMER_ID |
String |
Nob |
A user-defined field in the Calling List table that serves as a customer identifier for DoNotCall requests. |
GSW_RECORD_HANDLE |
Int |
Noa |
Unique Record Identifier. |
GSW_DURATION |
Int |
No |
DNC duration, in seconds c |
a If GSW_RECORD_HANDLE is specified, then GSW_CALLING_LIST and GSW_CAMPAIGN_NAME are required.
b If GSW_RECORD_HANDLE is not specified, then either GSW_PHONE or GSW_CUSTOMER_ID must be present. See Mandatory Fields.
c OCS adds this value to the current time and stores the result as the expiration date in the Do Not Call table.
Scheduling and Rescheduling Records
An agent can reschedule any record on the desktop. There are two methods for rescheduling records:
- Use a RecordReschedule event to reschedule a call.
- Use a ScheduledRecordReschedule event when a rescheduled call cannot be completed and must be set for another time.
A record is typically rescheduled during a call when a customer requests a callback at a certain time. The agent sends a RecordReschedule to OCS and receives a RecordRescheduleAcknowledge in return. In Outbound Desktop Protocol Version 6, there is no difference between RecordReschedule and ScheduledRecordReschedule.
If the time of the requested callback is out of the boundaries of the “daily from" - “daily till" for the record: When the call is dialed, OCS recalculates the callback time by adding an appropriate amount of time to the original value, so the callback time occurs within the boundaries.
Callbacks can be assigned to either an individual or a group. Individual or Campaign Group callbacks can be made in any dialing mode. In the Predictive mode, group callbacks can be dialed by OCS and are treated like any other outbound call. See the predictive_callback option in the Outbound Contact 8.1 Deployment Guide for more information.
If scheduling callbacks is activated on the desktop, the agent can be notified to make a scheduled call by receiving the UserEvent ScheduledCall. The agent can be either a specific agent following up on a previous call or an agent assigned to the call from a group. For example, an agent is logged in and participating in a Campaign. The database indicates that a customer should be called at a certain time. When this time comes, OCS retrieves the record and attempts to locate the agent scheduled to return that call.
The agent has the option of accepting, rescheduling, or rejecting the callback. If the agent rejects a scheduled call record, it is returned to OCS with its record_type marked General and its record_status marked Ready. That is, this record is handled by OCS as a brand-new record, losing its scheduled call status. If rejecting a record is not desirable, use the ScheduledRecordReschedule request to reschedule the record with a different callback type or different callback time.
RecordReschedule
The desktop sends this request to OCS to reschedule a record. RecordReschedule contains more information.
RecordReschedule Request | |
---|---|
Description |
Request reschedule of Preview Record, Predictive Call, or Scheduled Call. |
OCS Action |
Update a record chain and reschedule the record. |
The RecordReschedule Attached Data table lists the attached data for a RecordReschedule event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
RecordReschedule
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLBACK_TYPE |
String |
Yes |
Type of callback an agent wants to create, either Personal or Campaign. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_DATE_TIME |
String |
Yes |
Date and time of scheduled call, in the record’s Time Zone. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
RecordRescheduleAcknowledge
OCS sends this event to the desktop to acknowledge a rescheduled record.RecordRescheduleAcknowledge contains more information.
RecordRescheduleAcknowledge User Event | |
---|---|
Description |
Confirmation that record was rescheduled. |
Recommended Desktop Action |
Continue Call Work (the agent performs work associated with the call, such as dialing or updating a record). |
The RecordRescheduleAcknowledge Attached Data table lists the attached data for a RecordRescheduleAcknowledge event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
RecordRescheduleAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLBACK_TYPE |
String |
Yes |
Type of callback an agent wants to create, either Personal or Campaign. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_DATE_TIME |
String |
Yes |
Date and time of scheduled call, in the record’s Time Zone. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
ScheduledRecordReschedule
The desktop sends this event to OCS to reschedule a previously rescheduled record. ScheduleRecordReschedule contains more information.
ScheduleRecordReschedule User Event | |
---|---|
Description |
Request a reschedule of Preview Record, Predictive Call, or Scheduled Call when a rescheduled call cannot be completed and must be set for another time. |
OCS Action |
Update a record chain and reschedule the record. |
The ScheduledRecordReschedule Attached Data table lists the attached data for a ScheduledRecordReschedule event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
ScheduledRecordReschedule
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLBACK_TYPE |
String |
Yes |
Type of callback an agent wants to create, either Personal or Campaign. By default, if the attribute is not specified, callback type should not be changed. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_DATE_TIME |
String |
Yes |
Date and time of scheduled call, in the record’s Time Zone. |
GSW_PHONE |
String |
No |
Customer’s phone number. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
ScheduledRecordRescheduleAcknowledge
OCS sends this event to the desktop to acknowledge the rescheduling of a scheduled record. ScheduledRecordRescheduleAcknowledge contains more information.
ScheduleRecordRescheduleAcknowledge User Event | |
---|---|
Description |
Confirmation that record was rescheduled. |
Recommended Desktop Action |
Continue “Call Work" (the agent performs work associated with the call, such as dialing or updating a record). |
The ScheduledRecordRescheduleAcknowledge Attached Data table lists the attached data for a ScheduledRecordRescheduleAcknowledge event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
ScheduledRecordRescheduleAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLBACK_TYPE |
String |
Yes |
Type of callback an agent wants to create, either Personal or Campaign. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_DATE_TIME |
String |
Yes |
Date and time of scheduled call, in the record’s Time Zone. |
GSW_PHONE |
String |
No |
Customer’s phone number. |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
OCS sends this event to notify the desktop that there is a scheduled call. Nonmandatory fields are sent only if the send_attribute option is defined. ScheduledCall contains more information.
ScheduleCall User Event | |
---|---|
Description |
OCS sends to agent to indicate that scheduled call should be executed. |
Recommended Desktop Action |
Perform Call Work (the agent performs work associated with the call, such as dialing or updating a record). |
Mandatory Fields |
GSW_USER_EVENT |
Additional Fields |
Genesys and user-defined fields that have the send_attribute option configured. |
The ScheduledCall Attached Data table lists the attached data for a ScheduledCall event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
ScheduledCall
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_ATTEMPTS |
Int |
No |
Number of attempts for the record. |
GSW_CALL_RESULT |
Int |
Yes |
Call Result set by dialer or saved from previous call. (See the Enumeration Table.) |
GSW_CALL_TIME |
String |
Yes |
System time when record was called, in seconds from 1/1/70 (GMT). |
GSW_CALLBACK_TYPE |
String |
Yes |
Type of callback, either Personal or Campaign. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_CHAIN_ID |
Int |
Yes |
Unique chain ID. |
GSW_DATE_TIME |
String |
Yes |
Date and time of scheduled call, in the record’s Time Zone. |
GSW_FROM |
Int |
No |
GSW_FROM - GSW_UNTIL: Time frame when a record can be called, seconds from midnight. |
GSW_PHONE |
String |
Yes |
Customer’s phone number. |
GSW_PHONE_TYPE |
Int |
No |
Customer phone type (See the Enumeration Table). |
GSW_RECORD_HANDLE |
Int |
Yes |
Unique Record Identifier. |
GSW_TZ_OFFSET |
Int |
No |
Offset (time difference) in seconds between UTC and a particular time zone. It may contain different values throughout the year if Daylight Savings Time (DST) is used for the specified time zone. |
GSW_UNTIL |
Int |
No |
Time until, seconds since midnight. |
Custom fields |
Any |
No |
Custom Fields. |
Adding Records to a Calling List
When a Campaign/Campaign group is running or loaded, an agent can add both new records to the calling list and new chained records to an existing chain. The agent can add new records to a calling list if all the fields in the record are consistent with those defined in the calling list table. When adding new record that is not a part of the existing chain to the calling list, you can set up this new record as one of the following types, provided the fields of the record are set up correctly for the type of the record: General, Campaign Callback, Personal Callback, Campaign Rescheduled or Personal Rescheduled.
AddRecord Request
The Agent sends the AddRecord request to OCS to add a new record to the database. The AddRecord request can be used only to add records to a running or loaded Campaign/Campaign group. Only those fields defined with the send_attribute option are updated using the AddRecord request. In addition, the agent who sends this request should belong to the Campaign Group that is assigned for the Campaign.
To add a new record or the next record in an existing chain to a Campaign’s calling list, the requests UserData must include the mandatory fields (as defined in the Key Required column in AddRecord Attached Data). Note that when adding a new record, the GSW_RECORD_HANDLE is not a required key. Since the record is new, it has not yet been assigned a GSW_RECORD_HANDLE. Instead, GSW_PHONE is the required key in this request and is used as the identifier for the record.
When a record is added to the existing chain, it assumes the type of the chain, regardless of the type assigned to this record. Therefore, if a chain of records is on an agent desktop and new record of type Callback needs to be added, the agent should perform the following steps:
- Add a record of type General to the existing chain.
- Issue a RequestChainedRecords desktop request, to have OCS deliver the newly added record to the desktop.
- Issue a RecordReschedule request using the handle of the newly added record.
If OCS receives an AddRecord request without the GSW_CHAIN_ID attribute, OCS assigns the next available chain_id and chain number (chain_n) with a value of 0. This creates a new chain.
If an Agent wants to add a record to an existing chain, he or she must include the attribute GSW_CHAIN_ID (of the existing chain) in the request’s UserData. In this case, OCS assigns the next available chain number (chain_n)when it adds the record to the chain.
If an Agent wants to assign a specific number to a record being added to a chain, the agent must include both attributes GSW_CHAIN_ID and GSW_CHAIN_N in the request’s UserData.
AddRecord contains more information.
AddRecord Request | |
---|---|
Description |
Request to add a new record to the database. |
OCS Action |
Verify data and create new record in the list. |
The AddRecord Attached Data table lists the attached data for an AddRecord request.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
AddRecord
|
GSW_AGENT_ID |
String |
No |
Login ID of last agent who worked with the record. Optional. (Default = 0) |
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_ATTEMPTS |
Int |
No |
Number of attempts for the record. This key is used when a new record is added. Optional. (Default = 0) |
GSW_CALL_RESULT |
Int |
No |
Call Result sent to change automatically detected call result. (See the “Genesys Enumeration Table" on Enumeration Table.) |
GSW_CALL_TIME |
String |
No |
System time when record was called, in seconds from 1/1/70 (GMT). Optional. (Default = 0) |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group |
GSW_CAMPAIGN_NAMEb |
String |
Yes |
Name of the Campaign. |
GSW_CHAIN_ID |
Int |
No |
Unique chain identifier. Optional. If missing, it is assumed that a record forms a new chain. |
GSW_DATE_TIME |
String |
No |
Date and time of scheduled call.
Optional, in the record’s Time Zone. (Default = 0) |
GSW_FROM |
Int |
No |
GSW_FROM - GSW_UNTIL: Time frame when a record can be called, seconds from midnight. (Default = 28800, which represents 8 AM) |
GSW_PHONE |
String |
Yes |
Customer’s phone number. |
GSW_PHONE_TYPE |
Int |
No |
Customer phone type (See the “Genesys Enumeration Table" on Enumeration Table). (Default = 2, DirectBusinessPhone) |
GSW_RECORD_HANDLEb |
Int |
No |
Unique Record Handle value for the record. |
GSW_RECORD_STATUS |
Int |
No |
Status of adding record sent from a desktop (See the “Genesys Enumeration Table" on Enumeration Table). Optional. (Default = 1, ready) |
GSW_RECORD_TYPE |
Int |
No |
Type of added record sent from a desktop. See the “Genesys Enumeration Table" on Enumeration Table. Optional. (Default = 2, general) |
GSW_REFERENCE_IDc |
Int |
No |
Reference identifier for the request. |
GSW_TZ_NAME |
String |
Yes |
Configuration Server Time Zone Name (usually standard three-letter abbreviation. |
GSW_CHAIN_N |
Int |
No |
Unique number in a chain. Optional. If missing, the next available number is assigned. |
GSW_UNTIL |
Int |
No |
GSW_FROM - GSW_UNTIL: Time frame when a record can be called, seconds from midnight. (Default = 64800, which represents 6 PM.) |
Custom fields |
Any |
No |
Custom Fields. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b To handle a scenario in which several dialing sessions are active or running for the same Campaign and ensure that a new record is added to an existing chain for the appropriate group, OCS places a higher priority on processing the GSW_RECORD_HANDLE attribute if present in the request over the GSW_CAMPAIGN_NAME attribute. The GSW_RECORD_HANDLE attribute provides information to identify the Campaign Group, and with GSW_CHAIN_ID, enables a new record to be added correctly. In addition, if the GSW_CHAIN_ID does not match the ID of the chain, OCS returns error code 103.
c GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
AddRecordAcknowledge
OCS sends this event to the desktop to acknowledge an added record. AddRecordAcknowledge contains more information.
AddRecordAcknowledge User Event | |
---|---|
Description |
OCS sent this insert request to database. |
Recommended Desktop Action |
Continue session. |
The AddRecordAcknowledge Attached Data table lists the attached data for an AddRecordAcknowledge event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
AddRecordAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CALLING_LIST |
String |
Yes |
Name of the calling list. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
Unsolicited Notifications
Unsolicited notifications are messages that OCS sends to the agent desktop but not in response to agent requests. These are examples of unsolicited notifications:
- Scheduled record that OCS sends to the desktop without any prompting (request) from the agent.
- Notification about a cancelled record that OCS sends to a desktop other than the one that initially submitted the Cancel/DoNotCall request.
- Campaign Status and Agent Assignment notifications.
Agent Logout
Upon an agent LogOut request, the desktop performs the following cleanup tasks before executing the requests:
If there are existing preview records or scheduled calls, the desktop should send a RecordReject request to OCS, thus returning these records to the calling list table and freeing up these records for other agents to process. The record_type and record_status of the rejected records will be returned to General and Ready state.
If the agent does not perform a cleanup (reject records) before logging out, OCS, upon receiving an LogOut request from T-Server, returns the remaining records on the desktop to the calling list with status updated.
Smart Logout
The Smart Logout feature ensures that an agent is not logged out of a campaign until all outbound calls that OCS dialed based on the agent's availability are returned to the calling list or are completed by the agent (refer to Agent Logout Protocol). After the completion of Smart Logout (after OCS sends the LogOutAcknowledge message—refer to LogOutAcknowledge), agents are assigned to the Inbound activity.
Agent Logout Protocol
The extension of the Desktop Protocol (LogOut) addresses the issue of abandoned or dropped calls as a result of this combination of circumstances:
- A significant number of Agents in a dialing session for a Campaign group log out after OCS has already requested dialing of outbound calls.
- OCS is relying on the availability of these specific Agents to handle the calls dialed.
In this scenario, many of the answered calls would be abandoned or dropped due to Agent unavailability. A Desktop Protocol extension allows the Agent to notify OCS in advance about his or her intention to log out and to receive notification when log out is possible without a negative impact on outbound dialing. The protocol works like this:
- Instead of an actual logout, the agent sends a LogOut request to OCS to indicate his or her intention to log out. See LogOut. After receiving the initial LogOut request, OCS excludes the agent from the list of available agents and stops considering him or her for dialing prediction.
- A LogOutTime response from OCS provides an estimated time by which the agent will be able to log out. LogOutTime. In response to each of the agent’s logout requests, OCS gives the agent an estimated logout time until that time expires. During this interval the agent may receive an outbound call. OCS recalculates the estimated time for each logout request.
- OCS notifies the desktop when logout is possible. The agent is able to log out when the estimated time expires or when the agent has processed the outbound call that OCS dialed in expectation of the agent’s availability.
The Logout Negotiation between Agent Desktop and OCS diagram shows the Desktop-OCS user events (request and responses) for an agent logout.
LogOut
LogOut provides information on this event.
LogOut Request | |
---|---|
Description |
Request to log out. |
OCS Action |
OCS excludes the agent from predictive dialing. If OCS has already requested a dialer for an outbound call for which the agent is regarded as available, OCS postpones the Logout for a period of time as specified in the call_wait_connected_timeout option for all agents regardless of the number of Sent or Dialed calls in progress. If there are no Sent
, Dialed and Queued calls, OCS sends a LogOut time equal to 0.
|
The LogOut Attached Data table lists the attached data for the LogOut event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_AGENT_REQ_TYPE |
String |
Yes |
LogOut
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CAMPAIGN_GROUP_NAMEa |
String |
No |
Name of the Campaign Group. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_REFERENCE_IDb |
Int |
No |
Reference identifier for the request. |
a Adding this attribute to the request enables the identification of the Campaign Group for environments where several groups are configured, active, and running for the same Campaign. This attribute has a higher priority than the GSW_CAMPAIGN_NAME attribute.
b GSW_REFERENCE_ID is an optional attribute in the message. When present, OCS guarantees to return this attribute (same key and same value) in the response to the desktop request, in both a positive response or an error.
LogOutTime
OCS sends this response to the desktop for the agent’s LogOut request. LogOutTime contains more information.
LogOutTime User Event | |
---|---|
Description |
Response to LogOut request |
Desktop Action |
Desktop displays the time remaining until it or the agent will be able to complete logout. |
The Attached Data LogOutTime Attached Data table lists the attached data for the LogOutTime event.
Data Key |
Type |
Key Required |
Description |
---|---|---|---|
GSW_USER_EVENT |
String |
Yes |
LogOut
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
GSW_LOGOUT _TIME |
Int |
Yes |
The time remaining before the logout will be allowed. |
LogOutAcknowledge
LogOutAcknowledge provides information on this event.
LogOutAcknowledge User Event | |
---|---|
Description |
Automatic logout acknowledgement |
Desktop Action |
Logs agent out. Displays agent’s status change. |
The LogOutAcknowledge Attached Data table lists the attached data for the LogOutAcknowledge event.
Data Key |
Type |
Key Required |
Description |
GSW_USER_EVENT |
String |
Yes |
LogOutAcknowledge
|
GSW_APPLICATION_ID |
Int |
Yes |
OCS configuration application database ID. Unique identifier of the running OCS instance. |
GSW_CAMPAIGN_NAME |
String |
Yes |
Name of the Campaign. |
Proactive Interaction Support
Proactive Interaction Attached Data provides information about additional data keys needed to enable proactive interaction functionality in the desktop. This feature is also known as Push Preview mode.
Data Key |
Type |
Description |
---|---|---|
GSW_AGENT_ID |
String |
AgentID of the agent assigned to the proactive interaction record. |
GSW_SWITCH_DBID |
Integer |
DBID of the Switch. |
The Media Type Business Attribute table provides information about identifying the media types that correspond to the Media Type business attribute. This defines how to contact the customer.
Data Key |
Type |
contact_info_type Field |
Description |
---|---|---|---|
GSW_CONTACT_MEDIA_TYPE |
string |
0 |
any (NoContactType) |
1 |
voice (HomePhone) | ||
2 |
voice (DirectBusinessPhone) | ||
3 |
voice (BusinessWithExt) | ||
4 |
voice (Mobile) | ||
5 |
voice (VacationPhone) | ||
8 |
voice (VoiceMail) | ||
10 |
email (E-mail) | ||
11 |
instant message |
Caller ID Support
This feature enables OCS to distribute information required for Caller ID support to any telephony system.
Currently, this feature is supported:
- By the Alcatel A4400/OXE PBX and the Avaya PBX,
- When using CPD Server in ASM mode with a trunk-side ISDN connection to the PSTN, or
- When using Outbound Notification Manager and the Power GVP dialing mode.
The Caller ID support features include:
- Caller ID Per Campaign
- The Caller ID can now be specified per Campaign.
- This simplifies telemarketing regulation compliancy setup in certain cases, such as when a single site must transmit multiple, different Caller IDs, depending on the Outbound Campaign.
- OCS submits information if the option CPNDigits is configured in the corresponding Campaign/Application Configuration Object.
- Caller ID Support for ISDN Connections
- The Caller ID is transmitted to PSTN when using CPD Server with an ISDN connection (ASM mode).
- In this case, CPD Server uses the value from CPNDigits and CPNPresentation received from OCS, instead of the value specified in the calling-party-number and presentation-indicator options in the ISDN section. For other parameters, CPD Server uses the values configured in the CPDServer Options/ISDN section.
- Caller ID Support for Avaya CTI
- This capability works with the Avaya green feature, enabling the Caller ID transmission through the CTI interface.
- OCS submits information that is required to provide the Caller ID in an outbound call in the Extensions TKVList in TMakePredictiveCall or SMakePredictiveCall functional calls.
- The CPD Server submits information received from OCS as specified in the Extensions TKVList in a TMakeCall request. It does this without checking the SwitchingOffice type to determine if it is Avaya.
The Caller ID options for each Campaign for CPN (Calling Party Number) are:
Virtual Agent Support for Notifications
Genesys-integrated Interactive Voice Response (IVR) provides virtual agent support for IVR ports that are configured for a Campaign as “virtual agents". The virtual agent support for notifications feature includes Dialing for IVR and Blending for IVR.
This functionality simplifies the integration of Outbound Contact with IVR for outbound notifications. Outbound Contact requires that agents be in a Ready state to receive outbound calls.
Depending on specific implementation, IVR ports can be represented by any of the following:
- Places that include one DN with the type Voice Treatment Port
- Places that include one DN with type ACD Position
- Places that include two DNs with types "ACD Position" and "Extension"
OCS provides simplified resource availability management for IVR Groups. The IVR Group must be configured as a Group of Places with the option ivr_group=true in the Annex tab.
- Places in that Group may contain DNs with the type "Position", "Extension," or "Voice Treatment Port".
When OCS is processing a Campaign with the IVR Group assigned, the following guidelines apply:
- OCS does not rely on agent state notifications (Logged In, Logged Out, Ready, Not Ready) for Places associated with IVR Groups that only contain DNs of type Voice Treatment Port. (To determine if Voice Treatment Port type DNs are supported on your switch, refer to the documentation for the T-Server being used for outbound dialing.)
- If the Place includes a DN with the type ACD Position, OCS expects EventAgentLogin on that DN to associate the Place with a Campaign.
- OCS considers Place available to receive an outbound Call, if there is no telephony activity in progress on the DNs included in that Place. For example, if an EventReleased was received on behalf of a previously established Call, and DNs (or Place) are enabled in Genesys Configuration.
- OCS considers the Place seized by a Call when any telephony activity is begun on at least one of the DNs included in that Place: For example, if EventRinging was received.
- OCS finalizes the Record processing immediately after release of a Call on DN.
- When a Place includes a DN with the type ACD Position, the OCS behavior on EventReleased is the following: OCS changes the agent's state to Ready and does not take into consideration the option outbound_release_action.
- The option ivr_update_on_release enables OCS to update the Calling List Record with values from Outbound Call UserData. If ivr_update_on_release=true, OCS updates Fields from Record with values from the corresponding UserData KVPairs, received in EventReleased. This is similar to the UpdateCallCompletionStats in UserEvent processing.
- OCS uses the same mechanism of “inbound call blending" as it uses for standard Campaigns.
- OCS does not process Desktop Protocol interactions related to Call processing on DNs associated with an IVR Group.
- OCS enables the transfer of calls from IVR Group to Places/Agents from regular (non-IVR) groups. Call records are not updated just after leaving an IVR Group. These records could be processed by agents according to Desktop Protocol.
- OCS treats an outbound call as being transferred to an Unknown DN if, while a campaign is running in IVR mode, after being diverted to an IVR port, the outbound call is transferred to an agent who is not participating in the IVR campaign.
- License control for an IVR Group is the same as for regular groups. The number of places assigned to an IVR Group is equal to the number of consumed licenses.
- A Group-Campaign with the option ivr_group=true is considered as an IVR on loading the Campaign/Campaign group. After this, OCS does not take dynamic changes of the option until unloading the Campaign/Campaign group.
- OCS enables the dynamic addition and removal of places to and from the IVR Group. Once a place with a logged in agent is removed from the group, it is no longer considered as IVR place. This place could be added to a regular group.
- OCS does not support IVR Campaign_Group in ASM dialing mode.
The options for the IVR features are:
Personalized Ring Tone Support
CPD Server utilizes the event flow patterns specific for personalized ring tone services to correctly detect the call results when dialing to the numbers that use these services. When using this feature, the dialer hears a custom music or voice message instead of a ring tone or busy signal.
This provides robust call progress detection for the numbers using personalized ring tone services.
The options for setting this feature are:
Outbound Contact Library
The following section describes:
- Error names and codes.
- All events and event type protocols.
Error Names and Codes
The Error Names and Codes table displays error names and their corresponding codes for error conditions that occur while using communication protocols.
GSW_ERROR |
GSW_ ERROR_ NUMBER |
Description |
---|---|---|
Invalid Request |
101 |
Received request has the wrong request type.a |
Attribute Not Found |
102 |
Mandatory attribute cannot be found. |
Invalid Attribute Value |
103 |
Attribute has the wrong value |
Agent Not Found |
104 |
OCS cannot find an appropriate agent to process the request |
Campaign Group Not Found |
105 |
Specified Campaign Group was not found. |
No Active Campaigns |
106 |
Cannot execute request—no Campaign was loaded. |
No Running Preview Campaigns |
107 |
Cannot execute preview record request—no preview Campaign was started. |
No Records Available |
108 |
All lists are empty, all records have been processed, or the internal buffer is empty. OCS is waiting for a new selection of records. |
Record Not Found |
109 |
OCS received a request for a record that does not exist or that has already been processed. |
Invalid Time |
110 |
Received time does not meet the request conditions (for example, reschedule in the past). |
Invalid Time Format |
111 |
OCS cannot convert the string to a time
(for example, 25/45/00). |
No call found for the record handle |
112 |
Received request refers to a record that has already been processed. |
DB Error |
113 |
Cannot execute the request due to database error. |
Chained Records not found |
114 |
Received request refers to an absent chain of records. |
Record Already Exists |
115 |
Attempted to add a record that already exists. |
Add Record Error |
116 |
Cannot add the record. |
Scheduled record not found |
117 |
Cannot reschedule a record. |
Preview mode has already been started |
118 |
Preview mode has already been started. |
Preview mode has not been started |
119 |
Preview mode has not been started. |
a When GSW_ERROR_NUMBER = 101, the GSW_ERROR message can refer to three different messages:
- PreviewDialingModeStart is required means that an agent must send a PreviewDialingModeStart request before issuing a desktop request if the agent_preview_mode_start option is set to true.
- There is no 'Auto' campaign started means that an agent is trying to perform a smart logout when there are no auto (Predictive mode or Progressive mode) Campaigns started.
- Agent smartly logged out means that an agent is sending requests after performing a smart logout, but there is a record currently on the desktop.
- PreviewDialingModeStart is required means that an agent must send a PreviewDialingModeStart request before issuing a desktop request if the agent_preview_mode_start option is set to true.
All Genesys Events and Event Type Protocols
The All Desktop Protocol Events and Event Type Protocols table represents all Genesys event and event type protocols.
Key:
O > D denotes sending a message from OCS to desktop.
D > O denotes sending a message from desktop to OCS.
Messages |
From > To |
Descriptions and Actions |
---|---|---|
1. Notifications
| ||
CampaignStarted |
O > D |
Should be sent when Campaign dialing is started or resumed, or as a response to event agent login if a dialing session for the Campaign is started. |
CampaignStopped |
O > D |
Should be sent when dialing for Campaign is stopped or paused. |
CampaignModeChanged |
O > D |
Should be sent when mode of running Campaign is changed. |
CampaignLoaded |
O > D |
Should be sent when Campaign is loaded. |
CampaignUnloaded |
O > D |
Should be sent when Campaign is unloaded. |
CampaignGroupAssigned |
O > D |
Should be sent when the agent has been assigned to a Campaign Group. |
CampaignStatusRequest |
D > O |
Request for information on active/running dialing session/Campaign Group(s) statuses. |
2. Preview | ||
PreviewRecordRequest |
D > O |
Request to send preview record. |
PreviewDialingModeStart |
D > O |
Request to activate preview session for the agent. Needed if the agent_preview_mode_start option is set to true.
|
PreviewRecord |
O > D |
Preview record to dial. |
NoRecordsAvailable |
O > D |
No more records available. |
3. Common | ||
UpdateCallCompletionStats |
D > O |
Desktop sends this event to update record details. Intermediate update. |
UpdateCallCompletionStatsAcknowledge |
O > D |
OCS sends this event to confirm operation. |
ReadyTime |
D > O |
Desktop sends this request to OCS, providing the number of seconds before the agent will go Ready.
|
ReadyTimeAcknowledge |
O > D |
OCS sends this event to the desktop to acknowledge the ReadyTime request. |
RecordProcessed |
D > O |
Desktop sends this event to indicate that record is processed. |
RecordProcessedAcknowledge |
O > D |
OCS confirms that record has been executed. |
RecordReject |
D > O |
Desktop sends this request to indicate that the preview record or scheduled call will not be dialed by this agent. |
RecordRejectAcknowledge |
O > D |
OCS accepts RejectRecord request. |
RecordCancelAcknowledge |
O > D |
Desktop sends a request to OCS to cancel a record or a chain. |
RequestRecordCancel |
D > O |
Desktop sends this request to indicate that the preview record or scheduled call should not be dialed. |
RecordReschedule |
D > O |
Request a reschedule of preview record, predictive call, or scheduled call. |
RecordRescheduleAcknowledge |
O > D |
Confirmation that record was rescheduled. |
ScheduledCall |
O > D |
OCS sends this event to an agent to indicate that scheduled call should be executed. |
ScheduledRecordReschedule |
D > O |
Request a reschedule of Preview Record, Predictive Call, or Scheduled Call when a rescheduled call cannot be completed and must be set for another time. |
4. Chained Records | ||
ChainedRecordRequest |
D > O |
Request to send all records from the chain defined by Record Handle (Unique Record Identifier). |
ChainedRecord |
O > D |
Request to send all records from the chain defined by RecordHandle. |
ChainedRecordsDataEnd |
O > D |
All chain has been delivered. |
5. DoNotCall | ||
DoNotCall |
D > O |
Agent requests the number or customer ID in a record not to be called again. |
DoNotCallAcknowledge |
O > D |
Confirmation that DoNotCall was accepted. |
6. Record Cancel from OCS to Desktop | ||
RecordCancel |
O > D |
OCS sends this to the desktop to indicate that this record should not be dialed.
Applicable for preview records and scheduled calls. |
7. Request add record from Desktop | ||
AddRecord |
D > O |
Request to add a new record to the database. |
AddRecordAcknowledge |
O > D |
Phone number can be used to relate request and response. |
8. Request LogOut | ||
LogOut |
D > O |
Agent’s request to log out |
LogOutTime |
O > D |
OCS response to LogOut request |
LogOutAcknowledge |
O > D |
Automatic logout acknowledgement |