General SmartSync APIs

This section provides the details on the SmartSync REST APIs. These are

Standard REST APIs

User Service - Login

Description

Authenticates specified user within the tenant.

User must be WFM user and customer ID must exist in the R_CUST table.

Consumed by the Login page.

Authentication Required

No

URL

https://<domain or IP>/SMARTSync/services/rs/users/v1/login

Method

POST

Request Headers

Content-Type: application/json

Request Params

NA

Request Data

Field

Type

Req

Notes

customerId

int

Yes

WFM tenant id

userName

string

Yes

WFM supervisor login

password

string

Yes

WFM supervisor password in plain text

locale

string

Yes

WFM supervisor locale

Example: "locale": "en_US"

{
 "customerId": 1,
 "userName": "testuser",
 "password": "x"
 "locale": "en_US"
}

Response Headers

Content-Type: application/json

Set-Cookie: JSESSIONID={jsessionId}

Response Data

{
 "jsessionId": "960PhzD0FsbSlTALWBnt79hs.web01"
}

Success Response

Code: 200 OK

Content : [Response Data]

Error Response

Code: 400 Bad Request

Code: 401 Unauthorized

Sample Call

https://localhost/SMARTSync/services/rs/users/v1/login

request body:

{
 "customerId": 1,
 "userName": "rgan",
 "password": "Johnson22"
 "locale": "en_US"
}

Notes

 

GET Entities

Get added, changed, deleted entities from WFM.

Description

Retrieve all entities added/modified/deleted after the specified timestamp. If timestamp is null, retrieve all active entities (CT, MU, EG) from WFM and mark the status of all entities as ADD.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSYNC/services/rs/entities/v1? entityType=ct,mu,eg&\timestamp=yyyy.MM.ddTHH:mm:ss.SSSZ

Method

GET

Request Headers

Cookie: JSESSIONID={jsessionId}

Content-Type: application/json

Request Params

Field

Type

Req

Notes

entityType

comma-separated string

Yes

List of entity types separated by comma. Must be ct, mu, or eg (case sensitive).

If entity is not one of the above, it is ignored

Examples:

entityType=ct,eg,mu

entityType=ct,mu

entityType=mu

Request Params

Field

Type

Req

Notes

timestamp

instant as string

No

Time after which entities are added/modified/deleted.

If the timestamp is not specified:

  • all active entities that match the specified entity type are returned

  • the status attribute for all returned entities will be ADD

If the timestamp is specified:

  • only those entities that match the specified entity type AND were either added, modified, or deleted AFTER the timestamp value are returned

  • the status attribute for any returned entity will be ADD, UPDATE, or DELETE, depending on whether the entity was added, updated, or deleted AFTER the time specified in the timestamp

Format is ISO time format in UTC: yyyy.MM.ddTHH:mm:ss.SSSZ

Example: "2018-04-02T14:30:00Z"

Request Data

NA

Response Headers

Content-Type: application/json

Response Data

Response has timestamp and list of all entities with key on entity type.

Field

Type

Notes

timestamp

instant as string

Current time on the server.

Format is ISO time format in UTC: yyyy.MM.ddTHH:mm:ss.SSSZ

Example: "2018-04-02T14:30:00Z"

entities

map<string, list<entity>>

List of entity objects for each entity type

{
 "timestamp": "2018-04-02T14:30:00Z",
 "entities": {
 "CT": [
 {"entityOid": "ctOid1","entityId": 1, "entityName": "CT 1","timezone": "America/Chicago","status": "ADD"},
 {"entityOid": "ctOid2","entityId": 2, "entityName": "CT 2","timezone": "US/Eastern","status": "DELETE"}],
 "EG": [
 {"entityOid": "egOid1","entityId": 1, "entityName": "EG 1","timezone": "America/Chicago","status": "UPDATE"},
 {"entityOid": "egOid2","entityId": 2, "entityName": "EG 2","timezone": "US/Eastern","status": "DELETE"}]},
}

Success Response

Code: 200 OK

Content : [Response Data]

Error Response

Code: 400 Bad Request

Code: 500 Internal server error

Sample Call

https://localhost/SMARTSYNC/services/rs/entities? entityType=ct,mu&timestamp=2018-04-02T14:30:00Z

Notes

 

Get PTO Balances

Description

Gets the remaining time off allotments and the agent's remaining time off for the specified criteria, which includes agent, date and list of activity codes.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSync/services/rs/time-off/v1/pto-balances

Method

POST

Request Headers

Cookie: JSESSIONID={jsessionId from SmartSync authentication}

Content-Type: application/json

Request Params

NA

Request Data

Field

Type

Req

Notes

reqId

string

Yes

Request ID from EEM. Not used in WFM.

agentOid

string

Yes

Agent requesting the PTO balance

date

string

Yes

ISO formatted local date yyyy-mm-dd

activityCodes

array[string]

Yes

List of activity codes

{
"agentBalancesRequest": [
{
 "reqId": "ABC123",
 "agentOid": "agent123",
 "date": "2018-11-13"
 "activityCodes": ["vacationOid", "holidayOid"]}
]}

Response Headers

Content-Type: application/json

Response Data

Field

Type

Req

Notes

reqId

string

Yes

Request ID from EEM. Not used in WFM.

agentId

string

Yes

Agent that requested PTO balance

date

string

Yes

ISO formatted local date yyyy-mm-dd

groupAllotment

timeoffUnit<string>, balance<number>

Yes

Number of allotment hours or days for the date

timeoffUnit is "DAYS" or "HOURS"

Example: "timeoffUnit": "DAYS", "balance": 5

Response Data

Field

Type

Req

Notes

balances

object[activity<string>:, timeoffUnit<string>, balance<number>]

Yes

Balance remaining, in hours or days, for each activity code

Balance is positive, negative, or NULL (if activity code is undefined or not mapped to an earnings type)

