AWA Manual Assignment API

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 6 minutes de lecture
  • 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

    Remarque :
    Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.

    Supported request parameters

    Tableau 1. Path 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]

    Tableau 2. Query parameters
    Name Description
    None
    Tableau 3. Request body parameters (XML or JSON)
    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:
    • true/yes/1: Agent can reject work items.
    • false/no/0: Agent can't reject work items.

    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:
    • card_and_tab: Display both the card and tab.
    • card_only: Display only the card.

    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:
    • true/yes/1: Automatically accept.
    • false/no/0: Allow agent to manually accept or reject.

    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.

    Tableau 4. Request 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

    Tableau 5. Response headers
    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.

    Tableau 6. Status 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:
    • true: Work item assignment successful.
    • false: Work item assignment unsuccessful.

    Data type: Boolean

    message Response message acknowledging successful assignment or an exception.

    Success: "Manual assignment successfully requested."

    Exceptions:
    • "<work_item_sys_id> is not a valid work item" – Provided work item sys_id does not exist.
    • "Caller <API_caller_sys_id> does not have the awa_manager or awa_integration_user role" – The authenticated user making the API request must have either the awa_manager or awa_integration_user role.
    • "Work item <work_item_sys_id> cannot be assigned" – Work item provided cannot be assigned because it is in Accepted or Canceled state. Refer to Check work items and AWA events.
    • "<agent_sys_id> is not a valid agent" – Agent does not have the awa_agent role.
    • "Work Item is already assigned to <agent_sys_id>" – Provided work item is assigned to another agent.
    • "Agent is not available" – Agent is not in the Available state in AWA. Refer to Agent Inbox controls.
    • "Timeout value cannot be negative" – Provided timeout value cannot be a negative value.
    • "<presence_state_sys_id> is not a valid presence state” – Provided presence state sys_id doesn't exist in the AWA Presence State [awa_presence_state] table.
    • "Offered time (<offered_on_timestamp>) must be in the following format: yyyy-MM-dd'T'HH:mm:ss.SSS" – Provided offered_on timestamp must be in the specified format.
    • "Offered time (<offered_on_timestamp >) must be before the current time, otherwise agent will have more time to accept the work item" – Provided offered_on timestamp can't be before the time the request is made.
    • "Timestamp after timeout (<offered_on_timestamp >) must be after the current time, otherwise agent has no time to accept the work item" – The timestamp after adding the timeout value to the provided offered_on timestamp must be after the time the request was made.
    • "<display_option> is not a valid display option" – Provided display_option must be either of the following values: "card_only” or “card_and_tab"
    • "%s is not a valid boolean value" – Provided Boolean-type value must be in one of the following Boolean formats: "yes"/"no", "true"/"false", "1"/"0"

    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."
      }
    }