API d’intégration de bot Agent virtuel
L’API Agent virtuel Bot Integration fournit des points de terminaison qui permettent aux utilisateurs d’intégrer n’importe quelle interface de messagerie instantanée ou n’importe quel écosystème de bot avec le ServiceNow Agent virtuel fichier et/ou Agent actif.
Cette API est basée sur le cadre de travail d’intégration conversationnelle de la messagerie instantanée personnalisée fournie avec Agent virtuel l’espace de noms sn_va_as_service et fonctionne dans ce dernier.
Pour en savoir plus sur l’installation et la configuration de l’API de bot Integration, consultez API de l’Agent virtuelAgent virtuel.
Intégration de bot VA : POST /sn_va_as_service/bot/integration
Envoie un message, une pièce jointe ou une URL spécifiés à un bot secondaire ServiceNow Agent virtuel (VA) spécifié.
Le site d’un client peut avoir un ou plusieurs bots secondaires ServiceNow . En plus de transmettre des messages à un ServiceNow bot secondaire VA, le bot principal ou le client de messagerie instantanée peut utiliser ce point de terminaison pour transmettre des messages à un agent via Agent actif la messagerie instantanée. Utilisez le paramètre transmis dans le action corps de la demande pour spécifier comment le contenu spécifié doit être géré.
Format d'URL
URL par défaut : /api/sn_va_as_service/bot/integration
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| action | Action que l’agent virtuel doit prendre. Valeurs valides :
Type de données : chaîne Par défaut : null |
| botToBot | Marqueur qui indique si la conversation se fait entre des bots, par exemple entre un bot principal et un bot secondaire. Valeurs possibles :
Type de données : booléennes Valeur par défaut : true |
| ID de session client | Identificateur unique de session client de l’application/du service que l’utilisateur final utilise pour communiquer avec le ServiceNow bot. Cet ID permet d’identifier l’ensemble des demandes/réponses pour une conversation d’utilisateur spécifique. Le format de ce paramètre est déterminé par l’implémenteur. Type de données : chaîne Par défaut : null |
| Variables client | Paires nom-valeur au format JSON de transfert qui sont renvoyées dans la réponse. Ces valeurs ne sont pas traitées par le point de terminaison, mais peuvent être utilisées pour conserver des informations client spécifiques attachées à la conversation. Type de données : objet Par défaut : null |
| Variables contextuelles | Paires nom-valeur au format JSON qui fournissent des informations supplémentaires sur l’utilisateur. Fournissez ces informations pour personnaliser l’expérience de conversation. Pour plus d’informations sur les variables de contexte, consultez Définir et publier des variables de contexte de messagerie instantanée. Par exemple : Type de données : objet Par défaut : null |
| ID d’e-mail | Requis lors de l’activation de la liaison de compte, sinon tous les utilisateurs sont considérés comme des utilisateurs invités. Adresse e-mail de l’utilisateur final du client de messagerie instantanée, la personne avec laquelle le bot interagit. Pour plus d’informations sur la liaison de compte, consultez Lier votre compte d’utilisateur ServiceNow à une application de messagerie pour les conversations d’Agent virtuel. Type de données : chaîne |
| histoire | Historique de la conversation du bot principal avec l’utilisateur, en commençant par la demande initiale de l’utilisateur. Type de données : objet Par exemple : |
| history.displayName | Nom de l’utilisateur à qui le message a été envoyé. S’il s’agit du bot principal, passez Bot. Type de données : chaîne |
| history.isBotMessage | Marqueur indiquant si le message a été envoyé par le bot principal. Valeurs valides :
Type de données : booléennes |
| type.historique | Type de message envoyé. Valeurs valides : texte Type de données : chaîne |
| historique.valeur | Contenu de l’information. Par exemple, le texte du message. Type de données : chaîne |
| intention | Décrit l’intention de la conversation. Fournissez ces informations lorsque le action paramètre est réglé sur SWITCH.Type de données : objet |
| intent.id | NLU ID d’intention de la rubrique système vers laquelle basculer la conversation. Situé dans la table Langue de la rubrique CS [sys_cs_topic_language]. Le problème intent.id est résolu en fonction de la langue transmise dans la session de messagerie instantanée. Si aucune langue n’est transmise au démarrage d’une conversation, il obtient la langue à partir de la session/du profil de l’utilisateur. Type de données : chaîne |
| message | Requis. Détails du message à envoyer au ServiceNow bot. Type de données : objet |
| Message.Pièce jointe | Requis en cas d’envoi de pièces jointes. Détails de chaque pièce jointe à envoyer. Vous ne pouvez transmettre des pièces jointes qu’en tant qu’URL. Une analyse antivirus est déclenchée sur toutes les pièces jointes. Il n’y a aucune restriction sur la taille d’une pièce jointe, cependant, le transfert de fichiers volumineux peut prendre beaucoup de temps. Type de données : tableau d’objets |
| message.attachment.clientAttachmentId | Identificateur unique de la pièce jointe à envoyer au ServiceNow bot. Le format de cet identificateur est déterminé par l’implémenteur. Type de données : chaîne Par défaut : null |
| message.attachment.contentType | Obligatoire si une pièce jointe est spécifiée. Type MIME standard de la pièce jointe. Valeurs valides (insensibles à la casse) :
Type de données : chaîne |
| message.attachment.fileName | Obligatoire si une pièce jointe est spécifiée. Nom du fichier de la pièce jointe. Type de données : chaîne |
| message.pièce jointe.en-têtes | Informations supplémentaires nécessaires si le fichier en pièce jointe est privé et protégé. Type de données : objet |
| Message.Pièce jointe.en-têtes.Autorisation | Informations nécessaires pour obtenir l’autorisation d’accéder à la pièce jointe, telles qu’un nom d’utilisateur et un mot de passe. Type de données : chaîne |
| message.attachment.url | Obligatoire si une pièce jointe est spécifiée. URL dans laquelle se trouve la pièce jointe. Le VA obtient la pièce jointe à partir de cette URL, exécute une analyse antivirus, puis traite le fichier. Si la pièce jointe n’est pas un fichier public, vous devez transmettre un message.attachment.header objet contenant les informations d’autorisation afin que la pièce jointe soit accessible. Vous devez également vous assurer que le domaine URL figure dans les domaines de confiance déposés dans sys_cs_provider. Type de données : chaîne |
| message.clientMessageId | Identificateur alphanumérique unique du message. Le format de cet identificateur est déterminé par l’implémenteur. Type de données : chaîne Par défaut : null |
| message.texte | Obligatoire si attachment le paramètre n’est pas spécifié. Texte du message. La langue du message doit être transmise dans le contextVariables paramètre. Type de données : chaîne Longueur maximale : Illimitée |
| message.typed | Requis. Marqueur indiquant si le message a été saisi ou s’il s’agit d’une sélection d’option (sélectionnée). Valeurs valides :
Type de données : booléennes |
| requestId | Requis. Identificateur alphanumérique unique pour cette demande. Le format de cet identificateur est déterminé par l’implémenteur. Type de données : chaîne |
| silentMessage | Marqueur indiquant s’il s’agit d’un message silencieux. Un message silencieux est un message qui ne nécessite pas de réponse. Valeurs valides :
Remarque : Si une requête avec silentMessage = true est envoyée, tous les messages bot suivants restent supprimés jusqu’à ce qu’une demande de désactivation du mode silencieux soit envoyée en transmettant silentMessage = false.Type de données : booléennes Valeur par défaut : false |
| horodatage | Heure Epoch Unix à laquelle le message a été envoyé par l’utilisateur final du client de messagerie instantanée. Type de données : nombre Unité : Millisecondes Par défaut : Heure actuelle |
| fuseau horaire | Fuseau horaire GMT de l’utilisateur final du client de messagerie instantanée. Par exemple : Pour obtenir la liste des valeurs de fuseau horaire disponibles, reportez-vous à la section https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. Type de données : chaîne Par défaut : fuseau horaire GMT de l’instance ServiceNow . |
| sujet | Obligatoire si l’utilisateur veut passer à une rubrique particulière en spécifiant un nom de rubrique. Paire nom-valeur de la rubrique vers laquelle basculer. Vous pouvez spécifier le nom de la rubrique ou l’sys_id de la rubrique. Remarque : Vous ne pouvez spécifier qu’un seul nom de rubrique ou ID dans l’objet. Type de données : objet Par exemple : |
| topic.name | Nom de la rubrique vers laquelle basculer. Situé dans le champ Nom de la table Rubriques [sys_cs_topic] de l’Agent virtuel. Type de données : chaîne |
| topic.id | Sys_id de la rubrique vers laquelle basculer. Situé dans le champ sys_id de la table Rubriques de l’agent virtuel [sys_cs_topic]. Type de données : chaîne |
| userId | Requis. Identificateur d’utilisateur unique. Il s’agit de l’identificateur de l’utilisateur final qui interagit avec le bot. 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.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| jeton | Requis si vous utilisez l’authentification basée sur un jeton ; facultatif pour l’authentification de base ou OAuth. Jeton d’authentification à utiliser si l’authentification par jeton a été configurée pour ce point de terminaison. Type de données : chaîne |
| 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.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. Si vous recevez un code d’état 200, mais que vous ne recevez pas de réponse, vérifiez les éléments suivants :
|
| 400 | Demande incorrecte. Un type de demande incorrecte ou mal formé a été détecté. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
| 405 | Méthode non valide. La fonctionnalité est désactivée. |
| 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 réponse
État de l’appel de point de terminaison. Il est envoyé en réponse à la réception de la demande d’appel initiale. La demande n’a pas encore été traitée.
| Nom | Description |
|---|---|
| erreur | Description de l’erreur détectée. Renvoyé uniquement si une erreur se produit. Type de données : objet |
| error.detail | Détails sur l’erreur rencontrée. Type de données : chaîne |
| message.erreur | Message d’erreur renvoyé. Type de données : chaîne |
| statut | État de l’appel de point de terminaison. Valeurs valides :
Type de données : chaîne |
Paramètres du corps de réponse VA
Corps de réponse envoyé depuis l’agent virtuel vers le point de terminaison de réponse configuré.
| Nom | Description |
|---|---|
| Messagerie instantanée agent | Marqueur indiquant si la conversation est connectée au ServiceNow Agent actif. Valeurs possibles :
Type de données : booléennes |
| body | Liste des objets qui décrivent les éléments du corps du message de réponse. Type de données : tableau |
| corps.actionType | Type de message d’action distribué par le bot secondaire au bot primaire. Par exemple, indicateur de saisie ou temps d’attente de l’agent. Valeurs valides :
Par exemple : Envoi de Envoi de Type de données : chaîne |
| corps.agentinfo | Si activé dans la configuration de la Messagerie instantanée d’agent, le nom et l’avatar de l’agent associé. Type de données : objet Par exemple : |
| body.agentInfo.agentAvatar | URL du fichier avatar associé à l’agent. Par exemple : « https://instance.servicenow.com/ee4eebf30a0004d963b5c5ac0d734dc4.iix?t=small » Type de données : chaîne |
| body.agentInfo.agentName | Nom d’affichage de l’agent. Type de données : chaîne |
| body.agentInfo.sentFromAgent | Marqueur indiquant si le message a été envoyé par un agent actif. Valeurs possibles :
Type de données : booléennes |
| données.corps | Chaîne JSON qui définit les données dans la carte. Type de données : chaîne |
| groupe.corps | Groupe de contrôle riche auquel appartient l’élément corps. Vous pouvez transformer davantage ces contrôles par défaut en écrivant des scripts de transformation sortante. Pour en savoir plus sur ces scripts, reportez-vous à la rubrique Scripts d’action d’Agent virtuel. Valeurs possibles :
Type de données : chaîne |
| en-tête.corps | En-tête du lien. Type de données : chaîne |
| taille.corps | Hauteur de l’élément HTML. Type de données : nombre Unité : Pixels |
| corps.typeélément_élément | Type d’élément du corps. Valeurs possibles : (sensible à la casse)
Type de données : chaîne |
| étiquette corps | Étiquette à afficher pour l’élément associé. Type de données : chaîne |
| body.maskType | Indique le niveau de confidentialité des données associées. Valeurs possibles :
Type de données : chaîne |
| body.maxCount (en anglais seulement) | Uniquement renvoyé lorsque est uiTypeFileUpload. Nombre maximal de pièces jointes pouvant être téléchargées simultanément.Type de données : nombre (entier) |
| body.maxSize | Uniquement renvoyé lorsque est uiTypeFileUpload. Taille maximale de la pièce jointe qui peut être téléchargée.Type de données : nombre (entier) Unité : mégaoctets |
| message.corps | Uniquement renvoyé lorsque est actionTypeStartSpinner. Message à afficher à l’utilisateur.Type de données : chaîne |
| Sélection Corporelle.MultiSélectionnée | Marqueur indiquant si l’utilisateur peut sélectionner plusieurs options. Valeurs possibles :
Type de données : booléennes |
| body.nluTextEnabled | Marqueur indiquant si le client de messagerie instantanée de l’utilisateur peut recevoir des messages texte de Compréhension du langage naturel (NLU). Valeurs possibles :
Type de données : booléennes |
| options.corps | Liste des objets qui décrivent les options disponibles pour un contrôle de sélecteur. Type de données : tableau |
| Pièce-jointe.options.corps | URL de l’image dans le carrousel à récupérer. Type de données : chaîne |
| description.options.corps | Description de l’élément de carrousel. Type de données : chaîne |
| corps.options.activé | Marqueur indiquant si le contrôle de sélecteur est activé sur le client de messagerie instantanée de l’utilisateur final. Dans les implémentations bot-to-bot, le bot principal est chargé de s’assurer que le contrôle du sélecteur est désactivé. Valeurs possibles :
Type de données : booléennes |
| corps.options.étiquette | Étiquette à afficher pour le paramètre associé body.options.value . Type de données : chaîne |
| body.options.renderStyle | Style à utiliser lors du rendu de l’élément associé. Valeur possible : data Type de données : chaîne |
| corps.options.valeur | Valeur à afficher pour le paramètre associé body.options.label . Type de données : chaîne |
| body.promptMsg | Message d’invite à afficher avec le contrôle de sélecteur. Type de données : chaîne |
| corps.requis | Marqueur indiquant si l’utilisateur final doit répondre à la requête dans l’élément corps. Valeurs possibles :
Type de données : booléennes |
| body.spinnerType | Uniquement renvoyé lorsque est actionTypeStartSpinner. Type de spinner affiché à l’utilisateur de messagerie instantanée.Valeurs possibles : wait_time : Message indiquant le délai avant d’être transféré à un agent actif. Type de données : chaîne |
| corps.style | Style de l’élément du corps. Valeurs possibles :
Type de données : chaîne |
| body.templateName | Nom du modèle à utiliser pour afficher la carte associée. Type de données : chaîne |
| type.corps | Uniquement renvoyé pour DefaultOutputLink. Type de données renvoyées. Valeurs possibles : lien Type de données : chaîne |
| corps.uiType | Type d’élément du corps. Les valeurs possibles dépendent de la valeur du body.group paramètre. Ces valeurs remontent aux contrôles définis dans Concepteur d’agent virtuel. Pour plus d’informations, reportez-vous à la section Prise en main de Concepteur d’agent virtuel. Valeurs possibles :
Type de données : chaîne |
| corps.valeur | Données à utiliser pour traiter l’élément de corps. Le type d’informations transmises dépend du type d’élément de corps. OutputLink : objet. Image de sortie : chaîne de caractères. URL de l’image. outputHtml : chaîne de caractères. HTML que le client doit afficher. Type de données : chaîne ou objet |
| action.valeur.corps | Uniquement renvoyé pour DefaultOutputLink. URL du lien renvoyé. Type de données : chaîne |
| corps.temps d’attente | Durée d’attente de l’utilisateur avant d’être connecté à un agent actif. Type de données : chaîne |
| largeur.corps | Largeur de l’élément HTML associé. Type de données : nombre Unité : Pixels |
| ID de session client | Identificateur unique de session client de l’application/service de messagerie instantanée que l’utilisateur final utilise pour communiquer avec le ServiceNow bot. Type de données : chaîne |
| Variables client | Paires nom-valeur au format JSON copiées à partir de ce qui est transmis dans le clientVariables paramètre dans le corps de la demande. Ces valeurs ne sont pas traitées par le point de terminaison, mais peuvent être utilisées pour conserver des informations client spécifiques attachées à la conversation. Type de données : objet |
| terminé | Marqueur indiquant si la ServiceNow Agent virtuel conversation a été terminée avec succès. Valeurs possibles :
Type de données : booléennes |
| enterpriseId | Actuellement inutilisé. |
| message | Détails du message envoyé à l’agent virtuel ServiceNow . C’est la même chose que l’objet de message transmis. Type de données : objet |
| Message.Pièce jointe | Détails de la pièce jointe. Les pièces jointes peuvent être un fichier ou une URL. Type de données : objet |
| message.attachment.clientAttachmentId | Identificateur unique de la pièce jointe envoyée à l’agent virtuel ServiceNow . Le format de cet identificateur est déterminé par l’implémenteur. Type de données : chaîne |
| message.attachment.contentType | Type MIME standard de la pièce jointe. Valeurs possibles (insensibles à la casse) :
Type de données : chaîne |
| message.attachment.fileName | Nom du fichier de la pièce jointe. Type de données : chaîne |
| message.attachment.url | URL dans laquelle se trouve la pièce jointe. Type de données : chaîne |
| message.clientMessageId | Identificateur alphanumérique unique du message. Type de données : chaîne |
| message.texte | Texte du message. Type de données : chaîne Longueur maximale : Illimitée |
| message.typed | Marqueur indiquant si le message a été saisi ou s’il s’agit d’une sélection d’option (sélectionnée). Valeurs valides :
Type de données : booléennes |
| nowBotId (en anglais seulement) | Actuellement inutilisé. |
| nowSessionId (ID de session actuel) | Actuellement inutilisé. |
| requestId | Identificateur unique pour cette demande. Type de données : chaîne |
| score | Score de confiance d’intention du ServiceNow NLU modèle, spécifié en pourcentage, par exemple 87,3 %. Ce score permet au bot primaire de décider s’il affiche ou non l’intention associée en fonction du seuil de confiance du modèle du NLU bot primaire. Le ServiceNow NLU seuil de confiance du modèle est ignoré sur l’instance ServiceNow afin que le seuil de confiance du modèle du bot primaire puisse être appliqué de manière cohérente sur tous les bots NLU secondaires. Type de données : nombre |
| prendre le contrôle | Marqueur indiquant que l’utilisateur ServiceNow Agent virtuel souhaite redonner le contrôle au bot principal. Valeurs valides :
Type de données : booléennes Valeur par défaut : false |
| userId | Identificateur de l’utilisateur final qui interagit avec le bot. Type de données : chaîne |
Commencer une conversation à l’aide de l’action START_CONVERSATION pour commencer une conversation
L’exemple suivant montre comment utiliser l’action START_CONVERSATION pour démarrer une conversation avec Agent virtuel. Cet appel dirige l’utilisateur vers la rubrique du message d’accueil.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"requestId": "asd2423-sda23-qwe23-we23",
"action": "START_CONVERSATION",
"enterpriseId": "ServiceNow",
"nowBotId": "A85PWLERF",
"clientSessionId": "",
"nowSessionId": "",
"message":{
"text": "",
"typed": true,
"clientMessageId": "ABC-123"
},
"userId": "beth.anglin",
"emailId": "beth.anglin@example.com",
"timestamp": 1588824102,
"timezone": "America/New_York"
}"
--user "username":"password"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"asd2423-sda23-qwe23-we23",
"clientSessionId":"",
"nowSessionId":"",
"message":{
"text":"",
"typed":true,
"clientMessageId":"ABC-123"
},
"userId":"beth.anglin",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"value":"Hi, I'm your Virtual Agent. Let me know how I can help you today.",
"maskType":"NONE"
},
{
"uiType":"TopicPickerControl",
"group":"DefaultPicker",
"nluTextEnabled":false,
"promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type help any time when you need help.",
"label":"Show me everything",
"options":[
{
"label":"b2b topic",
"value":"2bb7bd7670de6010f877c7f188266fc7",
"enabled":true
},
{
"label":"Live Agent Support.",
"value":"ce2ee85053130010cf8cddeeff7b12bf",
"enabled":true
}
]
}
],
"score":1
}
Transférer une conversation à l’aide d’un Agent actif énoncé
L’exemple suivant illustre comment transférer une conversation à Agent actif, en contournant la rubrique Salutation, en transmettant agent comme énoncé dans le message.text paramètre. Les valeurs d’énoncé possibles sont définies dans la table sys_cs_contextual_action. Pour plus d’informations sur les actions contextuelles, consultez Actions contextuelles pour les intégrations de messagerie instantanée personnalisées.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--header "token: ORANGE" \
--data " {
"requestId": "322bas2be70-sadsa-we32-3eq2-1231ra9",
"botToBot": true,
"clientSessionId": "",
"silentMessage": false,
"message":{
"text": "agent",
"typed": true
},
"userId": "abel.tuter",
"emailId": "abel.tuter@servicenow.com",
"timestamp": 1588824102,
"timezone": "America/New_York"
}"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"322bas2be70-sadsa-we32-3eq2-1231ra9",
"clientSessionId":"",
"message":{
"text":"agent",
"typed":true
},
"userId":"abel.tuter",
"body":[
{
"uiType":"Picker",
"group":"DefaultPicker",
"required":true,
"nluTextEnabled":false,
"label":"I want to be sure I got this right. What item best describes what you want to do?",
"itemType":"List",
"style":"list",
"multiSelect":false,
"options":[
{
"label":"Live Agent Support.",
"value":"Live Agent Support.",
"renderStyle":"data",
"enabled":false
},
{
"label":"Virtual Agent Capabilities.",
"value":"Virtual Agent Capabilities.",
"renderStyle":"data",
"enabled":false
},
{
"label":"I want something else",
"value":"-1",
"renderStyle":"data",
"enabled":false
}
],
"scriptedData":null
}
],
"score":1
}
Transférer une conversation à l’assistance de l’agent actif en fonction de la sélection de l’utilisateur
L’exemple suivant montre le transfert de la conversation vers le support de l’agent actif en fonction de la sélection de l’utilisateur à partir de l’interaction précédente.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--header "token: ORANGE" \
--data "{
"requestId": "322bas2be70-sadsa-we32-3eq2-1231ra9",
"botToBot": true,
"clientSessionId": "",
"silentMessage": false,
"message":{
"text": "Live Agent Support.",
"typed": true
},
"userId": "abel.tuter",
"emailId": "abel.tuter@servicenow.com",
"timestamp": 1588824102,
"timezone": "America/New_York"
} "
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"322bas2be70-sadsa-we32-3eq2-1231ra9",
"clientSessionId":"",
"message":{
"text":"Live Agent Support.",
"typed":true
},
"userId":"abel.tuter",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"value":"Please stand by while I connect you to a live agent."
}
],
"agentChat":true,
"score":1
}
Terminer une Agent virtuel conversation en définissant le paramètre d’action
L’exemple suivant montre comment mettre fin à une Agent virtuel conversation en définissant le action paramètre sur END_CONVERSATION.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"requestId": "s345ew-sjg554-qwe23-we23",
"action": "END_CONVERSATION",
"enterpriseId": "ServiceNow",
"nowBotId": "A85PWLERF",
"clientSessionId": "",
"nowSessionId": "",
"message":{
"text": "b2b topic",
"typed": true,
"clientMessageId": "ABC-123"
},
"userId": "beth.anglin",
"emailId": beth.anglin@example.com,
"timestamp": 1588824102,
"timezone": "America/New_York"
}"
--user "username":"password"
Voici le corps de réponse envoyé par l’agent virtuel au point de terminaison de réponse configuré indiquant la conversation terminée.
{
"requestId":"s345ew-sjg554-qwe23-we23",
"clientSessionId":"",
"nowSessionId":"",
"message":{
"text":"",
"typed":true,
"clientMessageId":"ABC-123"
},
"userId":"beth.anglin",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"value":"The conversation has ended. If you need help again, type hi.",
"maskType":"NONE"
}
],
"score":1
}
Terminer une Agent actif conversation en définissant le paramètre d’action
L’exemple suivant montre comment mettre fin à une Agent actif conversation en définissant le action paramètre sur END_CONVERSATION.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"requestId": "sad-sjg554-qwe23-we23",
"action": "END_CONVERSATION",
"enterpriseId": "ServiceNow",
"nowBotId": "A85PWLERF",
"clientSessionId": "",
"nowSessionId": "",
"message":{
"text": "",
"typed": true,
"clientMessageId": "ABC-123"
},
"userId": "beth.anglin",
"emailId": "beth.anglin@example.com",
"timestamp": 1588824102,
"timezone": "America/New_York"
}"
--user "username":"password"
Voici le corps de réponse envoyé par l’agent virtuel au point de terminaison de réponse configuré indiquant la conversation terminée.
{
"requestId":"sad-sjg554-qwe23-we23",
"clientSessionId":"",
"nowSessionId":"",
"message":{
"text":"",
"typed":true,
"clientMessageId":"ABC-123"
},
"userId":"beth.anglin",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"value":"The conversation has ended. If you need help again, type hi.",
"maskType":"NONE"
}
],
"completed":true,
"score":1
}
Utiliser les commandes définies dans la table sys_cs_contextual_action comme énoncé pour démarrer une conversation avec Agent virtuel
L’exemple suivant montre comment utiliser la Hi commande définie dans la table sys_cs_contextual_action comme énoncé pour Agent virtuel démarrer une conversation au lieu de définir le paramètre sur START_CONVERSATION comme indiqué dans les action exemples précédents. Cet exemple montre l’utilisation d’une des variantes linguistiques de la Hi commande, « hola ».
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--header "token: ORANGE" \
--data "{
"requestId": "302bas2be70-sadsa-we32-3eq2-1231ra9",
"botToBot": true,
"clientSessionId": "",
"silentMessage": false,
"message":{
"text": "hola",
"typed": true
},
"userId": "fred.ludy",
"emailId": "abel.tuter@servicenow.com",
"timestamp": 1588824102,
"timezone": "America/New_York"
}"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"302bas2be70-sadsa-we32-3eq2-1231ra9",
"clientSessionId":"",
"message":{
"text":"hola",
"typed":true
},
"userId":"fred.ludy",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"value":"Hi, I'm your Virtual Agent. Let me know how I can help you today.",
"maskType":"NONE"
},
{
"uiType":"TopicPickerControl",
"group":"DefaultPicker",
"nluTextEnabled":false,
"promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type hellllp! any time when you need help.",
"label":"Show me everything",
"options":[
{
"label":"boolean check",
"value":"1b5257a1db712010d3d6d9595e9619f3",
"enabled":true
},
{
"label":"Test_table_datepicker",
"value":"6515f0cadb4220108249f7541d961980",
"enabled":true
},
{
"label":"Test File upload",
"value":"76c1f4b2db7520108249f7541d9619a7",
"enabled":true
},
{
"label":"Test B2B 2",
"value":"8373e55cdb8120108249f7541d96196d",
"enabled":true
},
{
"label":"FAQ Conversation Builder_Global",
"value":"9f3114a3dbc520108249f7541d961981",
"enabled":true
},
{
"label":"Get to know you",
"value":"a443dd6adb812010d3d6d9595e961954",
"enabled":true
},
{
"label":"Get to know you_Global",
"value":"b1a56b87db8120108249f7541d9619b2",
"enabled":true
},
{
"label":"Live Agent Support.",
"value":"ce2ee85053130010cf8cddeeff7b12bf",
"enabled":true
},
{
"label":"Apply for PTO_B2B NLU",
"value":"d948c94cdb052010d3d6d9595e961969",
"enabled":true
}
]
}
],
"score":1
}
Utiliser les commandes définies dans la table sys_cs_contextual_action comme énoncé pour mettre fin à une conversation
L’exemple suivant montre comment utiliser la Bye commande définie dans la table sys_cs_contextual_action en tant qu’énoncé pour Agent virtuel terminer une conversation au lieu de la définir action sur END_CONVERSATION comme indiqué dans les exemples précédents. Cet exemple montre l’utilisation d’une des variantes linguistiques de la Bye commande, « choa ».
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--header "token: ORANGE" \
--data "{
"requestId": "302bas2be70-sadsa-we32-3eq2-1231ra9",
"botToBot": true,
"clientSessionId": "",
"silentMessage": false,
"message":{
"text": "choa",
"typed": true
},
"userId": "fred.ludy",
"emailId": "abel.tuter@servicenow.com",
"timestamp": 1588824102,
"timezone": "America/New_York"
}"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"302bas2be70-sadsa-we32-3eq2-1231ra9",
"clientSessionId":"",
"message":{
"text":"chao",
"typed":true
},
"userId":"fred.ludy",
"body":[
{
"uiType":"Picker",
"group":"DefaultPicker",
"required":true,
"nluTextEnabled":false,
"label":"Please make a selection.",
"itemType":"List",
"style":"list",
"multiSelect":false,
"options":[
{
"label":"End conversation",
"value":"1",
"renderStyle":"data",
"enabled":false
},
{
"label":"Cancel",
"value":"0",
"renderStyle":"data",
"enabled":false
}
],
"scriptedData":null
}
],
"score":1
}
Modifier une conversation en cours à l’aide du paramètre d’action SWITCH
L’exemple suivant montre comment utiliser le paramètre SWITCH action pour remplacer une conversation en cours par la rubrique qui correspond à ce qui est spécifié dans le intent.id paramètre.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"requestId": "sdfsfs-hgfhg-34fssd-zxcz-sd43",
"enterpriseId": "ServiceNow",
"nowBotId": "A85PWLERF",
"clientSessionId": "",
"nowSessionId": "",
"action": "SWITCH",
"intent" : {
"id": "Saloon Vehicle"
},
"message":{
"typed": true,
"clientMessageId": "ABC-123"
},
"userId": "Guest",
"timestamp": 1588824102,
"timezone": "America/New_York"
}"
--user "username":"password"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré, montrant le VA basculé vers la nouvelle rubrique.
{
"requestId":"sdfsfs-hgfhg-34fssd-zxcz-sd43",
"clientSessionId":"",
"nowSessionId":"",
"message":{
"typed":true,
"clientMessageId":"ABC-123"
},
"userId":"Guest",
"body":[
{
"uiType":"InputText",
"group":"DefaultText",
"required":true,
"nluTextEnabled":false,
"label":"limo input:",
"maskType":"NONE"
}
],
"score":1
}
Obtenir un score de Compréhension du langage naturel confiance (NLU) pour un énoncé
L’exemple suivant montre comment obtenir un NLU score de confiance pour un énoncé si NLU celui-ci est activé dans VA.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"requestId": "sdfsfs-hgfhg-34fssd-zxcz-sd43",
"enterpriseId": "ServiceNow",
"nowBotId": "A85PWLERF",
"clientSessionId": "",
"nowSessionId": "",
"message":{
"text": "most popular choice",
"typed": true,
"clientMessageId": "ABC-123"
},
"userId": "Guest",
"timestamp": 1588824102,
"timezone": "America/New_York"
}"
--user "username":"password"
Voici le corps de réponse envoyé par l’agent virtuel au point de terminaison de réponse configuré affichant le score de confiance NLU.
{
"requestId":"sdfsfs-hgfhg-34fssd-zxcz-sd43",
"clientSessionId":"",
"nowSessionId":"",
"message":{
"text":"most popular choice",
"typed":true,
"clientMessageId":"ABC-123"
},
"userId":"Guest",
"body":[
{
"uiType":"InputText",
"group":"DefaultText",
"required":true,
"nluTextEnabled":false,
"label":"model input:",
"maskType":"NONE"
}
],
"score":"0.92"
}
Transférer une conversation à l’agent actif dans une file d’attente spécifique
L’exemple suivant montre comment transférer une conversation à l’agent actif dans une file d’attente spécifique. Vous devez d’abord configurer vos files d’attente avec des conditions spécifiques. Vous transmettez ensuite ces conditions comme contextVariables dans le corps de la demande. Pour en savoir plus sur la création d’une file d’attente des éléments de travail, reportez-vous à la rubrique Créer une file d’attente des éléments de travail.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"requestId": "34re-dasd-qwe23-dsds", // Unique value for a message (hash)
"enterpriseId": "ServiceNow", // ServiceNow (Optional
"nowBotId": "A85PWLERF", // In case of multiple ServiceNow secondary bots (one for HR, one for ITSM)
"action":"AGENT", // Actions to close conversation. Other possible value is END_CONVERSATION
"clientSessionId": "", // Client conversation id
"nowSessionId": "", // ServiceNow conversation id
"message":{
"text": "How are you?", // User passed message
"typed": true, // typed or clicked
"clientMessageId": "ABC-123"
},
"userId": "abraham.lincoln", // User’s id in their system
"emailId": "abraham.lincoln@example.com",
"timestamp": 1588824102,
"timezone": "America/New_York",
"contextVariables":{
"b2b_category":"humanresource"
}
}"
--user "username":"password"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"34re-dasd-qwe23-dsds",
"clientSessionId":"",
"nowSessionId":"",
"message":{
"text":"How are you?",
"typed":true,
"clientMessageId":"ABC-123"
},
"userId":"abraham.lincoln",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"value":"I am sorry but I didn't understand your request.",
"maskType":"NONE"
},
{
"uiType":"OutputText",
"group":"DefaultText",
"value":"Please try giving me your request in a different way. I'm currently better at understanding short sentences.",
"maskType":"NONE"
},
{
"uiType":"TopicPickerControl",
"group":"DefaultPicker",
"nluTextEnabled":false,
"promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type help any time when you need help.",
"label":"Show me everything",
"options":[
{
"label":"Live Agent Support.",
"value":"ce2ee85053130010cf8cddeeff7b12bf",
"enabled":true
}
]
}
],
"score":0
}
Transférer une application publique/un fichier PDF en pièce jointe
Cet exemple montre comment transférer une application publique/une pièce jointe PDF.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--header "token: BOT_Token" \
--data "{
"requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
"clientSessionId": "U94CSJLEN",
"message": {
"attachment": {
"clientAttachmentId": "my-unique-identifier",
"contentType": "application/pdf",
"fileName": "MY PDF TEST",
"url": "http://www.africau.edu/images/default/sample.pdf"
}
},
"userId": "U94CSJLEN",
"emailId": "admin@example.com"
}"
--user "username":"password"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
"clientSessionId":"U94CSJLEN",
"message":{
"attachment":{
"clientAttachmentId":"my-unique-identifier",
"contentType":"application/pdf",
"fileName":"MY PDF TEST",
"url":"http://www.africau.edu/images/default/sample.pdf"}
},
"userId":"U94CSJLEN",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"required":false,
"nluTextEnabled":false,
"label":"File got",
"maskType":"NONE",
"itemType":"outputtext"
},
{
"uiType":"OutputText",
"group":"DefaultText",
"required":false,
"nluTextEnabled":false,
"label":"The conversation has ended. If you need help again, type hi.",
"maskType":"NONE",
"itemType":"outputtext"
}
],
"completed":true,
"score":1
}
Transférer une pièce jointe vidéo/mpeg
Cet exemple montre la demande/la réponse pour le téléchargement d’une pièce jointe vidéo/mpeg.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--header "token: BOT_TOKEN" \
--data "{
"requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
"clientSessionId": "U94CSJLEN",
"message": {
"attachment": {
"clientAttachmentId": "my-unique-identifier10",
"contentType": "video/mpeg",
"fileName": "MY TEST10.mp4",
"url": "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"
}
},
"userId": "U94CSJLEN",
"emailId": "admin@example.com"
}"
--user "username":"password"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
"clientSessionId":"U94CSJLEN",
"message":{
"attachment":{
"headers":{
"Authorization":"Basic amFzbWluZS53YWRod2FuaWE6VGVzdGluZ0AxMjM="
},
"clientAttachmentId":"my-unique-identifier10",
"contentType":"video/mpeg",
"fileName":"MY TEST10.mp4",
"url":"https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"
}
},
"userId":"U94CSJLEN",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"required":false,
"nluTextEnabled":false,
"label":"File got",
"maskType":"NONE",
"itemType":"outputtext"
},
{
"uiType":"OutputText",
"group":"DefaultText",
"required":false,
"nluTextEnabled":false,
"label":"The conversation has ended. If you need help again, type hi.",
"maskType":"NONE","itemType":"outputtext"
}
],
"completed":true,
"score":1
}
Transférer une pièce jointe d’image/jpeg
Cet exemple montre la demande/la réponse pour le chargement d’une pièce jointe image/jpeg.
curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--header "token: BOT_TOKEN" \
--data "{
"requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
"clientSessionId": "U94CSJLEN",
"message": {
"attachment": {
"clientAttachmentId": "my-unique-identifier10",
"contentType": "image/jpeg",
"fileName": "MY TEST10.jpg",
"url": "https://image.imagestock.com/image-photo/pink-butterfly-isolated-on-white-260nw-1218104047.jpg"
}
},
"userId": "U94CSJLEN",
"emailId": "admin@example.com"
}"
--user "username":"password"
Voici le corps de réponse envoyé par le VA au point de terminaison de réponse configuré.
{
"requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
"clientSessionId":"U94CSJLEN",
"message":{
"attachment":{
"headers":{
"Authorization":"Basic amFzbWluZS53YWRod2FuaWE6VGVzdGluZ0AxMjM="
},
"clientAttachmentId":"my-unique-identifier10",
"contentType":"image/jpeg",
"fileName":"MY TEST10.jpg",
"url":"https://image.imagestock.com/image-photo/pink-butterfly-isolated-on-white-260nw-1218104047.jpg"
}
},
"userId":"U94CSJLEN",
"body":[
{
"uiType":"OutputText",
"group":"DefaultText",
"required":false,
"nluTextEnabled":false,
"label":"File got",
"maskType":"NONE",
"itemType":"outputtext"
},
{
"uiType":"OutputText",
"group":"DefaultText",
"required":false,
"nluTextEnabled":false,
"label":"The conversation has ended. If you need help again, type hi.",
"maskType":"NONE",
"itemType":"outputtext"
}
],
"completed":true,
"score":1
}