Examples: "vacationOid": {timeoffUnit: "HOURS", "balance": 40}, "holidayOid": {timeoffUnit": "DAYS", "balance": 4}

{
"ptoBalances": [
{"reqId": "ABC123",
 "agentId": "25",
 "date": "2018-11-13",
 "groupAllotment": {"timeOffUnit": "DAYS","balance": 0}
 "balances": {"vacationOid": {"timeoffUnit": "HOURS", "balance": 40},
 "holidayOid": {"timeoffUnit": "DAYS", "balance": 4}}
}]}

Success Response

Code: 200 OK

Content : [Response Data]

Error Response

Code: 400 Bad Request

Code: 401 Unauthorized

Code: 500 Internal server error

Error message: {"message": "Error retrieving PTO balances."}

Sample Call

https://localhost/SMARTSync/services/rs/time-off/v1/pto-balances

request body:

{
"agentBalancesRequest": [
 {"reqId": "ABC123",
 "agentOid": "agent123",
 "date": "2018-11-13",
 "activityCodes": ["vacationOid","holidayCodeOid"]}
]}

Notes

Current usage is for a single agent and multiple requests

Get Agent Results

Description

API to retrieve agent results for a list of MUs for a date range

For each MU, agents that belong to the MU within the specified start/end dates will have agent results data returned (if the data exists).

For each MU, data will be returned beginning on the earliest time of the startDate, up through and including the latest time on the endDate. The MU's timezone will be used in conjunction with the start/end dates to calculate the correct timestamps to use when returning agent results data.

This API requires authentication.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSync/services/rs/mu-resources/v1/agentresults

Method

POST

Request Headers

Content-type: application/json

Accept: application/json

Cookie: JSESSIONID=<authenticated-sessionID>

Request Params

None

Request Data

Field

Type

Req

Notes

muIDs

comma-separated integer

Yes

Array of MU IDs for which to return agent results data

format

string

Yes

Either DETAIL (by period) or SUMMARY (by day)

startDate

string

Yes

Start date in YYYY-MM-DD format

endDate

string

Yes

End date in YYYY-MM-DD format

{
  "muIDs" : [ integer, integer, ... ],
  "format" : "string",
  "startDate": "string",
  "endDate" : "string" 
}

Response Headers

Content-Type: application/json

Response Data

Field

Type

Req

Notes

muData

array

Yes

Array of agent result data, by MU

  id

int

Yes

MU ID

oid

string

Yes

MU OID

name

string

Yes

MU name

timeZone

string

Yes

MU timezone

agents

array

Yes

Array of agent result data, by agent

agentID

int

Yes

Agent WFM ID

agentOid

string

Yes

Agent OID

acdData

array

Yes

Array of agent result data, by ACD

acdId

int

Yes

ACD ID

loginId

string

Yes

ACD login ID

queueData

array

Yes

Array of agent result data, by queue

queueId

int

Yes

Queue ID

queueName

string

Yes

Name of queue

data

array

Yes

Array of agent results data, by period

Response Data

Field

Type

Req

Notes

date

string

YYYY-MM-DD

Yes Date of record, based on MU TZ

period

string

HH:MM

Yes

Period within the day, based on MU TZ. Blank/Null if SUMMARY format specified.

contactsHandled

int

Yes

Contacts handled

outContacts

int

Yes

Out contacts

loginTime

int

Yes

Login time

talkTime

int

Yes

Talk time

workTime

int

Yes

Work time

outTime

int

Yes

Out time

holdTime

int

Yes

Hold time

readyTime

int

Yes

Ready time

notReadyTime

int

Yes

Not ready time

dnContacts

int

Yes

DN contacts

dnContactTime

int

Yes

DN contact time

internalContacts

int

Yes

Internal contacts

internalContactTime int Yes Internal contact time

Response Data

{
  "muData": [
    {
      "id": 1,
      "oid": "string",
      "name": "string",
      "timeZone": "string",
      "agents": [
        {
          "agentId": 1234,
          "agentOid": "oid",
          "acdData": [
            {
              "acdId": 1,
              "loginId": "string",
              "queueData": [
                {
                  "queueId": 1,
                  "queueName": "string",
                  "data": [
                    {
                      "date": "YYYY-MM-DD"
                      "period": "HH:MM"
                      "contactsHandled": 1,
                      "outContacts": 1,
                      "loginTime": 1,
                      "talkTime": 1,
                      "workTime": 1,
                      "outTime": 1,
                      "holdTime": 1,
                      "readyTime": 1,
                      "notReadyTime": 1,
                      "dnContacts": 1,
                      "dnContactTime": 1,
                      "internalContacts": 1,
                      "internalContactTime": 1
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Success Response

Code: 200 OK

Content : [Response Data]

Error Response

Code: 400 Bad Request

Code: 401 Unauthorized (not authenticated)

Code: 500 Internal server error

Error Response Body
{
 "error": {
 "message": "Some helpful message for debugging",
 "exception": "Some additional text about type of exception"
 }
}

Sample Call

https://localhost/SMARTSync/services/rs/mu-resources/v1/agentresults

request body:

{
"muIDs": [10,20,35],
"format": "DETAIL",
"startDate": "2020-10-12",
"endDate": "2020-12-10"
}

Data limits

This API has the following default data limits:

  • The number of requested agents x the number of days in the requested date range can't be greater than 2250 (for a DETAIL format request)
  • The number of requested agents x the number of days in the requested date range can't be greater than 7700 (for a SUMMARY format request)

If you exceed this limit, the API throws a 400 Bad Request error.

Because of the above limits, you can't use the API to extract data for MUs that contain more than 2250 (DETAIL) or 7700 (SUMMARY) agents. Contact NICE services to change the data limits.

Get CT Results

For details on Digital Channel Management (DCM) and how the requirements calculator and simulation use DCM data, see Digital Channel Management in the NICE WFM Training Manual for R7.4 and later.

Description

API to retrieve CT results for a list of BUs/CTs for a date range.

If BU ID(s) are provided, then those CTs that belong to the BU(s) within the specified date range will have results data returned.

For each CT, data will be returned beginning on the earliest time of the startDate, up through and including the latest time on the endDate. The CT's timezone will be used in conjunction with the start/end dates to calculate the correct timestamps to use when returning CT results data.

This API requires authentication.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSync/services/rs/ct-resources/v1/ctresults

Method

POST

Request Headers

Content-type: application/json

Accept: application/json

Cookie: JSESSIONID=<authenticated-sessionID>

Request Params

None

Request Data

Field

Type

Req

Notes

buIDs

comma-separated integer

No

Array of BU IDs for which to return CT results data (can be empty)

ctIDs

comma-separated integer

No

Array of CT IDs for which to return CT results data (can be empty)

startDate

string

Yes

Start date in YYYY-MM-DD format

endDate

string

Yes

End date in YYYY-MM-DD format

applyACDThreshold

boolean

No

This parameter is optional and defaults to false. To apply the ACD threshold values, provide this input parameter and set it to true. When this option is true, the CTs that belong to a BU will use the BU's ACD threshold values. CTs that do not belong to a BU will use the CT's ACD threshold values.

{
  "buIDs":[ integer, integer, ... ],
  "ctIDs":[ integer, integer, ...],
  "startDate":"YY-MM-DD",
  "endDate":"YY-MM-DD",
  "applyACDThreshold":boolean value 
}

Response Headers

Content-Type: application/json

Response Data

Field

Type

Req

Notes

cts

array

Yes

Array of CT(s), with each element containing CT results data for a CT

id

int

Yes

CT ID

oid

string

Yes

CT OID

name

string

Yes

CT name

timeZone

string

Yes

CT timezone

results

array

 

Array of CT results data

timestamp

string

yyyy-MM-ddTHH:mm:ssZ

Yes

Date/time of period (ISO dateTime UTC no millis)

acdID

int

Yes

ACD ID

lastModified

string

yyyy-MM-ddTHH:mm:ssZ

Yes

Last modified time (ISO dateTime UTC no millis)

actContactsReceived

int

Yes

Actual contacts received

Response Data

Field

Type

Req

Notes

actContactsHandled

int

Yes

Actual contacts handled

actAHT

numeric

Yes

Actual AHT

slPctObj

numeric

Yes

Service level percentage objective

actSLPct

numeric

Yes

Actual service level percentage

slTime

int

Yes

Service level time

asaObj

int

Yes

ASA objective

actASA

numeric

Yes

Actual ASA

maxOcc

numeric

Yes

Max occupancy

actOcc

numeric

Yes

Actual occupancy

actReq

numeric

Yes

Actual requirements

actContactsHandledSL

int

Yes

Actual contacts handled before service level

actContactsAband

int

Yes

Actual contacts abandoned

Response Data

field

type

req

notes

actContactsAbandSL int Yes Actual contacts abandoned before service level
actOutContacts int Yes Actual out contacts
actBacklogNotExp int Yes Actual backlog not expired
actBacklogExp int Yes Actual backlog expired
estStaff numeric Yes Estimated staff
actLogin in Yes Actual login
actTalkTime int Yes Actual talk time
actWorkTime int Yes Actual work time
actOutTime int Yes Actual out time
actReadyTime int Yes Actual ready time
actIdleTime int Yes Actual idle time
actHandledLong int Yes Actual handled long
actAbandLong int Yes Actual abandoned long
actQueueDelay int Yes Actual queue delay
actHoldTime int Yes Actual hold time
actATT numeric Yes Actual ATT
actAWT numeric Yes Actual AWS
actAOT numeric Yes Actual AOT

Response Data

{
  "cts": [
    {
      "id": 10,
      "oid": "OID",
      "name": "CT name",
      "timezone": "TZ",
      "results" : [
        {
          "timestamp": "yyyy-MM-ddTHH:mm:ssZ",
          "acdID": 1,
          "lastModified": "yyyy-MM-ddTHH:mm:ssZ",
          "actContactsReceived": 1,
          "actContactsHandled": 1,
          "actAHT": 0.00,
          "slPctObj": 0.00,
          "actSLPct": 0.00,
          "slTime": 1,
          "asaObj": 1,
          "actASA": 0.00,
          "maxOcc": 0.00,
          "actOcc": 0.00,
          "actReq": 0.00,
          "actContactsHandledSL": 1,
          "actContactsAband": 1,
          "actContactsAbandSL": 1,
          "actOutContacts": 1,
          "actBacklogNotExp": 1,
          "actBacklogExp": 1,
          "estStaff": 0.00,
          "actLogin": 1,
          "actTalkTime": 1,
          "actWorkTime": 1,
          "actOutTime": 1,
          "actReadyTime": 1, 
          "actIdleTime": 1,
          "actHandledLong": 1,
          "actAbandLong": 1,
          "actQueueDelay": 1,
          "actHoldTime": 1,
          "actATT": 0.00,
          "actAWT": 0.00,
          "actAOT": 0.00
        }
      ]
    }
  ]
}

Success Response

Code: 200 OK

Content : [Response Data]

Error Response

Code: 400 Bad Request

Code: 401 Unauthorized (not authenticated)

Code: 500 Internal server error

 
{
  "error": {
      "message": "Some helpful message for debugging",
      "exception": "Some additional text about type of exception"
    }
}

Sample Call 1

https://localhost/SMARTSync/services/rs/ct-resources/v1/ctresults

request body:

{
"buIDs":[10,20,35],
"ctIDs":[100,200,400],
"startDate":"2020-10-12",
"endDate":"2020-12-10"
}

Sample Call 2

https://localhost/SMARTSync/services/rs/ct-resources/v1/ctresults

request body:

{
"buIDs":[10,20,35],
"ctIDs":[100,200,400],
"startDate":"2020-10-12",
"endDate":"2020-12-10",
"applyACDThreshold":true
}

Data limit

This API has the following default data limit:

The number of requested CTs x the number of days in the requested date range can't be greater than 1800. The data limit is 1800 CT.Days.

If you exceed this limit, the API throws a 400 Bad Request error.

If CT.Days is greater than 1800, contact NICE services to change the data limit.

Get Security Events

The Req column for request data indicates whether the column is required in the request. The Req column in the response data indicates whether the value is never null or empty. Yes means the value is never null or empty. No means the value can be null or empty, depending on the event and result.

Description

API to retrieve security events for a date range.

Supervisor users must have permission to Supervisor WebStation > Security Audit.

This API requires authentication.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSync/services/rs/customer/v1/securityaudit

Method

POST

Request Headers

Content-type: application/json

Cookie: JSESSIONID=<sessionID>

Request Params

None

Request Data

Field

Type

Req

Notes

startTime

string

Yes

ISO time format in UTC: yyyy-MM-ddTHH:mm:ssZ

Example: 2018-04-02T14:30:00Z

endTime

string

No

ISO time format in UTC: yyyy-MM-ddTHH:mm:ssZ

Example: 2018-04-02T14:30:00Z

If not specified, the endTime is the current date and time.

eventType

string

No

Valid values:
AGENT_PROFILE_CHANGE

CHANGE_PASSWORD

CREATE_AGENT

CREATE_ROLE

CREATE_USER

DELETE_AGENT

DELETE_ROLE

DELETE_USER

LOGIN

LOGOUT

MU_ASSIGNMENT_CHANGE

PASSWORD_SETTINGS

ROLE_PERMISSION_CHANGE

ROLE_PROFILE_CHANGE

SECURITY_SETTINGS

USER_PERMISSION_CHANGE

Request Data

Field

Type

Req

Notes

      USER_PROFILE_CHANGE

If not specified, all events are returned.

agentLoginType

string

Yes

Valid values:

external_id

wfm_id

includeName

string

No

Whether to return the username and affected username (first name, last name, suffix), yes or no (case is sensitive).

If not specified or no, the username and affected username are not returned.

Request Data

Field

Type

Req

Notes

eventResults

string

No

Whether to return Success or Failed events (case is sensitive).

If not specified, both failed and successful events are returned.

details

string

No

Whether to return event details yes or no (case is sensitive).

The default is yes.

{
  "startTime":"yyyy-MM-ddTHH:mm:ssZ",
  "endTime":"yyyy-MM-ddTHH:mm:ssZ",
  "agentLoginType":"string",
  "eventType":["string", "string", ...],
  "includeName":"string",
  "eventResults":"string",
  "details":"string" 
}

Response Data

Field

Type

Req

Notes

time

string

Yes

ISO time format in UTC: yyyy-MM-ddTHH:mm:ssZ

Example: 2018-04-02T14:30:00Z

Response Data

Field

Type

Req

Notes

eventType

string

Yes

Valid values:

AGENT_PROFILE_CHANGE

CHANGE_PASSWORD

CREATE_AGENT

CREATE_ROLE

CREATE_USER

DELETE_AGENT

DELETE_ROLE

DELETE_USER

LOGIN

LOGOUT

MU_ASSIGNMENT_CHANGE

PASSWORD_SETTINGS

ROLE_PERMISSION_CHANGE

ROLE_PROFILE_CHANGE

SECURITY_SETTINGS

USER_PERMISSION_CHANGE

USER_PROFILE_CHANGE

Response Data

Field

Type

Req

Notes

access

string

Yes

Valid values:

Node

SmartSync

Web

authentication

string

No

Valid values:

LDAP

Local

RCP_LAUNCH_OUT

SCIM_AUTHENTICATION

SSO

WEB_STATION_DUAL_USER

Note: Only for login events.

userID

string

No

 

userName

string

No

The user's name.

"userName": {

"firstName": "string",

"lastName": "string",

"suffix": "string"

}

Response Data

Field

Type

Req

Notes

userType

string

No

Valid values:

Agent

Master

SCIM_CLIENT

Supervisor

clientIP

string

No

If not applicable, no value is returned.

affectedUserID

string

No

 

affectedUserName

string

No

The name of the affected user.

"affectedUserName": {

"firstName": "string",

"lastName": "string",

"suffix": string"

}

affectedUserType

string

No

Valid values:

Agent

Master

SCIM_CLIENT

Supervisor

affected role

string

No

 

Response Data

Field

Type

Req

Notes

eventResult

string

Yes

Must be one of these values:

Failed

Success

failureDetails

string

No

Valid values:

GENERAL_FAILURE

LOCKED_USER

MASTER_NOT_ALLOWED

MAX_ATTEMPTS_EXCEEDED

MISSING_ROLE

NO_PASSWORD

PASSWORD_EXPIRED

PASSWORD_INVALID

SSO_BYPASS_FAILED

SSO_MASTER_NOT_ALLOWED

SSO_USER_NOT_ALLOWED

USER_NOT_FOULD

Response Data

Field

Type

Req

Notes

details

string

No "details": [
{
"attribute": "string",
"oldValue": "string",
"newValue": "string",
"attributeSuffix": []
},
{
"attribute": "string",
"oldValue": "string",
"newValue": "string",
"attributeSuffix": []
}
]

attribute

string

Yes

Required when displaying details.

oldValue

string

No

 

newValue

string

No

 

Response Data

attributeSuffix

string

No

"attributeSuffix": [
{
"name": "string",
"value": "string"
},
{
"name": "string",
"value": "string"
}
]

name

string

Yes

Required when displaying AttributeSuffix.

Valid values:

ADG

ADV

Name

value

string

Yes

Required when displaying AttributeSuffix.

{
  "securityAuditRequest": [
    {
      "time":"2023-04-02T14:30:00Z",
      "eventType":"AGENT_PROFILE_CHANGE",
      "access":"NODE",
      "authentication":null, 
      "userId": 12345",
      "userName" : {
        "firstName":"Erik", 
        "lastName":"Green",
        "suffix":"Jr"}
      }
      

Response Data

      "userType":"Supervisor", 
      "clientIP":"142.1.12.172", 
      "affectedUserId":"32654", 
      "affectedUserName" : {
        "firstName":"Natasha", 
        "lastName":"Thacker",
        "suffix":null}
      }
      "affected userType":"Agent", 
      "affected role":null, 
      "eventResult":"Success", 
      "failureDetails":null, 
      "details":[, 
          {
          "oldValue":"test1@nice.com",
          "newValue":"test2@nice.com",
          "attributeSuffix":[],
          }
          {
          "oldValue":"King",
          "newValue":"Barry",
          "attributeSuffix":[],
          }
        ]
    }
  ]
}

Success Response

Code: 200 OK

Content : [Response Data]

Error Response

Code: 400 Bad Request

Code: 401 Unauthorized (not authenticated)

Code: 403 Forbidden

Code: 500 Internal server error

 
{
  "error": {
      "message": "Some helpful message for debugging",
      "exception": "Some additional text about type of exception"
    }
}

Sample Call 1

https://localhost/SMARTSync/services/rs/customer/v1/securityaudit

request body:

{
"startTime":"2023-04-02T14:30:00Z",
"endTime":"2023-06-02T14:30:00Z",
"agentLoginType":"wfm_id"
}

Sample Call 2

https://localhost/SMARTSync/services/rs/customer/v1/securityaudit

request body:

{
"startTime":"2023-04-02T14:30:00Z",
"eventType":["LOGIN",:CHANGE_PASSWORD"],
"agentLoginType":"wfm_id",
"includeName":"yes"
}

Attribute Names

This table contains a list of the attribute names for each event type.

Event Type Attribute Names
AGENT_PROFILE_CHANGE or
CREATE_AGENT

AGENT_PROFILE_ALTSENDATE

AGENT_PROFILE_ALTSENEXT

AGENT_PROFILE_EMAIL

AGENT_PROFILE_EXTERNALID

AGENT_PROFILE_FIRST_NAME

AGENT_PROFILE_LAST_NAME

AGENT_PROFILE_PERSONALID

AGENT_PROFILE_PSWD_CHG_REQ

AGENT_PROFILE_RANK

AGENT_PROFILE_SENDATE

AGENT_PROFILE_SENEXT

AGENT_PROFILE_SUFFIX

AGENT_PROFILE_USER_LOCKED

AGENT_PROFILE_WFM_ID

MU_ASSIGNMENT_CHANGE

AGENT_DATE_OF_MOVE

AGENT_MU_ASSIGNMENT

PASSWORD_SETTINGS

PSWD_CHG_REQ

PSWD_MAX_REPEATED_CHARS

PSWD_MIN_CATEGORIES

PSWD_MIN_LENGTH

PSWD_MIN_LETTERS

PSWD_MIN_LOWERCASE

PSWD_MIN_NUMERIC

PSWD_MIN_SPECIAL

PSWD_MIN_UPPERCASE

PSWD_RULES_ENFORCED

PSWD_START_END_LETTERS

PSWD_USERNAME_PROHIBITED

ROLE_PERMISSION_CHANGE or
USER_PERMISSION_CHANGE

AGTDATA_PERMS_ACCESS

AGTDATA_PERMS_AGT_DATA_DEF_ALPHANUM

AGTDATA_PERMS_AGT_DATA_DEF_CURRENCY

AGTDATA_PERMS_AGT_DATA_DEF_DATE

AGTDATA_PERMS_AGT_DATA_DEF_LOGICAL

AGTDATA_PERMS_AGT_DATA_DEF_NUM

AGTDATA_PERMS_AGT_DATA_DEF_SETALL

AGTDATA_PERMS_AGT_DATA_DEF_SYSUSER

AGTDATA_PERMS_AGT_DATA_DEF_TIME

ENTITY_PERMS_BU

ENTITY_PERMS_BU_SETALL

 

ENTITY_PERMS_BUSET

ENTITY_PERMS_BUSET_SETALL

ENTITY_PERMS_CT

ENTITY_PERMS_CT_SETALL

ENTITY_PERMS_CTSET

ENTITY_PERMS_CTSET_SETALL

ENTITY_PERMS_EG

ENTITY_PERMS_EG_SETALL

ENTITY_PERMS_EGSET

ENTITY_PERMS_EGSET_SETALL

ENTITY_PERMS_MU

ENTITY_PERMS_MU_SETALL

ENTITY_PERMS_MUSET

ENTITY_PERMS_MUSET_SETALL

ENTITY_PERMS_QUEUE

ENTITY_PERMS_QUEUE_SETALL

ENTITY_PERMS_TOG

ENTITY_PERMS_TOG_SETALL

MENU_PERMS_ADMIN_ACD_PARMS

MENU_PERMS_ADMIN_ACT_CODE_ATTR

MENU_PERMS_ADMIN_ACT_CODE_ATTR_ASSGN

MENU_PERMS_ADMIN_ACT_CODE_DEF

MENU_PERMS_ADMIN_AGT_AVAIL

MENU_PERMS_ADMIN_AGT_DATA_GRPS

MENU_PERMS_ADMIN_AGT_DATA_VALUES

MENU_PERMS_ADMIN_AGT_DEF

MENU_PERMS_ADMIN_AGT_PROFILE

 

MENU_PERMS_ADMIN_AGT_SKILLS

MENU_PERMS_ADMIN_AGT_STATES

MENU_PERMS_ADMIN_AGT_TIME_OFF_PARMS

MENU_PERMS_ADMIN_BU

MENU_PERMS_ADMIN_CHANLS

MENU_PERMS_ADMIN_CHANLS_CONCUR_SESS

MENU_PERMS_ADMIN_CT

MENU_PERMS_ADMIN_CT_CONCUR_SESS

MENU_PERMS_ADMIN_CUSTOM_ACT

MENU_PERMS_ADMIN_CUSTOM_ACTS_EDIT_ALL

MENU_PERMS_ADMIN_EG

MENU_PERMS_ADMIN_ENTITY_ASSGNS

MENU_PERMS_ADMIN_ENTITY_SETS

MENU_PERMS_ADMIN_EVENT_SETS

MENU_PERMS_ADMIN_HOLIDAYS

MENU_PERMS_ADMIN_HRDIRECT_CONFIG

MENU_PERMS_ADMIN_LDAP_CONFIG

MENU_PERMS_ADMIN_MOVE_AGTS

MENU_PERMS_ADMIN_MU

MENU_PERMS_ADMIN_MULTI_AGT_DATA_VALS

MENU_PERMS_ADMIN_QUEUES

MENU_PERMS_ADMIN_SCHED_SUMMARY

MENU_PERMS_ADMIN_SEAT_LIMITS

MENU_PERMS_ADMIN_SHIFT

MENU_PERMS_ADMIN_SKILLS

MENU_PERMS_ADMIN_TIME_FILTERS

 

MENU_PERMS_ADMIN_USERS_AND_PERMS

MENU_PERMS_ADMIN_WEB_EMAIL_SETTINGS

MENU_PERMS_ADMIN_WEB_PWD_SETTINGS

MENU_PERMS_ADMIN_WEB_SEC_SETTINGS

MENU_PERMS_ADMIN_WEB_SSO_CONFIG

MENU_PERMS_FCST_ADJFCST

MENU_PERMS_FCST_ADJFCST_TOTALS

MENU_PERMS_FCST_CAMP_DISTS

MENU_PERMS_FCST_CPY_FCST

MENU_PERMS_FCST_CPY_LONG_TERM_FCST

MENU_PERMS_FCST_CPY_REQS

MENU_PERMS_FCST_CT_ALLOCS

MENU_PERMS_FCST_DEL_LONG_TERM_FCST

MENU_PERMS_FCST_DIST_RULES

MENU_PERMS_FCST_FCSTOBJ

MENU_PERMS_FCST_GEN_CAMP_DIST

MENU_PERMS_FCST_GEN_FCST_ACT

MENU_PERMS_FCST_GEN_FCST_ALLOCS_ACT

MENU_PERMS_FCST_GEN_FCST_ALLOCS_SHORT_TERM

MENU_PERMS_FCST_GEN_FCST_LONG_TERM

MENU_PERMS_FCST_GEN_FCST_SHORT_TERM

MENU_PERMS_FCST_INTRACAMP

MENU_PERMS_FCST_INTRADAY

MENU_PERMS_FCST_INVENTORY_INSIGHTS

MENU_PERMS_FCST_MONTHLY_TOTALS

MENU_PERMS_FCST_QUEUE_HIST

 

MENU_PERMS_FCST_REALLOC_CONT_AND_REQ

MENU_PERMS_FCST_REQ_ALLOCS

MENU_PERMS_FCST_SAAS_ENHNCD_STRTEG_PLANR

MENU_PERMS_FCST_SPCL_DAYS

MENU_PERMS_FCST_SPCL_DISTS

MENU_PERMS_FCST_WEB_MULTI_STEP_WORKFLOW

MENU_PERMS_FCST_WEB_PERS_PLANR

MENU_PERMS_FCST_WKLY_STAFF

MENU_PERMS_MODULE_ADMIN

MENU_PERMS_MODULE_CHG_MGR

MENU_PERMS_MODULE_FCST

MENU_PERMS_MODULE_OPS_MGR

MENU_PERMS_MODULE_SCHED

MENU_PERMS_MODULE_TOM

MENU_PERMS_MODULE_WEB

MENU_PERMS_MODULE_RPT_MGR

MENU_PERMS_OPR_MGR_ADHRNCE_EXCLUSIONS

MENU_PERMS_OPR_MGR_AGT_ACT

MENU_PERMS_OPR_MGR_AGT_DTL

MENU_PERMS_OPR_MGR_AGT_STATE_SUMMARY

MENU_PERMS_OPR_MGR_PERF_ANALYSIS

MENU_PERMS_OPR_MGR_REAL_TIME_ADHRNCE

 

MENU_PERMS_RPT_MGR_ADHRNCE

MENU_PERMS_RPT_MGR_AGT_ACD_ASSGN

MENU_PERMS_RPT_MGR_AGT_DEF

MENU_PERMS_RPT_MGR_AGT_DTL

MENU_PERMS_RPT_MGR_AGT_MOVE_HIST

MENU_PERMS_RPT_MGR_AGT_PREFS

MENU_PERMS_RPT_MGR_AGT_SCHED_CALNDR

MENU_PERMS_RPT_MGR_AGT_SCHEDS

MENU_PERMS_RPT_MGR_AGT_TIME_OFF

MENU_PERMS_RPT_MGR_ANALYSIS

MENU_PERMS_RPT_MGR_CONFRMNCE

MENU_PERMS_RPT_MGR_CONFRMNCE_BY_INTRVL

MENU_PERMS_RPT_MGR_DAILY_TIME_OFF

MENU_PERMS_RPT_MGR_FUT_ACTS

MENU_PERMS_RPT_MGR_INTRADAY

MENU_PERMS_RPT_MGR_MEASUREMENTS

MENU_PERMS_RPT_MGR_MULTIWEEKSCHEDULE

MENU_PERMS_RPT_MGR_PAT_ASSGN

MENU_PERMS_RPT_MGR_PERF_ANALYSIS

MENU_PERMS_RPT_MGR_PLANDYNAMICALLOC

MENU_PERMS_RPT_MGR_PREF_VAR

MENU_PERMS_RPT_MGR_PROCESS_RPTS_DEL

MENU_PERMS_RPT_MGR_PROCESS_RPTS_VIEW

 

MENU_PERMS_RPT_MGR_QUEUE_UTIL

MENU_PERMS_RPT_MGR_RESULTS

MENU_PERMS_RPT_MGR_SCHED_AUDIT

MENU_PERMS_RPT_MGR_SCHED_TRADES

MENU_PERMS_RPT_MGR_SKILLGRP_AVAIL

MENU_PERMS_RPT_MGR_TIME_UTIL

MENU_PERMS_RPT_MGR_VALDTE_ACTCODES

MENU_PERMS_RPT_MGR_VALDTE_AGT_HRS

MENU_PERMS_RPT_MGR_VALDTE_AGT_SHIFTS

MENU_PERMS_RPT_MGR_VALDTE_FUT_ACTS

MENU_PERMS_RPT_MGR_WEB_RPTS

MENU_PERMS_RPT_MGR_WEB_SCHED_CHGS

MENU_PERMS_SCHED_AGT_FAIRNESS_HIST

MENU_PERMS_SCHED_AGT_HOLIDAY_HIST

MENU_PERMS_SCHED_AGT_HRS

MENU_PERMS_SCHED_AGT_SHIFT_LIMITS

MENU_PERMS_SCHED_ALLOC_AGT_HRS

MENU_PERMS_SCHED_APPLY_FUT_ACTS

MENU_PERMS_SCHED_AWARD_BIDS

MENU_PERMS_SCHED_BID_PARMS

MENU_PERMS_SCHED_BID_PERMS

MENU_PERMS_SCHED_BLOCK_SCHED_ACTS

MENU_PERMS_SCHED_CPY_AGT_SCHEDS

MENU_PERMS_SCHED_CPY_MU_SCHEDS

MENU_PERMS_SCHED_CREATE_SCHED_FROM_PATS

MENU_PERMS_SCHED_DAILY_RULES

 

MENU_PERMS_SCHED_EXPORT_PATS

MENU_PERMS_SCHED_FUT_ACTS

MENU_PERMS_SCHED_GEN_SCHEDS

MENU_PERMS_SCHED_GEN_SCHED_PATS

MENU_PERMS_SCHED_IMPORT_PATS

MENU_PERMS_SCHED_INDVDUAL_SCHEDS

MENU_PERMS_SCHED_MANAGE_BIDS

MENU_PERMS_SCHED_MEETING_SCHEDLR

MENU_PERMS_SCHED_OPTIMIZE_SCHEDS

MENU_PERMS_SCHED_PAT_MGMT

MENU_PERMS_SCHED_SCHED_MGMT

MENU_PERMS_SCHED_SCHED_PAT_VAR

MENU_PERMS_SCHED_SHIFT_POLICIES

MENU_PERMS_SCHED_SIMULATE_SCHEDS

MENU_PERMS_SCHED_STAFF_TABLES

MENU_PERMS_SCHED_TRADE_SCHEDS

MENU_PERMS_SCHED_WKLY_RULES

MENU_PERMS_TOM_ACCRUAL_TABLES

MENU_PERMS_TOM_AGT_TIME_OFF_PARMS

MENU_PERMS_TOM_AGT_TIME_OFF_SUMMARY

MENU_PERMS_TOM_CARRYOVER_CONVERT

MENU_PERMS_TOM_CARRYOVER_CONVERT_UNDO

MENU_PERMS_TOM_CARRYOVER_TABLES

MENU_PERMS_TOM_HOLIDAY_PREF

MENU_PERMS_TOM_PROCESS_SIMUL_BIDS

MENU_PERMS_TOM_SIMUL_BID

 

MENU_PERMS_TOM_TIME_OFF_ALLOT

MENU_PERMS_TOM_TIME_OFF_GRPS

MENU_PERMS_TOM_TIME_OFF_RULES

MENU_PERMS_TOM_UPDATE_MDR

MENU_PERMS_TOM_WEB_TOM

MENU_PERMS_WEB_ACT_TRACKER

MENU_PERMS_WEB_AVAIL_CONFIG

MENU_PERMS_WEB_CANCEL_PROCESS

MENU_PERMS_WEB_HOME

MENU_PERMS_WEB_MU_CONFIG

MENU_PERMS_WEB_PROCESS_MONITOR

MENU_PERMS_WEB_RECV_SCHED_CHG_ALERTS

MENU_PERMS_WEB_RECV_SCHED_CHG_RQST_ALERTS

MENU_PERMS_WEB_REL_LCK

MENU_PERMS_WEB_SCHED_CHG_CONFIG

MENU_PERMS_WEB_SCHED_CHG_RQSTS

MENU_PERMS_WEB_SCHED_CHG_RULES

MENU_PERMS_WEB_SCHED_PREFS

MENU_PERMS_WEB_SCHED_PREFS_CONFIG

MENU_PERMS_WEB_SCHED_TRADE_CONFIG

MENU_PERMS_WEB_SCHED_TRADE_RQSTS

MENU_PERMS_WEB_SCHED_VIEWER

MENU_PERMS_WEB_SCHED_VIEWER_CONFIG

MENU_PERMS_WEB_SCHED_VIEWER_REL_DATES

MENU_PERMS_WEB_SEC_AUDIT

 

MENU_PERMS_WEB_STATS_VIEWER

MENU_PERMS_WEB_STATS_VIEWER_CONFIG

MENU_PERMS_WEB_TIME_BOARD_CONFIG

MENU_PERMS_WEB_TIME_BOARD_DEF_SLOTS

MENU_PERMS_WEB_WORK_JRNL

SCHED_PERMS_ACTCODE

SCHED_PERMS_ACTCODE_SETALL

SCHED_PERMS_SCHED_CHG_FUTURE

SCHED_PERMS_SCHED_CHG_PAST

SCHED_PERMS_SCHED_CHG_TODAY

SCHED_PERMS_WRKRULE_AVAIL

SCHED_PERMS_WRKRULE_DAYS_OFF

SCHED_PERMS_WRKRULE_MAX_AVG_WKLY_HRS

SCHED_PERMS_WRKRULE_MAX_CONSECUTIVE_DAYS

SCHED_PERMS_WRKRULE_MAX_WKLY_HRS

SCHED_PERMS_WRKRULE_MIN_REST_PRD_PER_WK

SCHED_PERMS_WRKRULE_MIN_TIME_BTWN_SCHED

SCHED_PERMS_WRKRULE_MIN_WKLY_HRS

SCHED_PERMS_WRKRULE_SCHED_LEN

ROLE_PROFILE_CHANGE ROLE_NAME
SECURITY_SETTINGS

SEC_FAIL_LOGIN_LOCKOUT

SEC_PSWD_CHG_EMAIL

SEC_PSWD_EXP_DAYS

SEC_PSWD_EXP_NOTIFY_DAYS

SEC_PSWD_REUSE_AFTER

USER_PROFILE_CHANGE or CREATE_USER

USER_PROFILE_ASSIGN_ROLE

USER_PROFILE_EMAIL

USER_PROFILE_FIRST_NAME

USER_PROFILE_LAST_NAME

USER_PROFILE_LINKED_AGENT

USER_PROFILE_LOGIN_ID

USER_PROFILE_PRIMARY_ROLE

USER_PROFILE_PSWD_CHG_REQ

USER_PROFILE_SERVICE_ACCOUNT

USER_PROFILE_SUFFIX

USER_PROFILE_USER_LOCKED

Data limit

This API has no data limits, but customers with more than 10,000 named agents should run the API with a data range of 1 month or less.

SCIM-Related APIs

What is SCIM?

System for Cross-domain Identity Management (SCIM) is an open standard used to automate the exchange of user identity information between identity domains. SCIM uses a standard REST API and the data is formatted in JSON or XML. The SCIM-compliant REST APIs for WFM use data formatted in JSON.

SCIM Use of Bearer Token

Background on WFM multi-tenancy

Since a single WFM application instance can support multiple tenants, WFM provides a way for a client to identify which “tenant” the client wants to access. WFM does this by mapping one or more unique subdomains (used together with a common base domain) to each tenant. The client, whether it's a browser or a custom SmartSync client, can use a specific subdomain (plus common base domain) in its URL to properly identify which tenant to access. This combination of a unique subdomain + common base domain for a tenant is referred to as a tenant’s “virtual host”.

For example, assume a single WFM instance supports three tenants. The base domain for the instance could be .nicewfm.com, and the subdomains for the three tenants could be cust1, cust2, and cust3. So the virtual host for tenant 1 would be cust1.nicewfm.com, the virtual host for tenant 2 would be cust2.nicewfm.com, and so on.

If a web client wants to access WebStation for tenant 2, the URL used would be https://cust2.nicewfm.com/…

if a SmartSync client wants to access WFM for tenant 3, the URL used would be https://cust3.nicewfm.com/…

Client Authentication for SmartSync SCIM APIs

For the SCIM REST APIs available in WFM 7.5 and later that require authentication, there are two authentication options available for SCIM clients:

  • Authenticate using the User Service - Login REST API. If successful, use the jsessionId as a cookie header value when calling the SCIM APIs.

    Example: Cookie: JSESSIONID={jsession-id}

  • Obtain a SCIM bearer token from WFM using the bearer token REST APIs and provide this bearer token to WFM within the “Authorization” HTTP header.

    Example: Authorization: Bearer {bearer token-id}

Requirements for using WFM SCIM bearer token for client authentication

When a bearer token is used for authentication with SCIM APIs, WFM requires the HTTP request received by the SmartSync node to contain a “Host” header. The header value is a valid virtual host for the tenant. WFM uses the value of this “Host” header to determine the tenant for which request is made.

If the SmartSync client communicates directly with the WFM Apache, the WFM Apache will automatically generate the “Host” header before forwarding the HTTP request to a SmartSync node. However, if there are upstream components sitting between the SmartSync client and the WFM Apache (such as a web application firewall (WAF) or load balancer), the upstream component must be properly configured to set the “Host” HTTP header to the full domain name used in the URL of the original HTTP request made by the client.

SCIM Bearer Token REST APIs

Get a Bearer Token

Description

Gets the token that will be used for the authentication of SCIM endpoints.

Authentication Required

Yes

The user associated with the session must have “Modify” access to the RCP Users and Permissions view.

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/BearerToken

Method

GET

Request Headers

Accept: application/scim+json or Accept: application/json

Cookie: JSESSIONID={some-jsession-id}

Request Params

None

Request Data

NA

Response Headers

Content-Type: application/json

Response Data

Field

Type

Req

Notes

id string

Yes

The ID of the bearer token.

expirationTime Instant Yes The date/time in which the token becomes invalid.

Response Data

A JSON body including a Token Object.

var(--codeSnippetCopyLabel)
{
    "id": "Ncivs9lOGT-ylPgcXTAMN22qLnydl0Si",
    "expirationTime": "2023-05-08T17:00:01.911-05:00"
}

Success Response

Code: 200 OK

Content: [response data]

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/BearerToken

Error responses

Code: 401 Unauthenticated

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "unauthorized",
   "status": 401
}

Code: 403 Unauthorized (Occurs when API caller is logged in but does not have access.)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "unauthorized",
   "status": 403
}

Code: 404 Not Found (Occurs when a token does not exist)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "There were no valid tokens for SCIM authentication.",
   "status": 404
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/BearerToken

Generate or Refresh a Bearer Token

Description

API to automatically generate or refresh a token that will be used for authentication for SCIM endpoints. The token expiration date is configurable.

Authentication Required

Yes

The user associated with the session must have “Modify” access to the RCP Users and Permissions view.

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/BearerToken

Method

POST

Request Headers

Accept: application/scim+json or Accept: application/json

Cookie: JSESSIONID={some-jsession-id}

Request Params

None

Request Data

var(--codeSnippetCopyLabel)
Create a token with a 30-day expiration
{

   "replaceToken": true

   "daysUntilExpiration": "30"

}
var(--codeSnippetCopyLabel)

Create a token with the default 180-day expiration

{

   "replaceToken": true

   "daysUntilExpiration": "null"

}
var(--codeSnippetCopyLabel)

Refresh token with a 30-day expiration

{

   "replaceToken": false

   "daysUntilExpiration": "30"

}
var(--codeSnippetCopyLabel)

Refresh token with the default 180-day expiration

{

   "replaceToken": false

   "daysUntilExpiration": "null"

}

Response Headers

Content-Type: application/json

Response Data

Field

Type

Req

Notes

id string

Yes

The ID of the bearer token.

expirationTime Instant Yes The date/time in which the token becomes invalid.

Response Data

A JSON Body including a Token Object.

var(--codeSnippetCopyLabel)
{
    "id": "Ncivs9lOGT-ylPgcXTAMN22qLnydl0Si",
    "expirationTime": "2023-05-08T17:00:01.911-05:00"
}

Success Response

Code: 200 OK

Content: [response data]

Error Response

Code: 401 Unauthenticated

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "unauthorized",
   "status": 401
}

Code: 403 Unauthorized (Occurs when API caller is logged in but does not have access.)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "unauthorized",
   "status": 403
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/BearerToken

SCIM-Compliant REST APIs

Get Schemas

Description

API to retrieve a list of supported service provider schemas. If you only need to retrieve a single schema, see Get a Schema.

Authentication Required

No

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/Schemas

Method

GET

Request Headers

Accept: application/scim+json or Accept: application/json

Request Params

None

Request Data

NA

Response Headers

Content-Type: application/json

Response Data

ScimSchema

Field

Type

Req

Notes

id string

Yes

ID of the schema as a URI.

name string Yes Name of the schema.
description string Yes Human readable description of the schema.
attributes List<ScimAttribute> Yes A list of attributes for the schema.
meta JSON object Yes A key/value pair object that stores the meta data for the schema.
Response Data

ScimAttribute

Field

Type

Req

Notes

name

string

Yes

Attribute's name.

type

string

Yes

Attribute's type. (String, boolean, decimal, integer, dateTime, reference, or complex)

multivalued

boolean

Yes

A flag to indicate if this attribute is a list or single attribute.

description

string

Yes

Human readable description of the attribute.

required

boolean

Yes

A flag to indicate if this attribute is required or not.

caseExact

boolean

Yes

A flag to indicate if the value of the attribute is case sensitive.

Response Data

Field

Type

Req

Notes

mutability

string

Yes

Attribute's mutability. (read only, read write, immutable, write only)

returned

string

Yes

When an attribute should be returned. (always, never, default, on request)

uniqueness

string

Yes

Attribute's uniqueness. (none, server, global)

canonicalValues

List<string>

No

A list of the attribute's canonical values, if any.

subAttributes

List<ScimAttribute>

No

A list of the attributes's sub-attributes. Sub-attributes take the form of a ScimAttribute.

Response Data

A list of ScimSchema in JSON format.

var(--codeSnippetCopyLabel)
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 3,
    "itemsPerPage": 3,
    "startIndex": 1,
    "Resources": [
        {
            "id": "urn:ietf:params:scim:schemas:core:2.0:User",
            "name": "User",
            "description": "User Account",
            "attributes": [
                {
                    "name": "id",
                    "type": "string",
                    "multivalued": false,
                    "description": "WFM oid for the user",
                    "required": true,
                    "caseExact": true,
                    "mutability": "readOnly",
                    "returned": "always",
                    "uniqueness": "server"
                },
                {
                    "name": "userName",
                    "type": "string",
                    "multivalued": false,
                    "description": "WFM user name",
                    "required": false,
                    "caseExact": true,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "server"
                },
                {
                    "name": "externalId",
                    "type": "string",
                    "multivalued": false,
                    "description": "External id for WFM user",
                    "required": false,
                    "caseExact": true,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "server"
                },
                {
                    "subAttributes": [
                        {
                            "name": "givenName",
                            "type": "string",
                            "multivalued": false,
                            "description": "User's given name",
                            "required": false,
                            "caseExact": true,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "familyName",
                            "type": "string",
                            "multivalued": false,
                            "description": "User's family name",
                            "required": true,
                            "caseExact": true,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "honorificSuffix",
                            "type": "string",
                            "multivalued": false,
                            "description": "Honorific suffix(es) of the User",
                            "required": false,
                            "caseExact": true,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        }
                    ],
                    "name": "name",
                    "type": "complex",
                    "multivalued": false,
                    "description": "User's name including given name, family name, and honorific suffix",
                    "required": true,
                    "caseExact": true,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "subAttributes": [
                        {
                            "name": "type",
                            "type": "string",
                            "multivalued": false,
                            "description": "Email type, such as home or work (not currently used)",
                            "required": false,
                            "caseExact": false,
                            "mutability": "immutable",
                            "returned": "never",
                            "uniqueness": "none"
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "multivalued": false,
                            "description": "User's email address",
                            "required": false,
                            "caseExact": false,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "primary",
                            "type": "boolean",
                            "multivalued": false,
                            "description": "Is this the primary email address",
                            "required": false,
                            "caseExact": false,
                            "mutability": "immutable",
                            "returned": "default",
                            "uniqueness": "none"
                        }
                    ],
                    "name": "emails",
                    "type": "complex",
                    "multivalued": true,
                    "description": "List of user email addresses. If more than one is provided we only accept primary.",
                    "required": false,
                    "caseExact": false,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "canonicalValues": [
                        "AGENT",
                        "SUPERVISOR"
                    ],
                    "name": "userType",
                    "type": "string",
                    "multivalued": false,
                    "description": "Type of user (Agent, Supervisor)",
                    "required": true,
                    "caseExact": true,
                    "mutability": "readOnly",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "name": "active",
                    "type": "boolean",
                    "multivalued": false,
                    "description": "Is user active",
                    "required": false,
                    "caseExact": false,
                    "mutability": "readOnly",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "name": "roles",
                    "type": "String",
                    "multivalued": true,
                    "description": "A supervisor's assigned roles.",
                    "required": false,
                    "caseExact": true,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "none"
                }
            ],
            "meta": {
                "resourceType": "Schema"
            }
        },
        {
            "id": "urn:ietf:params:scim:schemas:extension:nice:2.0:Supervisor",
            "name": "Supervisor",
            "description": "WFM User Attributes",
            "attributes": [
                {
                    "name": "uuid",
                    "type": "string",
                    "multivalued": false,
                    "description": "Uuid for WFM user",
                    "required": false,
                    "caseExact": true,
                    "mutability": "readOnly",
                    "returned": "default",
                    "uniqueness": "server"
                }
            ],
            "meta": {
                "resourceType": "Schema"
            }
        },
        {
            "id": "urn:ietf:params:scim:schemas:extension:nice:2.0:Agent",
            "name": "Agent",
            "description": "Additional data used by Agents in WFM",
            "attributes": [
                {
                    "name": "uuid",
                    "type": "string",
                    "multivalued": false,
                    "description": "Uuid for WFM user",
                    "required": false,
                    "caseExact": true,
                    "mutability": "readOnly",
                    "returned": "default",
                    "uniqueness": "server"
                },
                {
                    "subAttributes": [
                        {
                            "name": "muId",
                            "type": "integer",
                            "multivalued": false,
                            "description": "ID for the agent's MU",
                            "required": true,
                            "caseExact": false,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "startDate",
                            "type": "dateTime",
                            "multivalued": false,
                            "description": "The date the agent moved into the MU.",
                            "required": false,
                            "caseExact": false,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "endDate",
                            "type": "dateTime",
                            "multivalued": false,
                            "description": "The date the agent moved out of the MU. If agent is currently in the MU, then this value will be null",
                            "required": false,
                            "caseExact": false,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        }
                    ],
                    "name": "mu",
                    "type": "complex",
                    "multivalued": false,
                    "description": "MU id for WFM user",
                    "required": true,
                    "caseExact": false,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "subAttributes": [
                        {
                            "name": "acdId",
                            "type": "integer",
                            "multivalued": false,
                            "description": "ID for the agent's ACD.",
                            "required": true,
                            "caseExact": false,
                            "mutability": "readOnly",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "loginId",
                            "type": "string",
                            "multivalued": false,
                            "description": "Login for the agent's ACD.",
                            "required": false,
                            "caseExact": false,
                            "mutability": "readOnly",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "priority",
                            "type": "integer",
                            "multivalued": false,
                            "description": "Priority for the agent's ACD.",
                            "required": false,
                            "caseExact": false,
                            "mutability": "readOnly",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "startDate",
                            "type": "dateTime",
                            "multivalued": false,
                            "description": "Date agent started ACD.",
                            "required": false,
                            "caseExact": false,
                            "mutability": "readOnly",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "endDate",
                            "type": "dateTime",
                            "multivalued": false,
                            "description": "Date agent ended ACD.",
                            "required": false,
                            "caseExact": false,
                            "mutability": "readOnly",
                            "returned": "default",
                            "uniqueness": "none"
                        }
                    ],
                    "name": "acd",
                    "type": "complex",
                    "multivalued": true,
                    "description": "ACD id for WFM user",
                    "required": false,
                    "caseExact": false,
                    "mutability": "readOnly",
                    "returned": "default",
                    "uniqueness": "server"
                },
                {
                    "name": "personalId",
                    "type": "string",
                    "multivalued": false,
                    "description": "Personal id for WFM user",
                    "required": false,
                    "caseExact": true,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "server"
                }
            ],
            "meta": {
                "resourceType": "Schema"
            }
        }
    ]
}

Success Response

Code: 200 OK

Content: [response data]

Error Response

Code: 403 Forbidden (If a filter is added to the URL)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "Filtering is not allowed.",
   "status": 403
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/Schemas

Get a Schema

Description

API to retrieve details of a specific schema based on the schema id.

Authentication Required

No

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/Schemas/{id}

Method

GET

Request Headers

Accept: application/scim+json or Accept: application/json

Path Params

Field

Type

Req

Notes

id

string

Yes

The id of the specific schema you are querying.

Request Data

NA

Response Headers

Content-Type: application/json

Response Data

ScimSchema

Field

Type

Req

Notes

id string

Yes

Id of the schema as a URI.

name string Yes Name of the schema.
description string Yes Human readable description of the schema.
attributes List<ScimAttribute> Yes A list of attributes for the schema.
meta JSON object Yes A key/value pair object that stores the meta data for the schema.
Response Data

ScimAttribute

Field

Type

Req

Notes

name string

Yes

Attribute's name.

type string Yes Attribute's type. (String, boolean, decimal, integer, dateTime, reference, or complex)
multivalued boolean Yes A flag to indicate if this attribute is a list or single attribute.
description string Yes Human readable description of the attribute.
required boolean Yes A flag to indicate if this attribute is required or not.
caseExact boolean Yes A flag to indicate if the value of the attribute is case sensitive.
Response Data

Field

Type

Req

Notes

mutability string Yes Attribute's mutability. (read only, read write, immutable, write only)
returned string Yes When an attribute should be returned. (always, never, default, on request)
uniqueness string Yes Attribute's uniqueness. (none, server, global)
canonicalValues List<string> No A list of the attribute's canonical values, if any.
subAttributes List<ScimAttribute> No A list of the attributes's sub-attributes. Sub-attributes take the form of a ScimAttribute.

Response Data

A ScimSchema in JSON format. This example is an individual item, starting at the "id" field.

var(--codeSnippetCopyLabel)
{
            "id": "urn:ietf:params:scim:schemas:core:2.0:User",
            "name": "User",
            "description": "User Account",
            "attributes": [
                {
                    "name": "id",
                    "type": "string",
                    "multivalued": false,
                    "description": "WFM oid for the user",
                    "required": true,
                    "caseExact": true,
                    "mutability": "readOnly",
                    "returned": "always",
                    "uniqueness": "server"
                },
                {
                    "name": "userName",
                    "type": "string",
                    "multivalued": false,
                    "description": "WFM user name",
                    "required": false,
                    "caseExact": true,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "server"
                },
                {
                    "subAttributes": [
                        {
                            "name": "givenName",
                            "type": "string",
                            "multivalued": false,
                            "description": "User's given name",
                            "required": false,
                            "caseExact": true,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "familyName",
                            "type": "string",
                            "multivalued": false,
                            "description": "User's family name",
                            "required": true,
                            "caseExact": true,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "honorificSuffix",
                            "type": "string",
                            "multivalued": false,
                            "description": "Honorific suffix(es) of the User",
                            "required": false,
                            "caseExact": true,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        }
                    ],
                    "name": "name",
                    "type": "complex",
                    "multivalued": false,
                    "description": "User's name including given name, family name, and honorific suffix",
                    "required": true,
                    "caseExact": true,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "subAttributes": [
                        {
                            "name": "type",
                            "type": "string",
                            "multivalued": false,
                            "description": "Email type, such as home or work (not currently used)",
                            "required": false,
                            "caseExact": false,
                            "mutability": "immutable",
                            "returned": "never",
                            "uniqueness": "none"
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "multivalued": false,
                            "description": "User's email address",
                            "required": false,
                            "caseExact": false,
                            "mutability": "readWrite",
                            "returned": "default",
                            "uniqueness": "none"
                        },
                        {
                            "name": "primary",
                            "type": "boolean",
                            "multivalued": false,
                            "description": "Is this the primary email address",
                            "required": false,
                            "caseExact": false,
                            "mutability": "immutable",
                            "returned": "default",
                            "uniqueness": "none"
                        }
                    ],
                    "name": "emails",
                    "type": "complex",
                    "multivalued": true,
                    "description": "List of user email addresses. If more than one is provided we only accept primary.",
                    "required": false,
                    "caseExact": false,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "canonicalValues": [
                        "AGENT",
                        "SUPERVISOR"
                    ],
                    "name": "userType",
                    "type": "string",
                    "multivalued": false,
                    "description": "Type of user (Agent, Supervisor)",
                    "required": true,
                    "caseExact": true,
                    "mutability": "readOnly",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "name": "roles",
                    "type": "string",
                    "multivalued": true,
                    "description": "Labels representing a collection of permissions.",
                    "required": false,
                    "caseExact": true,
                    "mutability": "readWrite",
                    "returned": "default",
                    "uniqueness": "none"
                },
                {
                    "name": "active",
                    "type": "boolean",
                    "multivalued": false,
                    "description": "Is user active",
                    "required": false,
                    "caseExact": false,
                    "mutability": "readOnly",
                    "returned": "default",
                    "uniqueness": "none"
                }
            ],
            "meta": {
                "resourceType": "Schema"
            }
        }

Success Response

Code: 200 OK

Content: [response data]

Error Response

Code: 403 Forbidden (If a filter is added to the URL)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "filtering is not allowed",
   "status": 403
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/Schemas/{id}

Get Resource Types

Description

API to return a JSON structure that specifies the metadata about resource types.

Authentication Required

No

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/ResourceTypes

Method

GET

Request Headers

Accept: application/scim+json or Accept: application/json

Request Params

None

Request Data

NA

Response Headers

Content-Type: application/json

Response Data

Field

Type

Req

Notes

schema

string

Yes

Unique URI that is used to define the attributes present in the current JSON structure. URI: "urn:ietf:params:scim:schemas:core:2.0:ResourceType"

id string Yes A unique id, often the same as "name" attribute.
name string Yes The name is referenced by the "meta.resourceType" attribute in all resources.
description string Yes Human readable description.
endpoint string Yes HTTP-addressable endpoint relative to the base URL of the service provider.
schema string Yes The resource type's primary schema. This is equal to the "id" attribute of the associated "Schema" resource.
schemaExtensions JSON object Yes A list of URIs of the resource type's schema extensions. Each extension must include the URI extended schema ("schema") and a boolean. ("required")

Response Data

A list of ScimResourceTypes in JSON format.

var(--codeSnippetCopyLabel)
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 2,
    "itemsPerPage": 2,
    "startIndex": 1,
    "resources": [
        {
            "id": "User",
            "name": "User",
            "description": "https://tools.ietf.org/html/rfc7643#section-8.7.1",
            "endpoint": "/Users",
            "schema": "urn:ietf:params:scim:schemas:core:2.0:User",
            "schemaExtensions": [
                {
                    "schema": "urn:ietf:params:scim:schemas:extension:2.0:nice:Agent",
                    "required": false
                },
                {
                    "schema": "urn:ietf:params:scim:schemas:extension:2.0:nice:User",
                    "required": false
                }
            ]
        },
        {
            "id": "Group",
            "name": "Group",
            "description": "https://tools.ietf.org/html/rfc7643#section-8.7.1",
            "endpoint": "/Groups",
            "schema": "urn:ietf:params:scim:schemas:core:2.0:Group",
            "schemaExtensions": []
        }
    ]
}

Success Response

Code: 200 OK

Content: [response data]

Error Response

Code: 403 Forbidden (If a filter is added to the URL)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "filtering not allowed",
   "status": 403
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/ResourceTypes

Get a Resource Type

Description

API to return a JSON structure that specifies the metadata about a resource type.

Authentication Required

No

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/ResourceTypes/{id}

Method

GET

Request Headers

Accept: application/scim+json or Accept: application/json

Path Params

Field

Type

Req

Notes

id

string

Yes

The ID of the specific resource type you are querying.

Request Data

NA

Response Headers

Content-Type: application/json

Response Data

Field

Type

Req

Notes

schema

string

Yes

Unique URI that is used to define the attributes present in the current JSON structure. URI: "urn:ietf:params:scim:schemas:core:2.0:ResourceType"

id string Yes A unique ID, often the same as "name" attribute.
name string Yes The name is referenced by the "meta.resourceType" attribute in all resources.
description string Yes Human readable description.
endpoint string Yes HTTP-addressable endpoint relative to the base URL of the service provider.
schema string Yes The resource type's primary schema. This is equal to the "id" attribute of the associated "Schema" resource.
schemaExtensions JSON object Yes A list of URIs of the resource type's schema extensions. Each extension must include the URI extended schema ("schema")and a boolean ("required").

Response Data

A list of ScimResourceTypes in JSON format.

var(--codeSnippetCopyLabel)
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:User"
    ],
    "id": "User",
    "name": "User",
    "description": "https://tools.ietf.org/html/rfc7643#section-8.7.1",
    "endpoint": "/Users",
    "schema": "urn:ietf:params:scim:schemas:core:2.0:User",
    "schemaExtensions": [
        {
            "schema": "urn:ietf:params:scim:schemas:extension:2.0:nice:Agent",
            "required": false
        },
        {
            "schema": "urn:ietf:params:scim:schemas:extension:2.0:nice:User",
            "required": false
        }
    ]
}

Success Response

Code: 200 OK

Content: [response data]

Error Response

Code: 403 Forbidden (If a filter is added to the URL)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "filtering not allowed",
   "status": 403
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/ResourceTypes/{id}

Get Service Provider Configuration

Description

API to return a JSON structure that describes the SCIM Resource Operations compliance, Authentication Methods and data models available for a SCIM Service Provider.

Authentication Required

No

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/ServiceProviderConfig

Method

GET

Request Headers

Accept: application/scim+json or Accept: application/json

Request Params

None

Request Data

NA

Response Headers

Content-Type: application/json

Response Data

Field

Type

Req

Notes

schema string

Yes

Unique URI that is used to define the attributes present in the current JSON structure.

bulk JSON object Yes An object with a "supported" boolean attribute that indicates HTTP PATCH support.
filter JSON object Yes An object with a "supported" boolean attribute that indicates filtering support.
changePasword JSON object Yes An object with a "supported" boolean attribute that indicates if changing a password is supported.
sort JSON object Yes An object with a "supported" boolean attribute that indicates sorting support.
Response Data

Field

Type

Req

Notes

etag JSON object Yes An object with a "supported" boolean attribute that indicates etag support.
meta JSON object Yes An object with several attributes describing the metadata for this endpoint. This endpoint includes "location", and "resourceType".
authenticationSchemes Map<String, String>[] Yes A list of authentication methods and details we accept as a SCIM compliant service provider.

Response Data

ScimServiceProviderConfig in JSON format.

var(--codeSnippetCopyLabel)
{
    "schema": "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig",
    "patch": {
        "supported": false
    },
    "bulk": {
        "maxPayloadSize": 0,
        "maxOperations": 0,
        "supported": false
    },
    "filter": {
        "maxResults": 0,
        "supported": false
    },
    "changePassword": {
        "supported": false
    },
    "sort": {
        "supported": false
    },
    "etag": {
        "supported": false
    },
    "authenticationSchemes": [
        {
            "name": "HTTP Basic Auth",
            "description": "Authentication scheme using the HTTP Basic Authentication Standard",
            "type": "httpbasic"
        }
    ],
    "meta": {
        "location": "SMARTSync/services/rs/scim/v2/ServiceProviderConfig",
        "resourceType": "ServiceProviderConfig"
    }
}

Success Response

Code: 200 OK

Content: [response data]

Error Response

Code: 403 Forbidden (If a filter is added to the URL)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "filtering not allowed",
   "status": 403
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/ServiceProviderConfig

Get Users

Description

API to return users, both supervisors and agents.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/Users

Method

GET

Request Headers

Accept: application/scim+json or Accept: application/json

Authorization: Bearer {bearer-token-id}

or

Cookie: JSESSIONID={some-jsession-id}

Request Params

Field

Type

Req

Notes

filter

string

No

An optional filter. Filtering only supports the username and the operator “eq” separated by spaces.

For example: ?filter=”username eq ballen”.

Request Data

NA

Response Headers

Content-Type: application/json

Response Data (supervisor)

Field

Type

Req

Notes

meta Map<String, String>

Yes

Metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).
id string No A unique ID generated internally after creation.
userName string Yes A unique string that a user uses to log in to the system.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.

Response
Data (supervisor)

Field

Type

Req

Notes

type string No The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".
value string Yes The user's primary email address.
primary boolean No Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.
userType UserType Yes An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.
active boolean No A status on whether or not a user is currently active. If null, it is assumed to be TRUE.

Response
Data (supervisor)

Field

Type

Req

Notes

uuid string No A unique ID. If one is not provided upon completion, one will be generated.

roles

Set<string>

No

A supervisor's assigned roles. Roles are assigned in the RCP users and permissions view. Only predefined roles may be assigned via the API.

Response Data (agent)

Field

Type

Req

Notes

meta Map<String, String>

Yes

Metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).
id string No A unique ID generated internally after creation.
userName string No A unique string that a user uses to log in to the system. This field is mapped to the externalId attribute in WFM.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.
Response Data (agent)

Field

Type

Req

Notes

type string No The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".
value string Yes The user's primary email address.
primary boolean No Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.
userType UserType Yes An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.
active boolean No A status on whether or not a user is currently active. If null, it is assumed to be TRUE.
Response Data (agent)

Field

Type

Req

Notes

uuid string No A unique ID. If one is not provided upon completion, one will be generated.
tvid integer No A unique ID. If one is not provided, one will be generated. If one is provided, but is already taken, the next available ID is used.
mu MU Yes An object storing MU data.
muId integer Yes The user viewable numeric ID for an MU.
startDate LocalDate No The date the agent moved into the MU. (If not provided, then the current date in the GMT timezone is used)
endDate LocalDate No The date the agent moved out of the MU. (if agent is currently in the MU, then this value should be null.)
Response Data (agent)

Field

Type

Req

Notes

acd

List<ACD>

No

A list of all current ACD's. On create, only one ACD is accepted.

acdId

integer

Yes

The user viewable numeric ID for the ACD.

loginId string No The user's login for the ACD.
priority Short No The priority of the user's ACD. (Default is 1)
startDate LocalDate No The date the agent started the ACD. (If not provided, then the current date in the GMT timezone is used.)
endDate LocalDate No The date the agent ended the ACD. (If agent is currently in the MU, then this value should be null.)

personalId

string

No

An agent's personal ID.

Response Data

List of ScimUser objects in JSON.

var(--codeSnippetCopyLabel)
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 2,
    "itemsPerPage": 50,
    "startIndex": 1,
    "resources": [
        {
            "emails": [
                {
                    "primary": true,
                    "value": "someone@email.com"
                }
            ],
            "meta": {
                "resourceType": "User",
                "created": "2006-01-01T12:00:00.000Z",
                "lastModified": "2006-01-01T12:00:00.000Z",
                "location": "<some-nice-url>/SMARTSync/services/rs/scim/v2/Users/2000"
            },
            "schemas": [
                "urn:ietf:params:scim:schemas:core:2.0:User"
            ],
            "name": {
                "familyName": "Last",
                "givenName": "First",
                "honorificSuffix": null
            },
            "active": true,
            "id": "2000",
            "userType": "SUPERVISOR",
            "userName": "username",
            "urn:ietf:params:scim:schemas:extension:nice:2.0:Supervisor": {
                "uuid": "1234"
            },

            "roles": [

                "UserServiceTest Role"

            ]
        },
        {
            "emails": [
                {
                    "primary": null,
                    "value": null
                }
            ],
            "urn:ietf:params:scim:schemas:extension:nice:2.0:Agent": {
                "uuid": "agent70uuid",
                "mu": {},
                "personalId": null,
                "acd": []
            },
            "meta": {
                "resourceType": "User",
                "created": "2008-10-07T12:00:00.000Z",
                "lastModified": "2008-10-07T12:00:00.000Z",
                "location": "<some-nice-url>/SMARTSync/services/rs/scim/v2/Users/agu-70"
            },
            "schemas": [
                "urn:ietf:params:scim:schemas:core:2.0:User"
            ],
            "name": {
                "familyName": "num70",
                "givenName": "person",
                "honorificSuffix": null
            },
            "active": true,
            "externalId": null,
            "id": "agu-70",
            "userType": "AGENT",
            "userName": "agent70"
        }
    ]
}

Success Response

Code: 200 OK

Content: [response data]

Error Response

Code: 400 Bad Request (Occurs when too many results are returned. Only applicable when filtering.)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "too many",
   "status": 400
}

