Agent Schedule Detail
API Specification
Description | Creates a task for workmanager to execute exportEngine for Agent Schedule Detail exporter. |
Authentication
Required |
Yes |
URL | https://<domain or IP>/SMARTSync/services/rs/exporters/v1/agent-schedule-detail |
Method | POST |
Request Headers |
Cookie: JSESSIONID={jsessionId} Content-Type: application/json |
Request Params | (See below) |
API Specification: Request Params
startDate - String, format: YYYY-MM-YY Required: true. Notes: cannot be after the endDate. |
endDate - String, format: YYYY-MM-YY Required: true. Notes: cannot be before the startDate. |
outputFormat - String, supported formats: PIPE, JSON Required: true. Notes: is not case sensitive. |
dateFormat - String, possible values: mmddyy, ddmmyy, mmddyyyy, ddmmyyyy, yyyymmdd, yyyyddmm, yyddmm, yymmdd. If dateformat is not provided and outputFormatis set to JSON, all date fields will be converted into ISO date format. Required: Only for PIPE outputFormat. Notes: is not case sensitive. Determines format of output dates. |
timeFormat - String, possible values: 12, 24. Determines format of output times. Required: true. Notes: is not case sensitive. |
lastModifiedTime - String, represents date inISOformat yyyy-MM-dd'T'HH:mm:ss'Z'. If specified, filters out Time Off Rules whose date range does not overlap with the command line start/end dates. Required: false. |
disableMidnightCutOff - Boolean field. Required: false. Notes: If you set this attribute to on and any part of a schedule falls within the specified date range, the entire schedule is included in the export. If you set this attribute to off, or omit the attribute, the agentScheduleDetail export only includes activity codes that fall within the specified date range. If a schedule crosses midnight into or out of the date range, only the part of the schedule that falls within the date range is included. If you omit this attribute, the value defaults to off. |
muIds - Array of Integers. Should be one or more IDs user has permission to use. Required: true. Notes: is not case sensitive. |
keepEmptyJsonFields - Boolean field. Required: false. Notes: This field can be set only if outputFormat is set to JSON. By default it is false. If it i set to true, the JSON output will contain empty values ({},[],"") for fields. |
excludePipeHeader - Boolean field. Required: false. Notes: This field can be set only if outputFormat is PIPE. By default it is false. If set to true then headers will be excluded from PIPE output. |
attribute - String. Represents activity code attribute. Required: false. Notes:
|
fields - Array of objects. Represents the list of the supported field names, fields with attribute values, and fields with specified value. All field names, attributes, and values are not case sensitive. Required: false. Possible values: Simple fields when outputFormat is PIPE: {"name":"excDate"}, {"name":"schedDate"}, {"name":"TZ"}, {"name":"custID"}, {"name":"muID"}, {"name":"tvID"}, {"name":"acdID"}, {"name":"logonID"}, {"name":"ssn"}, {"name":"agentName"}, {"name":"modify"}, {"name":"exception"}, {"name":"start"}, {"name":"stop"}, {"name":"externalID"} Simple fields when outputFormat is JSON: {"name":"excDate"}, {"name":"schedDate"}, {"name":"TZ"}, {"name":"custID"}, {"name":"muID"}, {"name":"tvID"}, {"name":"acdID"}, {"name":"logonID"}, {"name":"personalID"}, {"name":"agentName"}, {"name":"modify"}, {"name":"exception"}, {"name":"start"}, {"name":"stop"}, {"name":"externalID"} Note:
Field with multi value: {"name":"agentData","value":"value1"}, {"name":"agentData","value":"value2"} Note: agentData value should exist in DB. |
sortOrder - array of Objects. Represents the list of the supported field names, fields with attribute values, and fields with specified value. All field names, attributes, and values are not case sensitive. Required: false. Possible values: the same values as for fields. |
API Specification (cont)
Response
Data |
Response has a unique JobId: jobId is a 32 length string Example {
"jobId":"9b2fe7bb8362429fb85a16c9373cf50c"
}
|
Response
Headers |
Content-Type: application/json |
Success
Response |
Code: 200 OK Content : [Response Data] |
Error
Response |
Code: 401 Unauthorized Error message: {
"message":"Unauthorized",
"status":401
}
Code: 400 Bad Request
All fields are invalid:
{
"message": "One or more request validations failed",
"status": 400,
"details": [
"Invalid field: 'keepEmptyJsonFields'",
"Invalid field: 'excludePipeHeader'",
"Invalid outputFormat value: 'XML'",
"Invalid dateFormat value: 'ddmmcyyyy'",
"Invalid timeFormat value: '1c2'",
"startDate must match the provided yyyy-MM-dd format",
"endDate must match the provided yyyy-MM-dd format",
"Insufficient permissions to view entities 'MU -1'",
"Invalid entity: 'MU 1234567'",
"Invalid attribute value: 'wrongAttribute'",
"Invalid values within fields element: wrongField2,wrongField1"
]
}
Start date>end date
{
"message":"One or more request validations failed",
"status":400,
"details": [
"endDate must be either equal to or after the startDate"
]
}
Code: 500 Internal server error
|
Sample Call for PIPE outputFormat |
https://localhost/SMARTSync/services/rs/exporters/v1/agent-schedule-detail request body(request for all fields):
{
"startDate":"2023-11-10",
"endDate":"2024-11-10",
"outputFormat":"pipe",
"dateFormat":"ddmmyyyy",
"timeFormat":"12",
"muIds":[
500
]
}
request body(request for specific fields): {
"startDate":"2022-11-10",
"endDate":"2022-11-10",
"outputFormat":"pipe",
"dateFormat":"ddmmyyyy",
"timeFormat":"12",
"muIds":[
500
],
"attribute":"Adherence",
"fields":[{"name":"custID"}, {"name":"TZ"}],
"sortOrder":[{"name":"custID"}, {"name":"TZ"}, {"name":"agentData","value":"TEST"}]
}
|
Sample Call for JSON outputFormat |
https://localhost/SMARTSync/services/rs/exporters/v1/agent-schedule-detail request body(request for all fields):
{
"startDate":"2023-11-10",
"endDate":"2024-11-10",
"outputFormat":"JSON",
"dateFormat":"ddmmyyyy",
"keepEmptyJsonFields":true,
"timeFormat":"12",
"muIds":[
500
]
}
request body(request for specific fields):
{
"startDate":"2022-11-10",
"endDate":"2022-11-10",
"outputFormat":"JSON",
"dateFormat":"ddmmyyyy",
"timeFormat":"12",
"keepEmptyJsonFields":true,
"muIds": [
500
],
"attribute":"Adherence",
"fields":[{"name":"custID"}, {"name":"TZ"}],
"sortOrder":[{"name":"custID"}, {"name":"TZ"}, {"name":"agentData","value":"TEST"}]
}
}
|
Output Field Descriptions
-
This export runs for each MU specified in the muIds list.
-
If the export runs for multiple MUs, all the data is saved in the same output file.
-
For each date in the range specified, the Schedule data is read for each agent that belongs to the MU being processed for the date being processed.
-
If you use the lastModifiedTime parameter, the records in the output file are further limited to only include agents whose records from the database have a modify time greater than or equal to the lastModifiedTime.
-
If you set the disableMidnightCutoff attribute to OFF or do not define it, the Agent Schedule Detail export only includes activity codes that fall within the specified date range. If a schedule crosses midnight into or out of the date range, only the part of the schedule that falls within the date range is included.
-
If you set disableMidnightCutoff to ON and any part of a schedule falls within the specified date range, the entire schedule is included in the export.
-
If you omit disableMidnightCutoff, the value defaults to OFF.
-
If the attribute parameter is defined, the value assigned to each activity code for the specified activity code attribute is used for the output file’s exception field. If the attribute parameter is not defined, the attribute named EXC_EXPORT is used.
-
Agent data group values assigned to the agent for the date being processed are exported. Agent data group values are stored by date range and are not dependent on the agent’s MU assignment.
The Agent Schedule Detail output can include these fields:
Field |
Description |
Values |
---|---|---|
excDate |
The activity code date, based on the MU’s time zone. The activity code date may be different from the schedule date, if the schedule crosses midnight. The format of the date is specified in the dateFormat attribute. If no dateFormat attribute exists, dates are formatted as mmddyyyy. If disableMidnightCutoff is on, this date may be 1 day before or 1 day after the command line date range due to cross-midnight schedules. If midnightCutoff is “off” or omitted, this date is within the command line date range. |
|
schedDate |
The schedule date based on the MU’s time zone. The format of the date is specified in the dateFormat parameter. If no dateFormat is provided, then the format defaults to mmddyyyy if the outputFormat is PIPE. If the outputFormat is JSON, then dates default to ISO 8601 format. If the outputFormat is XML, the format is always a fixed XML structure. If disableMidnightCutoff is off or omitted, this date may be 1 day before the command line date range due to cross-midnight schedules. |
|
TZ |
The MU’s time zone. |
|
custID |
The customer ID. |
|
muID |
The ID of the MU. |
|
tvID |
The agent’s WFM ID. |
|
acdID |
The ID of the agent’s highest-priority ACD for the associated schedule date. The highest-priority ACD is the one with the lowest priority number. |
|
logonID |
The agent’s highest-priority ACD or multimedia server logon ID for the associated schedule date. The highest-priority ACD is the one with the lowest priority number. |
It is possible for this field to be blank. |
ssn |
The agent’s personal ID number. For JSON output, personalId is used instead |
This field is blank if no personal ID number is assigned to the agent. |
agentData |
This multi-value field exports the value(s) assigned to the agent for each agent data group specified in the "value" attribute of the agentData field. You can include as many agentData elements as you want; one agent data group is printed in the output file for each agentData value defined. You can specify the same agent data group more than once. If you do not include an agentDataelement, this field is omitted. |
This field may be blank if the agent is not assigned a value for the specified agent data group for the date being processed Note: The Agent Schedule Detail output does not support simplified Chinese characters in this field. When defining agent data values, do not use simplified Chinese characters. |
agentName |
The agent’s name, formatted as <last>, <first><suffix>. |
|
modify |
The schedule record’s modify timestamp. |
|
exception |
The activity code attribute value assigned to the activity code, as specified in the attribute parameter . If no value is assigned to the activity code for the activity code attribute, the activity code is not included in the export. If multiple activity codes with the same activity code attribute value exist contiguously, they are exported as a single exception, with the appropriate start and stop times subject to the cross-midnight note below. If an activity code crosses midnight, it is divided into two records at midnight if you do not use the disableMidnightCutoff attribute or set it to off. If you set the disableMidnightCutoff attribute to on, the cross-midnight schedule is kept intact as stored in NICE WFM. |
|
start |
The start time of the activity code, based on the MU’s time zone. The format of the start time is specified in the timeFormat attribute. If no timeFormat attribute exists, 24-hour format (HH:MM) is used. |
|
stop |
The end time of the activity code, based on the MU’s time zone. The stop is the clock stop time, and therefore excludes the stop minute. For example, if a Lunch activity exists at noon for one hour, the stop time is 1:00pm, not 12:59pm. There are two records: [first record] |LUNCH|1200|1300, [second record]: OPEN|1300|1500. The actual 1300 clock minute is included in the second record. The format of the stop time is specified in the timeFormat parameter. If no timeFormat parameter exists, 24-hour format (HH:MM) is used. |
|
externalID |
The ID the agent uses to log in to the Agent WebStation if the WebStation is configured to use external IDs. |
If the agent's externalID field is blank, this field is blank. |
Supported output formats:
- PIPE
- JSON
JSON with results and non empty fields

