API AWA Offre de travail

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 9 minutes de lecture
  • L’API Offre de travail AWA fournit un point de terminaison pour affecter ou transférer des éléments de travail aux agents.

    Cette API est destinée à être utilisée avec les intégrations CCAAS (Contact Center as a Service) où la décision d’acheminement et d’affectation a lieu dans le système CCAAS externe. Cette API permet d’afficher une carte de boîte de réception à un agent sous forme de ServiceNow Espace de travail d'agent notification d’acceptation de l’élément de travail.

    Cette API nécessite le module d’extension Affectation de travail avancée (com.glide.awa). Pour appeler cette API, vous devez avoir le rôle awa_manager ou awa_integration_user.

    Pour plus d’informations sur AWA, voir Affectation de travail avancée.

    Offre de travail AWA : PUBLIER /now/awa/documents/{document_table}/{document_sys_id}/offer

    Affecte ou transfère des éléments de travail aux agents.

    Un élément de travail est un travail unique géré par un AWA agent du début à la fin. Un élément de travail est créé à partir d’un document, tel qu’une interaction ou une tâche.

    Tous les agents qui reçoivent ou transfèrent des éléments de travail avec cette API doivent avoir les rôles awa_agent et awa_external_user.

    Format d'URL

    URL versionnée : /api/now/{api_version}/awa/documents/{document_table}/{document_sys_id}/offer

    URL par défaut : /api/now/awa/documents/{document_table}/{document_sys_id}/offer

    Paramètres de demande pris en charge

    Tableau 1. Paramètres de chemin d'accès
    Nom Description
    api_version Facultatif. Version du point de terminaison auquel accéder. Par exemple, v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière.

    Type de données : chaîne

    document_table Nom de la table associée au document, comme la table Interaction [interaction] ou la table Tâche [task].

    Type de données : chaîne

    document_sys_id Sys_id du document à acheminer vers l’agent ou la file d’attente.

    Type de données : chaîne

    Tableau 2. Paramètres de requête
    Nom Description
    Aucun
    Tableau 3. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    mission Requis pour les nouvelles affectations. Objet contenant des informations sur l’affectation.

    Type de données : objet

    { 
       "after_timeout_presence": "String",
       "agent_sys_id": "String", 
       "allowed_to_decline": Boolean,
       "display_option": "String", 
       "enable_auto_assign": Boolean, 
       "offered_on": "String",
       "timeout": Number 
    } 
    assignment.after_timeout_presence Sys_id de l’état de présence vers lequel l’agent bascule si le timeout paramètre expire.

    Si le timeout paramètre n’est pas transmis, il est ignoré.

    Pour plus d’informations sur les états de présence, reportez-vous à la section Configure agent presence states.

    Type de données : chaîne

    Par défaut : chaîne vide (l’état de présence de l’agent ne change pas).

    Table : État de présence AWA [awa_presence_state]

    assignment.agent_sys_id Requis pour les nouvelles affectations. Sys_id de l’agent disponible pour recevoir l’élément de travail. L’agent doit disposer des rôles awa_agent et awa_external_user.

    Pour savoir comment déterminer si un agent est disponible, consultez Contrôles de la boîte de réception de l’agent.

    Type de données : chaîne

    Table : Utilisateur [sys_user]

    assignment.allowed_to_decline Marqueur indiquant si les agents sont autorisés à rejeter des éléments de travail. Si ce paramètre est vrai, la carte de boîte de réception affiche les boutons Accepter et Rejeter sur la carte de boîte de réception.
    Valeurs valides :
    • vrai/oui/1 : l’agent peut rejeter des éléments de travail.
    • faux/non/0 : l’agent ne peut pas rejeter les éléments de travail.

    Type de données : booléennes

    Par défaut : true

    assignment.display_option Option d’affichage pour la carte et l’onglet lorsqu’un élément de travail est automatiquement affecté.

    Ce paramètre n’est valide que si enable_auto_assign la valeur est vraie.

    Valeurs valides :
    • card_and_tab : affichez la carte et l’onglet.
    • card_only : affichez uniquement la carte.

    Type de données : chaîne

    Par défaut : card_only

    assignment.enable_auto_assign Marqueur qui indique si l’élément de travail doit être automatiquement accepté ou doit permettre à l’agent d’accepter ou de rejeter manuellement l’élément de travail.
    Valeurs valides :
    • true/yes/1 : accepte automatiquement.
    • faux/no/0 : permet à l’agent d’accepter ou de refuser manuellement.

    Type de données : booléennes

    Valeur par défaut : false

    assignment.offered_on Heure de l’offre d’élément de travail. La durée de l’offre est utilisée pour calculer le temps restant à l’agent pour accepter l’élément de travail dans la boîte de réception. Il permet de tenir compte de l’écart entre le moment où la demande d’API est traitée et le moment où le système de routage tiers appelle la demande d’API. Ce paramètre permet aux systèmes externes appelant ce point de terminaison de configurer la durée de l’offre de l’élément de travail afin qu’il reste synchronisé avec le suivi interne de l’élément de travail par le système externe.

    Par exemple, si l’élément de travail a été proposé le 11:30:30, le délai d’expiration est de 30 secondes et l’heure actuelle est 11:30:45, le compte à rebours affiche 00:15 (c’est-à-dire dans les 15 secondes restantes).

    Cette valeur est stockée dans le champ offered_on de l’élément de travail.

    Ce paramètre est ignoré s’il timeout n’est pas transmis.

    Type de données : chaîne

    Format : horodatage UTC (aaaa-MM-jj’T’HH :mm :ss. SSS)

    Assignment.Timeout Durée pendant laquelle l’élément de travail reste dans la boîte de réception de l’agent en attente de l’acceptation de l’affectation de travail par l’agent.

    Type de données : nombre

    Unité : Secondes

    Par défaut : chaîne vide (aucune limite de temps).

    external_segment_id Identificateur externe du système CCAAS du segment d’appel proposé à l’agent.

    Type de données : chaîne

    queue_id Requis pour les nouvelles affectations. Sys_id de l’enregistrement de file d’attente ou de l’identificateur de file d’attente dans un système externe.

    Si vous utilisez un queue_id à partir d’un système externe, il doit être mappé au champ ID de file d’attente du fournisseur (external_id) sur l’enregistrement awa_queue.

    Type de données : chaîne

    Table : File d’attente [awa_queue]

    transfert Requis pour les affectations de transfert. Objet contenant des informations sur le transfert.

    Si une valeur est fournie pour ce paramètre, l’affectation est considérée comme une affectation de transfert.

    Type de données : objet

    {
       "source_queue_id": "String",
       "target_id": "String",
       "target_type": "String",
       "transfer_type": "String"
    }
    transfer.source_queue_id Requis pour les affectations de transfert.

    File d’attente source à partir de laquelle le transfert est initié. Sys_id de l’enregistrement de file d’attente ou de l’identificateur de file d’attente dans un système externe.

    Si vous utilisez un queue_id à partir d’un système externe, il doit être mappé au champ ID de file d’attente du fournisseur (external_id) sur l’enregistrement awa_queue.

    Ce paramètre permet de créer un élément de travail avant d’initier le transfert si aucun élément de travail actif n’est trouvé. Il permet d’effectuer des transferts si l’interaction d’origine a été créée sans aucun acheminement, par exemple pour les appels sortants.

    Type de données : chaîne

    Table : File d’attente [awa_queue]

    transfer.target_id Requis pour les affectations de transfert. Sys_id de l’enregistrement de l’agent ou de la file d’attente auquel transférer l’affectation.
    • S’il target_type s’agit d’un agent, target_id est le sys_id de l’enregistrement utilisateur de l’agent dans la table Utilisateur [sys_user].
    • S’il target_type s’agit d’une file d’attente, target_id il s’agit du sys_id de l’enregistrement de file d’attente dans la table File d’attente [awa_queue] ou de l’identificateur de file d’attente dans un système externe.

    Type de données : chaîne

    transfer.target_type Requis pour les affectations de transfert. Type d’enregistrement auquel transférer l’affectation.
    Valeurs valides :
    • agent
    • queue

    Type de données : chaîne

    transfer.transfer_type Requis pour les affectations de transfert. Type de transfert.
    Valeurs valides :
    • aveugle
    • consulter

    Type de données : chaîne

    En-têtes

    Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.

    Tableau 4. En-têtes de demandes
    En-tête Description
    Accepter Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Type de contenu Format de données du corps de la demande. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Tableau 5. En-têtes de réponses
    En-tête Description
    Aucun

    Codes d'état

    Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.

    Tableau 6. Codes d'état
    Code d'état Description
    200 Réussi. La demande a été correctement traitée.
    401 Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises.
    404 Introuvable. L’élément demandé est introuvable.
    409 Conflit. La demande n’a pas pu être traitée en raison d’une erreur avec l’élément de travail ou le sys_id d’agent du document fourni.
    500 Erreur interne du serveur. Une erreur inattendue s'est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l'erreur.

    Paramètres du corps de la réponse (JSON ou XML)

    Nom Description
    message Message de réponse contenant des informations sur la réussite ou l’échec de l’affectation.
    Valeurs possibles :
    • Affectation manuelle demandée avec succès : réussite.
    • L'<API_caller_sys_id> de l’appelant n’a pas le rôle awa_manager ou awa_integration_user : l’utilisateur authentifié effectuant la demande d’API doit avoir le rôle awa_manager ou awa_integration_user.
    • L’élément de travail accepté ne peut pas être affecté : l’élément de travail ne peut pas être affecté, car il est déjà accepté par un agent. Pour plus d'informations, consultez Check work items and AWA events.
    • <agent_sys_id> n’est pas un agent valide : l’agent n’a pas le rôle awa_agent.
    • Échec du transfert : impossible Transfert aveugle à l’agent : L’affectation n’a pas été transférée, car l’agent n’est pas à l’état Disponible dans AWA.
    • L’élément de travail est déjà affecté à <agent_sys_id> : l’élément de travail fourni est affecté à un autre agent.
    • L’agent n’est pas disponible : l’agent n’est pas dans l’état Disponible dans AWA. Pour plus d’informations, voir Contrôles de la boîte de réception de l’agent.
    • La valeur du délai d’expiration ne peut pas être négative : la valeur du délai d’expiration fournie ne peut pas être négative.
    • <presence_state_sys_id> n’est pas un état de présence valide : le sys_id d’état de présence fourni n’existe pas dans la table État de présence AWA [awa_presence_state].
    • Le temps offert (<offered_on_timestamp>) doit être au format suivant : aaaa-MM-jj’T’HH :mm :ss. SSS : l’horodatage offered_on fourni doit utiliser le format spécifié.
    • L’heure proposée (<offered_on_timestamp>) doit être antérieure à l’heure actuelle, sinon l’agent aura plus de temps pour accepter l’élément de travail. À condition que offered_on horodatage ne puisse pas être antérieur à l’heure à laquelle la demande est effectuée.
    • L’horodatage après le délai d’expiration (<offered_on_timestamp >) doit être postérieur à l’heure actuelle, sinon l’agent n’a pas le temps d’accepter l’élément de travail : l’horodatage après l’ajout de la valeur de délai d’expiration au offered_on fourni doit être postérieur à l’heure à laquelle la demande a été effectuée.
    • <display_option> n’est pas une option d’affichage valide : la display_option fournie doit être l’une des valeurs suivantes : card_only ou card_and_tab.
    • %s n’est pas une valeur booléenne valide : la valeur booléenne fournie doit utiliser l’un des formats suivants : oui/non, vrai/faux, 1/0.
    • L’utilisateur n’a pas le rôle « awa_external_user ». L’agent recevant l’affectation doit avoir le rôle awa_external_user.
    • Le document n’est pas actif : le document fourni doit être actif et non dans un état fermé.
    réussite Marqueur indiquant si l’affectation a réussi.
    Valeurs possibles :
    • vrai : affectation réussie.
    • faux : échec de l’affectation.

    Type de données : booléennes

    work_item Détails sur l’élément de travail créé ou mis à jour.

    Type de données : objet

    { 
       "display_name": "String",
       "document_id": "String", 
       "document_table": "String", 
       "queue": "String", 
       "sys_id": "String" 
    }
    work_item.nom_affichage Nom d’affichage de l’enregistrement de document.

    Type de données : chaîne

    work_item.identificateur_document Sys_id de l’enregistrement du document.

    Type de données : chaîne

    work_item.table_document Nom de la table associée au document.

    Type de données : chaîne

    work_item.file d’attente Sys_id de l’enregistrement de file d’attente ou de l’identificateur de file d’attente dans un système externe.

    Type de données : chaîne

    Table : File d’attente [awa_queue]

    work_item.sys_id Sys_id de l’élément de travail.

    Type de données : chaîne

    Table : Élément de travail [awa_work_item]

    Demande cURL

    Cet exemple montre comment affecter un élément de travail à un agent.

    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'

    La réponse montre que l’élément de travail est affecté avec succès à l’agent. Vous pouvez vérifier le résultat dans le champ Affecté à de l’enregistrement de l’élément de travail [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." 
       } 
    }