Code: 401 Unauthorized (Occurs when the request is attempted when not logged in)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "unauthorized",
   "status": 401
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error message"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/Users?filter=username%20eq%20{username}

Get a User

Description

API to return a specific user— based on the id.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/Users/{id}

Method

GET

Request Headers

Accept: application/scim+json or Accept: application/json

Authorization: Bearer {bearer-token-id}

or

Cookie: JSESSIONID={some-jsession-id}

Path Params

Field

Type

Req

Notes

id

String

Yes

The ID of the specific user you are querying.

Request Data

NA

Response Headers

Content-Type: application/json

Response Data (supervisor)

Field

Type

Req

Notes

meta Map<String, String>

Yes

Metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).
id string No A unique ID generated internally after creation.
userName string Yes A unique string that a user uses to log in to the system.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.
Response Data (supervisor)

Field

Type

Req

Notes

type string No The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".
value string Yes The user's primary email address.
primary boolean No Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.
userType UserType Yes An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.
active boolean No A status on whether or not a user is currently active. If null, it is assumed to be TRUE.
Response Data (supervisor)

Field

Type

Req

Notes

uuid string No A unique ID. If one is not provided upon completion, one will be generated.

roles

Set<string>

No

A supervisor's assigned roles. Roles are assigned in the RCP users and permissions view. Only predefined roles may be assigned via the API.