[
{
"excDate": "040522",
"schedDate": "040522",
"TZ": "US/Central",
"custID": "1",
"muID": "500",
"tvID": "509",
"acdID": "1",
"logonID": "509",
"agentName": "509, 509",
"modify": "2022-04-05T16:29:19Z",
"exception": "open",
"start": "00:00",
"stop": "04:00"
},
{
"excDate": "040522",
"schedDate": "040522",
"TZ": "US/Central",
"custID": "1",
"muID": "500",
"tvID": "509",
"acdID": "1",
"logonID": "509",
"agentName": "509, 509",
"modify": "2022-04-05T16:29:19Z",
"exception": "open",
"start": "04:30",
"stop": "08:00"
}
]
JSON with results and empty fields

[
{
"excDate": "040522",
"schedDate": "040522",
"TZ": "US/Central",
"custID": "1",
"muID": "500",
"tvID": "",
"acdID": "1",
"logonID": "",
"agentName": "509, 509",
"modify": "2022-04-05T16:29:19Z",
"exception": "open",
"start": "00:00",
"stop": "04:00"
},
{
"excDate": "040522",
"schedDate": "040522",
"TZ": "US/Central",
"custID": "1",
"muID": "",
"tvID": "",
"acdID": "1",
"logonID": "509",
"agentName": "509, 509",
"modify": "2022-04-05T16:29:19Z",
"exception": "open",
"start": "04:30",
"stop": "08:00"
}
]
JSON with empty result
PIPE result with enabled headers

