API de trabalho de oferta do AWA

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 9 min. de leitura
  • . AWA oferece trabalho A API fornece um endpoint para atribuir ou transferir itens de trabalho para agentes.

    Esta API destina-se ao uso com integrações de Central de contato como serviço (CCAAS), em que a decisão de roteamento e atribuição ocorre no sistema CCAAS externo. Esta API permite um cartão da caixa de entrada a ser mostrado a um agente no ServiceNow Espaço do agentecomo uma notificação para aceitar o item de trabalho.

    Esta API requer Atribuição avançada de trabalho(com.glide.awa). Para chamar esta API, você deve ter a função awa_manager ou awa_integration_user.

    Para obter mais informações sobre AWA, consulte Atribuição de trabalho avançada .

    Trabalho de oferta do AWA - PUBLICAR /now/awa/documents/document_table/document_sys_id/offer

    Atribui ou transfere itens de trabalho para agentes.

    Um item de trabalho é um único trabalho manipulado por um AWAagente do início ao fim. Um item de trabalho é criado com base em um documento, como uma interação ou tarefa.

    Todos os agentes que recebem ou transferem itens de trabalho com esta API devem ter as funções awa_agent e awa_external_user.

    Formato de URL

    URL com controle de versão: /api/now/api/awa/documents/document_table/document_sys_id/offer

    URL padrão: /api/now/awa/documents/document_table/document_sys_id/offer

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    api_version Opcional. Versão do endpoint para acessar. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente.

    Tipo de dados: Cadeia de caracteres

    document_table Nome da tabela associada ao documento, como a tabela de interação [interação] ou a tabela de tarefa [tarefa].

    Tipo de dados: Cadeia de caracteres

    document_sys_id Sys_id do documento a ser roteado para o agente ou fila.

    Tipo de dados: Cadeia de caracteres

    Tabela 2. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 3. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    atribuição Necessário para novas atribuições. Objeto que contém informações sobre a atribuição.

    Tipo de dados: Objeto

    { 
       "after_timeout_presence": "String",
       "agent_sys_id": "String", 
       "allowed_to_decline": Boolean,
       "display_option": "String", 
       "enable_auto_assign": Boolean, 
       "offered_on": "String",
       "timeout": Number 
    } 
    after_timeout_presence Sys_id do estado de presença para o qual o agente alterna se timeouto parâmetro expira.

    . timeouto parâmetro não foi passado, este parâmetro é ignorado.

    Para obter informações adicionais sobre estados de presença, consulte Configure agent presence states.

    Tipo de dados: Cadeia de caracteres

    Padrão: Cadeia de caracteres vazia (o estado de presença do agente não muda).

    Tabela: Estado de presença do AWA [awa_presence_state]

    assignment.agent_sys_id Necessário para novas atribuições. Sys_id do agente disponível para receber o item de trabalho. O agente deve ter as funções awa_agent e awa_external_user.

    Para obter informações sobre como determinar se um agente está disponível, consulte Controles da caixa de entrada do agente .

    Tipo de dados: Cadeia de caracteres

    Tabela: Usuário [sys_user]

    assignment.allowed_to_recuse Sinalizador que indica se os agentes têm permissão para rejeitar itens de trabalho. Se este parâmetro for verdadeiro , o cartão da caixa de entrada exibe ambos Aceitar e. Rejeitar no cartão da caixa de entrada.
    Valores válidos:
    • Verdadeiro/sim/1: O agente pode rejeitar itens de trabalho.
    • Falso/não/0: O agente não pode rejeitar itens de trabalho.

    Tipo de dados: Booliano

    Padrão: verdadeiro

    assignment.display_option Opção de exibição do cartão e da guia quando um item de trabalho é atribuído automaticamente.

    Este parâmetro só será válido se enable_auto_assigné verdadeiro .

    Valores válidos:
    • Card_and_tab: Exibe o cartão e a guia.
    • Card_only: Exibe somente o cartão.

    Tipo de dados: Cadeia de caracteres

    Padrão: Card_only

    assignment.enable_auto_assign Sinalizador que indica se o item de trabalho deve ser aceito automaticamente ou se deve permitir que o agente aceite ou rejeite manualmente o item de trabalho.
    Valores válidos:
    • Verdadeiro/sim/1: Aceitar automaticamente.
    • Falso/não/0: Permitir que o agente aceite ou rejeite manualmente.

    Tipo de dados: Booliano

    Padrão: falso

    assignment.offered_on Tempo de oferta do item de trabalho. O tempo de oferta é usado para calcular o tempo restante que o agente deixou para aceitar o item de trabalho na caixa de entrada. Isso ajuda a considerar a discrepância entre o momento em que a solicitação de API é processada e quando o sistema de roteamento de terceiros invoca a solicitação de API. Este parâmetro permite que os sistemas externos que chamam este endpoint configurem o tempo de oferta do item de trabalho para que ele permaneça sincronizado com o acompanhamento interno do item de trabalho do sistema externo.

    Por exemplo, se o item de trabalho foi oferecido em 11:30:30, o tempo limite for de 30 segundos e a hora atual for 11:30:45, o temporizador de contagem regressiva exibirá 00:15 (como em 15 segundos restantes).

    Este valor é armazenado no campo Offered_on no item de trabalho.

    Este parâmetro será ignorado se timeouto parâmetro não foi aprovado.

    Tipo de dados: Cadeia de caracteres

    Formato: Carimbo de data/hora UTC (aaaa-MM-dd'T'HH:mm:ss.sss)

    tempo limite.atribuição Tempo que o item de trabalho permanece na caixa de entrada do agente aguardando que o agente aceite a atribuição de trabalho.

    Tipo de dados: Número

    Unidade: segundos

    Padrão: Cadeia de caracteres vazia (sem limite de tempo).

    external_segment_id Identificador externo do sistema CCAAS do segmento de chamada oferecido ao agente.

    Tipo de dados: Cadeia de caracteres

    queue_id Necessário para novas atribuições. Sys_id do registro de fila ou do identificador de fila em um sistema externo.

    Se estiver usando queue_id de um sistema externo, ele deverá ser mapeado para o campo ID da fila do provedor (external_id) no registro awa_queue.

    Tipo de dados: Cadeia de caracteres

    Tabela: Fila [awa_queue]

    transferência Necessário para atribuições de transferência. Objeto que contém informações sobre a transferência.

    Se um valor for fornecido para este parâmetro, a atribuição será considerada uma atribuição de transferência.

    Tipo de dados: Objeto

    {
       "source_queue_id": "String",
       "target_id": "String",
       "target_type": "String",
       "transfer_type": "String"
    }
    source_queue_id.transfer.source_queue_id Necessário para atribuições de transferência.

    Fila de origem de onde a transferência é iniciada. Sys_id do registro de fila ou do identificador de fila em um sistema externo.

    Se estiver usando queue_id de um sistema externo, ele deverá ser mapeado para o campo ID da fila do provedor (external_id) no registro awa_queue.

    Este parâmetro é usado para criar um item de trabalho antes de iniciar a transferência se um item de trabalho ativo não for encontrado. Ele permite que as transferências sejam realizadas se a interação original foi criada sem nenhum roteamento, como para chamadas de saída.

    Tipo de dados: Cadeia de caracteres

    Tabela: Fila [awa_queue]

    transfer.target_id Necessário para atribuições de transferência. Sys_id do registro de agente ou fila para o qual transferir a atribuição.
    • Se target_typeé agente , target_idÉ o sys_id do registro de usuário do agente na tabela Usuário [sys_user].
    • Se target_typeé fila , target_idÉ o sys_id do registro de fila na tabela Fila [awa_queue] ou o identificador de fila em um sistema externo.

    Tipo de dados: Cadeia de caracteres

    transfer.target_type Necessário para atribuições de transferência. Tipo de registro para o qual transferir a atribuição.
    Valores válidos:
    • agente
    • fila

    Tipo de dados: Cadeia de caracteres

    transfer.transfer_type Necessário para atribuições de transferência. Tipo de transferência.
    Valores válidos:
    • cego
    • consulte

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos da REST API compatíveis .

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/jsonou application/xml.

    Padrão: application/json

    Tipo de conteúdo Formato de dados do corpo da solicitação. Tipos compatíveis: application/jsonou application/xml.

    Padrão: application/json

    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte REST API códigos de resposta HTTP .

    Tabela 6. Códigos de status
    Código de status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    401 Não autorizado. As credenciais do usuário estão incorretas ou não foram aprovadas.
    404 Não encontrado. O item solicitado não foi encontrado.
    409 Conflito. Não foi possível processar a solicitação devido a um erro no item de trabalho ou no sys_id do agente do documento fornecido.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta (JSON ou XML)

    Nome Descrição
    mensagem Mensagem de resposta com informações sobre o sucesso ou falha da atribuição.
    Valores possíveis:
    • Atribuição manual solicitada com sucesso - Sucesso.
    • O <API_caller_sys_id> do solicitante não tem a função awa_manager ou awa_integration_user – O usuário autenticado que faz a solicitação de API deve ter a função awa_manager ou awa_integration_user.
    • Item de trabalho aceito não pode ser atribuído – O item de trabalho não pode ser atribuído porque já foi aceito por um agente. Para obter mais informações, consulte Check work items and AWA events.
    • o <agent_sys_id> não é um agente válido – O agente não tem a função awa_agent.
    • Falha na transferência - não foi possível fazer a transferência cega para o agente - A atribuição não foi transferida porque o agente não está no estado Disponível no AWA.
    • O item de trabalho já está atribuído ao <agent_sys_id> – O item de trabalho fornecido foi atribuído a outro agente.
    • O agente não está disponível – O agente não está no estado Disponível no AWA. Para obter mais informações, consulte Controles da caixa de entrada do agente .
    • O valor do tempo limite não pode ser negativo – O valor de tempo limite informado não pode ser negativo.
    • o <presence_state_sys_id> não é um estado de presença válido O estado de presença fornecido sys_id não existe na tabela Estado de presença do AWA [awa_presence_state].
    • O horário oferecido (<offered_on_timestamp>) deve estar no seguinte formato: aaaa-MM-dd'T'HH:mm:ss.sss – O carimbo de data/hora offered_on fornecido deve usar o formato especificado.
    • O tempo oferecido (<offered_on_timestamp>) deve ser anterior à hora atual, caso contrário, o agente terá mais tempo para aceitar o item de trabalho - O carimbo de data/hora fornecido offered_on não pode ser anterior ao horário em que a solicitação é feita.
    • O carimbo de data/hora após o tempo limite (<offered_on_timestamp >) deve ser posterior à hora atual, caso contrário, o agente não tem tempo para aceitar o item de trabalho – O carimbo de data/hora após adicionar o valor de tempo limite ao carimbo de data/hora offered_on fornecido deve ser posterior à hora em que a solicitação foi feita.
    • o <display_option> não é uma opção de exibição válida – Display_option fornecido deve ser um dos seguintes valores: card_only ou card_and_tab .
    • %s não é um valor booliano válido – O valor booliano informado deve usar um dos seguintes formatos: sim/não , verdadeiro/falso , 1/0 .
    • O usuário não tem a função "awa_external_user" - O agente que recebe a atribuição deve ter a função awa_external_user.
    • O documento não está ativo - O documento fornecido deve estar ativo e não em um estado fechado.
    êxito Sinalizador que indica se a atribuição foi bem-sucedida.
    Valores possíveis:
    • Verdadeiro: Atribuição bem-sucedida.
    • Falso: Atribuição malsucedida.

    Tipo de dados: Booliano

    work_item Detalhes sobre o item de trabalho criado ou atualizado.

    Tipo de dados: Objeto

    { 
       "display_name": "String",
       "document_id": "String", 
       "document_table": "String", 
       "queue": "String", 
       "sys_id": "String" 
    }
    work_item.display_name Nome de exibição do registro do documento.

    Tipo de dados: Cadeia de caracteres

    work_item.document_id Sys_id do registro do documento.

    Tipo de dados: Cadeia de caracteres

    work_item.document_table Nome da tabela associada ao documento.

    Tipo de dados: Cadeia de caracteres

    work_item.queue Sys_id do registro de fila ou do identificador de fila em um sistema externo.

    Tipo de dados: Cadeia de caracteres

    Tabela: Fila [awa_queue]

    work_item.sys_id Sys_id do item de trabalho.

    Tipo de dados: Cadeia de caracteres

    Tabela: Item de trabalho [awa_work_item]

    Solicitação de curl

    Este exemplo mostra como atribuir um item de trabalho a um agente.

    curl "https://instance.servicenow.com/api/now/awa/documents/interaction/59616aba87bd5210be070d48dabb35e6/offer" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data '{ 
        "external_segment_id": "segment_59616aba87bd5210be070d48dabb35e6", 
        "queue_id": "92f8942787851210be070d48dabb35fb", 
        "assignment": { 
            "agent_sys_id": "0d584509c323120095ccd02422d3ae5b", 
            "allowed_to_decline": "true", 
            "enable_auto_assign": "false", 
            "timeout": 30, 
            "offered_on":"2024-04-03T23:09:31.000" 
        } 
    }' 
    --user 'username':'password'

    A resposta mostra que o item de trabalho foi atribuído com sucesso ao agente. Você pode verificar o resultado no campo Atribuído a do registro do item de trabalho [awa_work_item].

    { 
       "result": { 
          "work_item": { 
             "display_name": "Interaction: IMS0000221", 
             "sys_id": "bfa3a27e87bd5210be070d48dabb3588", 
             "document_id": "59616aba87bd5210be070d48dabb35e6", 
             "document_table": "interaction", 
             "queue": "92f8942787851210be070d48dabb35fb" 
          }, 
          "success": true, 
          "message": "Manual assignment successfully requested." 
       } 
    }