Response Data (supervisor)

An individual ScimUser object in JSON format.

var(--codeSnippetCopyLabel)

Supervisor

 {
            "emails": [
                {
                    "primary": null,
                    "value": null
                }
            ],
            "meta": {
                "resourceType": "User",
                "created": "2006-01-01T12:00:00.000Z",
                "lastModified": "2006-01-01T12:00:00.000Z",
                "location": "<some-nice-url>/SMARTSync/services/rs/scim/v2/Users/5010"
            },
            "schemas": [
                "urn:ietf:params:scim:schemas:core:2.0:User"
            ],
            "name": {
                "familyName": "Doe",
                "givenName": "John",
                "honorificSuffix": null
            },
            "active": true,
            "id": "5010",
            "userType": "SUPERVISOR",
            "userName": "john",
            "urn:ietf:params:scim:schemas:extension:nice:2.0:Supervisor": {
                "uuid": null
            },

            "roles": [

                "UserServiceTest Role"

            ]


        }

Response Data (agent)

Field

Type

Req

Notes

meta Map<String, String>

Yes

Metadata on the user including: ResourceType (User).

schemas List<String> Yes A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).
id string No A unique ID generated internally after creation.
userName string Yes A unique string that a user uses to log in to the system. This field is mapped to the externalId attribute in WFM.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.
Response Data (agent)