#fields:excDate|schedDate|TZ|custID|muID|tvID|acdID|logonID|ssn|agentName|modify|exception|start|stop
#sort:excDate,custID,tvID,logonID,acdID,agentName
050221|050221|US/Central|1|500|11002|1|||11002-ln,|1620078367|1|03:45|04:00
050221|050221|US/Central|1|500|11003||||11003-ln,|1620078367|2|03:30|04:30
PIPE with disabled headers

050221|050221|US/Central|1|500|11002|1|||11002-ln,|1620078367|1|03:45|04:00
050221|050221|US/Central|1|500|11003||||11003-ln,|1620078367|2|03:30|04:30
PIPE result with empty data

#fields:excDate|schedDate|TZ|custID|muID|tvID|acdID|logonID|ssn|agentName|modify|exception|start|stop
#sort:excDate,custID,tvID,logonID,acdID,agentName
Agent Schedule Detail DTD

<?xml version="1.0"?>
<!ELEMENT agentScheduleDetail ((allFields | fieldList), sortOrder?)>
<!ELEMENT fieldList (fields)>
<!ELEMENT sortOrder (fields)>
<!ELEMENT fields (excDate | schedDate | TZ | custID | muID | tvID | acdID | logonID
| ssn | agentData |agentName | modify | exception | start | stop | externalID)+>
<!ELEMENT allFields EMPTY>
<!ELEMENT excDate EMPTY>
<!ELEMENT schedDate EMPTY>
<!ELEMENT TZ EMPTY>
<!ELEMENT custID EMPTY>
<!ELEMENT muID EMPTY>
<!ELEMENT tvID EMPTY>
<!ELEMENT acdID EMPTY>
<!ELEMENT logonID EMPTY>
<!ELEMENT ssn EMPTY>
<!ELEMENT agentData (#PCDATA)>
<!ELEMENT agentName EMPTY>
<!ELEMENT modify EMPTY>
<!ELEMENT exception EMPTY>
<!ELEMENT start EMPTY>
<!ELEMENT stop EMPTY>
<!ELEMENT externalID EMPTY>