AWA Manual Assignment API
The AWA Manual Assignment API provides an endpoint to manually assign available work items to available Advanced Work Assignment (AWA) agents.
A work item is a single piece of work handled by an AWA agent from start to finish. For example, one chat or one case is an object that can be routed and assigned to agents. For more information, refer to Advanced Work Assignment.
This API requires the Advanced Work Assignment (com.glide.awa) plugin. To call this API, you must have either the awa_manager or awa_integration_user role.
AWA Manual Assignment – POST /now/awa/workitems/{work_item_sys_id}/assignments
Assigns an available work item to an available Advanced Work Assignment (AWA) agent.
The primary use case for this endpoint is to enable external routing systems to route work items. If Advanced Work Assignment is configured to use external routing, work items in the queue are assigned using external routing and not AWA. You can assign the work item task by calling this endpoint. For more information, refer to Use external routing.
URL format
Versioned URL: /now/{api_version}/awa/workitems/{sys_id}/assignments
Default URL: /now/awa/workitems/{sys_id}/assignments
Supported request parameters
| Name | Description |
|---|---|
| api_version | Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the
latest.
Data type: String |
| work_item_sys_id | Sys_id of the work item to assign to an available agent. The work item must be unassigned and in the Pending Accept or Queued state. For more information, refer to Check unassigned task work items. Data type: String Table: Work Items [awa_work_item] |
| Name | Description |
|---|---|
| None |
| Name | Description |
|---|---|
| after_timeout_presence | Sys_id of the presence state that the agent switches to if the timeout parameter expires. If the timeout parameter isn't passed, this parameter is ignored. For additional information on presence states, see Configure agent presence states. Data type: String Default: "" (Empty string) Table: AWA Presence State [awa_presence_state] |
| agent_sys_id | Required. Sys_id of the available agent to receive the work item. Agents are users with the awa_agent role. For information on how to determine if an agent is available, refer to Agent Inbox controls. Data type: String Table: User [sys_user] |
| allowed_to_decline | Flag that indicates whether agents are allowed to reject work items. If this parameter is true, the inbox card displays both the Accept and Reject
buttons on the inbox card.Valid values:
Data type: Boolean Default: true |
| display_option | Display option for the card and tab when a work item is automatically assigned. This parameter is only valid if the enable_auto_assign is passed as true. Valid values:
Data type: String Default: card_only |
| enable_auto_assign | Flag that indicates whether the work item should be automatically accepted or should allow the agent to manually accept or reject the work item. Valid values:
Data type: Boolean Default: false |
| offered_on | Work item offer time. The offer time is used to calculate the remaining time the agent has left to accept the work item in the inbox. It helps account for the discrepancy between the time when the API request
gets processed, and when the third-party routing system invokes the API request. This parameter allows external systems calling this endpoint to configure the offer time of the work item so that it stays in
synchronization with the external system’s internal tracking of the work item. For example, if the work item was offered on 11:30:30, the timeout is 30 seconds, and the current time is 11:30:45, the countdown timer displays 00:15 (as in 15 seconds remaining). This value is stored in the offered_on field on the work item. This parameter is ignored if the timeout parameter isn't passed. Data type: String Format: UTC timestamp (yyyy-MM-dd'T'HH:mm:ss.SSS) |
| timeout | Amount of time that the work item stays in the agent’s inbox waiting for the agent to accept the work assignment. Data type: Number Unit: Seconds |
Headers
The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: application/json or application/xml.
Default: application/json |
| Content-Type | Data format of the request body. Supported types: application/json or application/xml.
Default: application/json |
| Header | Description |
|---|---|
| None |
Status codes
The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.
| Status code | Description |
|---|---|
| 200 | Successful. The request was successfully processed. |
| 401 | Unauthorized. The user credentials are incorrect or have not been passed. |
| 404 | Not found. The requested item wasn't found. |
| 409 | Conflict. The request couldn't pass due to an error with the provided work item or agent sys_id. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
Response body parameters (JSON or XML)
| Name | Description |
|---|---|
| success | Flag that indicates whether the manual work item assignment is successful. Possible values:
Data type: Boolean |
| message | Response message acknowledging successful assignment or an exception. Success: "Manual assignment successfully requested." Exceptions:
Data type: String |
cURL request
The following example shows how to assign a work item to an available AWA agent using only the required parameters.
curl "https://instance.servicenow.com/api/now/awa/workitems/<work_item_sys_id>/assignments" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{\"agent_sys_id\":\"<agent_sys_id>\"}" \
--user 'username':'password'
The result shows that the task has been successfully assigned to the agent. You can verify results in the Assigned to field of the Work Items [awa_work_item] table.
{
"result": {
"success": true,
"message": "Manual assignment successfully requested."
}
}
cURL request
The following example shows how to assign a work item to an available AWA agent including the optional parameters.
curl "https://instance.servicenow.com/api/now/awa/workitems/<work_item_sys_id>/assignments" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data '{
"agent_sys_id": "46d44a23a9fe19810012d100cca80666",
"timeout":"10",
"offered_on":"2024-04-03T23:09:31.000"
}'
--user 'username':'password'
The result shows that the task has been successfully assigned to the agent. You can verify results in the Assigned to field of the Work Items [awa_work_item] table.
{
"result": {
"success": true,
"message": "Manual assignment successfully requested."
}
}