Field

Type

Req

Notes

type string No The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".
value string Yes The user's primary email address.
primary boolean No Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.
userType UserType Yes An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.
active boolean No A status on whether or not a user is currently active. If null, it is assumed to be TRUE.
Response Data (agent)

Field

Type

Req

Notes

uuid string No A unique ID. If one is not provided upon completion, one will be generated.
tvid integer No A unique ID. If one is not provided, one will be generated. If one is provided, but is already taken, the next available ID is used.
mu MU Yes An object storing MU data.
muId integer Yes The user viewable numeric ID for an MU.
startDate LocalDate No The date the agent moved into the MU. (If not provided, then the current date in the GMT timezone is used.)
endDate LocalDate No The date the agent moved out of the MU. (If agent is currently in the MU, then this value should be null.)
acd List<ACD> No A list of all current ACD's. On create, only one ACD is accepted.
acdId integer Yes The user viewable numeric id for the ACD.
Response Data (agent)

Field

Type

Req

Notes

loginId string No The user's login for the ACD.
priority Short No The priority of the user's ACD. (Default is 1)
startDate LocalDate No The date the agent started the ACD. (If not provided, then the current date in the GMT timezone is used.)
endDate LocalDate No The date the agent ended the ACD. (If agent is currently in the MU, then this value should be null.)

personalId

string

No

An agent's personal ID.

Response Data (agent)

An individual ScimUser object in JSON format.

var(--codeSnippetCopyLabel)

Agent

{
    "emails": [
        {
            "primary": true,
            "value": "someone@email.com"
        }
    ],
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Agent": {
        "uuid": null,
        "mu": {
            "muId": 301,
            "startDate": "2007-11-06",
            "endDate": null
        },
        "personalId": "somePersonalId",
        "acd": []
    },
    "meta": {
        "resourceType": "User",
        "created": "2008-10-07T12:00:00.000Z",
        "lastModified": "2022-11-01T21:12:04.373Z",
        "location": "/SMARTSync/services/rs/scim/v2/Users/ag-80"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "name": {
        "familyName": "Last",
        "givenName": "First",
        "honorificSuffix": "Suffix"
    },
    "active": true,
    "externalId": null,
    "id": "ag-80",
    "userType": "AGENT",
    "userName": "80"
}

Success Response

Code: 200 OK

Content: [response data]

Error Response

Code: 401 Unauthorized (Occurs when the request is attempted while not logged in)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "unauthorized",
   "status": 401
}

Code: 404 Bad Request (Occurs when the user does not exist)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "user does not exist",
   "status": 404
}
Error Response

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/Users/{id}

Create a User

Description

API to create a new user— which can either be an agent or a supervisor.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/Users

Method

POST

Request Headers

Accept: application/scim+json or Accept: application/json

Authorization: Bearer {bearer-token-id}

or

Cookie: JSESSIONID={some-jsession-id}

Request Params

None

Request Data (supervisor)

Field

Type

Req

Notes

meta Map<String, String>

No

Metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2. 0:User).
userName string Yes A unique string that a user uses to log in to the system.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.
type string No The type of email (work, home, etc.).

value

string

Yes

The user's primary email address.

Request Data (supervisor)

Field

Type

Req

Notes

primary

boolean

No

Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.

userType

userType

Yes

An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.

roles

Set<String>

No

A supervisor's assigned roles. Roles are assigned in the RCP users and permissions view. Only predefined roles may be assigned via the API.

Request Data (supervisor)

var(--codeSnippetCopyLabel)

Supervisor

{
    "meta": {
        "resourceType": "User"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Supervisor": {
        "uuid": "uuid 1"
    },
    "userName": "username 1",
    "name": {
        "givenName": "First",
        "familyName": "Last",
        "honorificSuffix": "Suffix"
    },
    "emails": [
        {
            "type": "work",
            "value": "someone@email.com",
            "primary": true
        }
    ],
    "userType": "SUPERVISOR",
    "active": true,

    "roles": [

        "UserServiceTest Role"

    ]

}

Request Data (agent)

Field

Type

Req

Notes

meta Map<String, String>

No

Metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of schemas being utilized by the endpoint. (urn:ietf:params:scim:schemas:core:2. 0:User).
userName string No A unique string that a user uses to login to the system. This field is mapped to the externalId attribute in WFM.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.
type string No The type of email (work, home, etc.).

value

string

Yes

The user's primary email address.

Request Data (agent)

Field

Type

Req

Notes

primary

boolean

No

Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.

userType

userType

Yes

An enum that can only be one of two values: SUPERVISOR, AGENT.

active

boolean

No

A status on whether or not a user is currently active. If null, it is assumed to be TRUE.

uuid

string

No

A unique ID. If one is not provided upon completion, one will be generated.

Request Data (agent)

Field

Type

Req

Notes

tvid

integer

No

A unique ID. If one is not provided, one will be generated. If one is provided, but is already taken, the next available ID is used.

mu

MU

Yes

An object storing MU data.

muId

integer

Yes

The user viewable numeric ID for an MU.

startDate

LocalDate

No

The date the agent moved into the MU. (If not provided, then the current date in the GMT timezone is used)

endDate

LocalDate

No

The date the agent moved out of the MU. GMT timezone is used. (if agent is currently in the MU, then this value should be null.)

acd

List<ACD>

No

A list of all current ACDs. On create, only one ACD is accepted.

Request Data (agent)

Field

Type

Req

Notes

acdID

integer

Yes

The user viewable numeric ID for the ACD.

LoginId

string

No

The user's login for the ACD.

priority

Short

No

The priority of the user's ACD. Default is 1.

startDate

LocalDate

No

The date the agent started the ACD. (If not provided, then the current date in the GMT timezone is used)

endDate

LocalDate

No

The date the agent ended the ACD. GMT timezone is used. (if agent is currently in the MU, then this value should be null.)

personalId

string

No

An agent's personal ID.

var(--codeSnippetCopyLabel)

Agent

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "userName": "someone@email.com",
    "name": {
        "givenName": "First",
        "familyName": "Last",
        "honorificSuffix": "Suffix"
    },
    "emails": [
        {
            "type": "work",
            "value": "someone@email.com",
            "primary": true
        }
    ],
    "userType": "AGENT",
    "active": true,
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Agent": {
        "uuid": "uuid 2",

        "tvid": "123456",
        "personalId": "personalId 1",
        "mu": {
            "muId": "301",
            "startDate": "2022-09-30"
        },
        "acd": [
            {
            "acdId": "2",
            "loginId": "Acd Login Id 2",
            "priority": "1",
            "startDate": "2022-09-07"
            }
        ]
    }
}

Response Headers

Content-Type: application/json

Response Data (supervisor)

Field

Type

Req

Notes

meta Map<String, String>

Yes

Metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of Schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).
id string No A unique ID generated internally after creation.
userName string Yes A unique string that a user uses to log in to the system.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.

type

string

No

The type of email (work, home, etc.). Will default to "work".

value

string

Yes

The user's primary email address.

Response Data (supervisor)

Field

Type

Req

Notes

primary boolean No Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.
userType UserType Yes An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.

active

boolean

No

A status on whether or not a user is currently active. If null, it is assumed to be TRUE.

uuid

string

No

A unique ID. If one is not provided upon completion, one will be generated.

Response Data (supervisor)

Field

Type

Req

Notes

roles

Set<String>

No

A supervisor's assigned roles. Roles are assigned in the RCP users and permissions view. Only predefined roles may be assigned via the API.

Response Data (supervisor)

ScimUser object in JSON format.

var(--codeSnippetCopyLabel)

Supervisor

{
    "emails": [
        {
            "primary": true,
            "value": "someone@email.com"
        }
    ],
    "meta": {
        "resourceType": "User",
        "created": "2022-09-15T20:37:06.957Z",
        "lastModified": "2022-09-15T20:37:06.957Z",
        "location": "<some-nice-url>/SMARTSync/services/rs/scim/v2/Users/2c9ce0f48341d178018342de950d0008"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "name": {
        "familyName": "Last",
        "givenName": "First",
        "honorificSuffix": "Suffix"
    },
    "active": true,
    "id": "2c9ce0f48341d178018342de950d0008",
    "userType": "SUPERVISOR",
    "userName": "username 1",
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Supervisor": {
        "uuid": "uuid 1"
    },

    "roles": [

        "UserServiceTest Role"

    ]

}

Response Data (agent)

Field

Type

Req

Notes

meta Map<String, String>

Yes

metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).
id string No A unique ID generated internally after creation.
userName string No A unique string that a user uses to log in to the system. This field is mapped to the externalId attribute in WFM.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.
Response Data (agent)

Field

Type

Req

Notes

type string No The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".
value string Yes The user's primary email address.
primary boolean No Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.
userType UserType Yes An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.
active boolean No A status on whether or not a user is currently active. If null, it is assumed to be TRUE.
Response Data (agent)

Field

Type

Req

Notes

uuid string No A unique ID. If one is not provided upon completion, one will be generated.
tvid integer No A unique ID. If one is not provided, one will be generated. If one is provided, but is already taken, the next available ID is used.
mu MU Yes An object storing MU data.
muId integer Yes The user viewable numeric ID for an MU.
startDate LocalDate No The date the agent moved into the MU. (If not provided, then the current date in the GMT timezone is used)
endDate LocalDate No The date the agent moved out of the MU. (if agent is currently in the MU, then this value should be null.)
Response Data (agent)

Field

Type

Req

Notes

acd

List<ACD>

No

A list of all current ACDs. On create, only one ACD is accepted.

acdid

integer

Yes

The user viewable numeric ID for the ACD.

loginId string No The user's login for the ACD.
priority Short No The priority of the user's ACD. (Default is 1)
startDate LocalDate No The date the agent started the ACD. (If not provided, then the current date in the GMT timezone is used.)
endDate LocalDate No The date the agent ended the ACD. (If agent is currently in the MU, then this value should be null.)

personalId

string

No

An agent's personal ID.

Response Data (agent)

ScimUser object in JSON format.

var(--codeSnippetCopyLabel)

Agent

{
    "emails": [
        {
            "primary": true,
            "value": "someone@email.com"
        }
    ],
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Agent": {
        "uuid": "uuid 2",

        "tvid": "123456",
        "mu": {
            "muId": 301,
            "startDate": "2022-09-15",
            "endDate": null
        },
        "personalId": "personalId 1",
        "acd": [
            {
                "acdId": 2,
                "loginId": "Acd Login Id 2",
                "priority": 1,
                "startDate": "2022-09-07",
                "endDate": null
            }
        ]
    },
    "meta": {
        "resourceType": "User",
        "created": "2022-09-15T20:40:24.839Z",
        "lastModified": "2022-09-15T20:40:24.839Z",
        "location": "/SMARTSync/services/rs/scim/v2/Users/2c9ce0f48341d178018342e19a07000d"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "name": {
        "familyName": "Last",
        "givenName": "First",
        "honorificSuffix": "Suffix"
    },
    "active": true,
    "id": "2c9ce0f48341d178018342e19a07000d",
    "userType": "AGENT",
    "userName": "someone@email.com"
}

Success Response

Code 200: Created

Content: [response data]

Error response

Code: 400 Bad Request (Occurs when mandatory variables are missing, some variables exceed the maximum length, or the email is in the wrong format.)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "missing mandatory values",
   "status": 400
}

Code: 401 Unauthorized (Occurs when the request is attempted while not logged in)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "unauthorized",
   "status": 401
}

Code: 409 Conflict (Occurs if you attempt to create a user that already exists)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "user already exists",
   "status": 409
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/Users

Update a User

Description

API to update a specific user.

Authentication Required

Yes

URL

https://<domain or IP>/SMARTSync/services/rs/scim/v2/Users/{id}

Method

PUT

Request Headers

Accept: application/scim+json or Accept: application/json

Authorization: Bearer {bearer-token-id}

or

Cookie: JSESSIONID={some-jsession-id}

Request Params

Field

Type

Req

Notes

id

string

Yes

The ID of the user you are updating. (path param)

updateWfmAttributes boolean No

A query parameter that determines if MU (for agents) and roles (for supervisors) can be updated or not. The default behavior is false, meaning that they cannot be changed unless explicitly stated.

Request Data (supervisor)

Fields listed as not required will be set to null if they are not included in the request body.

Field

Type

Req

Notes

meta

Map<String, String>

No

Metadata on the user including: ResourceType (user).

schemas

List<String>

Yes

A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).

id

string

Yes

A unique ID that was generated internally after creation.

userName

string

Yes

A unique string that a user uses to login to the system.

name

ScimName

Yes

The user's name. Includes firstName, lastName, suffix.

givenName

string

No

The user's first name.

familyName

string

Yes

The user's last name.

honorificSuffix

string

No

The user's suffix.

emails

List<ScimEmail>

No

The scim object containing emails.

Request Data (supervisor)

Field

Type

Req

Notes

type

string

No

The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".

value

string

Yes

The user's primary email address.

primary

boolean

No

Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.

Request Data (supervisor)

Field

Type

Req

Notes

userType

UserType

Yes

An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.

roles

Set<String>

No

A supervisor's assigned roles. Roles are assigned in the RCP users and permissions view. Only predefined roles may be assigned via the API.

Request Data (supervisor)

var(--codeSnippetCopyLabel)

Supervisor

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],

    "id": "2c9ce0f48341d178018342e19a07000d",
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Supervisor": {
        "uuid": "uuid 1"
    },
    "userName": "username 1",
    "name": {
        "givenName": "First",
        "familyName": "Last",
        "honorificSuffix": "Suffix"
    },
    "emails": [
        {
            "type": "work",
            "value": "someone@email.com",
            "primary": true
        }
    ],
    "userType": "SUPERVISOR",
    "active": true,

    "roles": [

        "UserServiceTest Role"

    ]

}

Request Data (agent)

Fields listed as not required will be set to null if they are not included in the request body.

Field

Type

Req

Notes

meta

Map<String, String>

No

Metadata on the user including: ResourceType (user).

schemas

List<String>

Yes

A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).

id

string

Yes

A unique ID that was generated internally after creation. This field is mapped to the externalId attribute in WFM.

userName

string

No

A unique string that a user uses to log in to the system.

name

ScimName

Yes

The user's name. Includes firstName, lastName, suffix.

givenName

string

No

The user's first name.

familyName

string

Yes

The user's last name.

honorificSuffix

string

No

The user's suffix.

emails

List<ScimEmail>

No

The scim object containing emails.

type

string

No

The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".

Request Data (agent)

Field

Type

Req

Notes

value

string

Yes

The user's primary email address.

primary

boolean

No

Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.

userType

UserType

Yes

An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.

tvid

integer

No

A unique ID. If one is not provided, one will be generated. If one is provided, but is already taken, the next available ID is used.

Request Data (agent)

Field

Type

Req

Notes

mu

MU

Yes

An object storing MU data.

muId

integer

Yes

The user viewable numeric ID for an MU.

startDate

LocalDate

No

The date the agent moved into the MU. (If not provided, then the current date in the GMT timezone is used)

endDate

LocalDate

No

The date the agent moved out of the MU. GMT timezone is used. (if agent is currently in the MU, then this value should be null.)

personalId

string

No

An agent's personal ID.

Request Data (agent)

var(--codeSnippetCopyLabel)

Agent

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],

    "id": "2c9ce0f48341d178018342e19a07000d",
    "userName": "someone@email.com",
    "name": {
        "givenName": "First",
        "familyName": "Last",
        "honorificSuffix": "Suffix"
    },
    "emails": [
        {
            "type": "work",
            "value": "someone@email.com",
            "primary": true
        }
    ],
    "userType": "AGENT",
    "active": true,
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Agent": {
        "uuid": "uuid 2",

         "tvid": "123456",
        "personalId": "personalId 1",
        "mu": {
            "muId": "301",
            "startDate": "2022-09-30"
        }
    }
}

Response Headers

Content-Type: application/json

Response Data (supervisor)

Field

Type

Req

Notes

meta Map<String, String>

Yes

Metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).
id string Yes A unique ID generated internally after creation.
userName string Yes A unique string that a user uses to log in to the system.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.

type

string

No

The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".

Response Data (supervisor)

Field

Type

Req

Notes

value string Yes The user's primary email address.
primary boolean No Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.
userType UserType Yes An enum that can only be 1 of 2 values: SUPERVISOR, AGENT.
active boolean No A status on whether or not a user is currently active. If null, it is assumed to be TRUE.
uuid string No A unique ID. If one is not provided upon completion, one will be generated.

roles

Set<String>

No

A supervisor's assigned roles. Roles are assigned in the RCP users and permissions view. Only predefined roles may be assigned via the API.

Response Data (supervisor)

var(--codeSnippetCopyLabel)

Supervisor

{
    "emails": [
        {
            "primary": true,
            "value": "someone@email.com"
        }
    ],
    "meta": {
        "resourceType": "User",
        "created": "2022-09-15T20:37:06.957Z",
        "lastModified": "2022-09-15T20:37:06.957Z",
        "location": "<some-nice-url>/SMARTSync/services/rs/scim/v2/Users/2c9ce0f48341d178018342de950d0008"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "name": {
        "familyName": "Last",
        "givenName": "First",
        "honorificSuffix": "Suffix"
    },
    "active": true,
    "id": "2c9ce0f48341d178018342de950d0008",
    "userType": "SUPERVISOR",
    "userName": "username 1",
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Supervisor": {
        "uuid": "uuid 1"
    },

    "roles": [

        "UserServiceTest Role"

    ]

}

Response Data (agent)

Field

Type

Req

Notes

meta Map<String, String>

Yes

Metadata on the user including: ResourceType (user).

schemas List<String> Yes A list of schemas being utilized by the endpoint (urn:ietf:params:scim:schemas:core:2.0:User).
id string Yes A unique ID generated internally after creation.
userName string No A unique string that a user uses to log in to the system. This field is mapped to the externalId attribute in WFM.
name ScimName Yes The user's name. Includes firstName, lastName, suffix.
givenName string No The user's first name.
familyName string Yes The user's last name.
honorificSuffix string No The user's suffix.
emails List<ScimEmail> No The scim object containing emails.
Response Data (agent)

Field

Type

Req

Notes

type string No The type of email (work, home, etc.). Will default to "work". Not saved by WFM. Implied "work".
value string Yes The user's primary email address.
primary boolean No Boolean indicating if the provided email is the primary email. If primary is included, WFM will only process the primary. If there is only one email, WFM will assume it is the primary email. If there are multiple emails and none are primary, WFM will not accept emails.
userType UserType Yes An enum that can only be one of two values: SUPERVISOR, AGENT.
active boolean No A status on whether or not a user is currently active. If null, it is assumed to be TRUE.
Response Data (agent)

Field

Type

Req

Notes

uuid string No A unique ID. If one is not provided upon completion, one will be generated.
tvid integer No A unique ID. If one is not provided, one will be generated. If one is provided, but is already taken, the next available ID is used.
mu MU Yes An object storing MU data.
muId integer Yes The user viewable numeric ID for an MU.
startDate LocalDate No The date the agent moved into the MU. (If not provided, then the current date in the GMT timezone is used)
endDate LocalDate No The date the agent moved out of the MU. (if agent is currently in the MU, then this value should be null.)
acd List<ACD> No A list of all current ACDs. On create, only one ACD is accepted.
acdId integer Yes The user viewable numeric ID for the ACD.
Response Data (agent)

Field

Type

Req

Notes

loginId string No The user's login for the ACD.
priority Short No The priority of the user's ACD. (Default is 1)
startDate LocalDate No The date the agent started the ACD. (If not provided, then the current date in the GMT timezone is used)
endDate LocalDate No The date the agent ended the ACD. (if agent is currently in the MU, then this value should be null.)

personalId

string

No

An agent's personal ID.

roles

Set<String>

No

A supervisor's assigned roles. Roles are assigned in the RCP users and permissions view. Only predefined roles may be assigned via the API.

Response Data (agent)

var(--codeSnippetCopyLabel)

Agent

{
    "emails": [
        {
            "primary": true,
            "value": "someone@email.com"
        }
    ],
    "urn:ietf:params:scim:schemas:extension:nice:2.0:Agent": {
        "uuid": "uuid 2",

        "tvid": "123456",
        "mu": {
            "muId": 301,
            "startDate": "2022-09-15",
            "endDate": null
        },
        "personalId": "personalId 1",
        "acd": [
            {
                "acdId": 2,
                "loginId": "Acd Login Id 2",
                "priority": 1,
                "startDate": "2022-09-07",
                "endDate": null
            }
        ]
    },
    "meta": {
        "resourceType": "User",
        "created": "2022-09-15T20:40:24.839Z",
        "lastModified": "2022-09-15T20:40:24.839Z",
        "location": "/SMARTSync/services/rs/scim/v2/Users/2c9ce0f48341d178018342e19a07000d"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "name": {
        "familyName": "Last",
        "givenName": "First",
        "honorificSuffix": "Suffix"
    },
    "active": true,
    "id": "2c9ce0f48341d178018342e19a07000d",
    "userType": "AGENT",
    "userName": "someone@email.com"
}

Success Response

Code: 204 OK

Content: [response data]

Error Response

Code: 400 Bad Request (Occurs when mandatory variables are missing, some variables exceed the maximum length, or the email is in the wrong format.)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "missing mandatory values",
   "status": 400
}

Code: 401 Unauthorized (Occurs when the request is attempted while not logged in)

var(--codeSnippetCopyLabel)
{
   "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:Error"
   ],
   "details": "unauthorized",
   "status": 401
}

Code: 500 Internal Server Error

var(--codeSnippetCopyLabel)
{
   "some error"
}

Sample Call

https://localhost/SMARTSync/services/rs/scim/v2/Users/{id}?updateWfmAttributes={true or false}