Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsqu’une conversation est active, les événements et les messages du représentant du service client sont envoyés à votre point de terminaison webhook configuré. Le webhook est requis pour recevoir des mises à jour en temps réel dans votre canal de messagerie personnalisé.
Le service est retenté trois fois, avec un délai d’expiration de 10 secondes sur chaque tentative.
Endpoint
{webhook_url}/v3/conversations/{conversationId}/activities
Where
-
{webhook_url}est l’URL de base que vous avez configurée dans votre canal personnalisé. -
{conversationId}avec le GUID de la conversation active.
Méthode
POST
En-têtes de demande
| En-tête de page | Description |
|---|---|
| Autorisation | Jeton d’autorisation du porteur obtenu auprès de l’application Microsoft Entra enregistrée. |
Note
Veillez à configurer les informations d’identification d’identité fédérée pour que cet en-tête soit activé.
Stratégie de nouvelle tentative
- Le service webhook retente jusqu’à trois fois.
- Chaque nouvelle tentative autorise un délai d’expiration de 10 secondes.
- Après trois tentatives ayant échoué, aucune nouvelle tentative n’est effectuée.
Charge utile de la demande
Les charges utiles suivent le schéma d’activité Bot Framework. La structure inclut le contenu du message, le type d’activité, les détails de l’expéditeur et les pièces jointes facultatives.
Champs du corps de la requête
| Clé de niveau 1 | Clé de niveau 2 | Clé de niveau 3 | Description | Type |
|---|---|---|---|---|
| type | Type d’activité (message, événement, saisie) | string (max 256) | ||
| channelId | Identificateur du canal (par exemple, « MessagingApi ») | string (max 256) | ||
| de | Objet Expéditeur | Objet | ||
| ID | ID de l’expéditeur | string (max 256) | ||
| nom | Nom d'affichage de l’expéditeur | string (max 256) | ||
| conversation | ID | ID de conversation | string (max 256) | |
| textFormat | Format du texte du message (markdown) | string (max 256) | ||
| attachments | [ ] | Liste des pièces jointes (le cas échéant) | tableau | |
| type de contenu | Type MIME de la pièce jointe | string (max 256) | ||
| contentUrl | URL du fichier | ficelle | ||
| contenu | Généralement null | — | ||
| nom | Nom du fichier | string (max 256) | ||
| URL de la vignette | Généralement null | — |
Types d’activités pris en charge
| Type | Description |
|---|---|
| message | Texte standard ou message enrichi |
| saisie | Indique que l’agent ou le représentant du service à la clientèle (représentant du service ou représentant) tape |
| événement | Événements de niveau système tels que connexion/déconnexion |
Noms des activités d’événement
Les valeurs suivantes sont envoyées dans le champ nom des activités d’événement :
- AgentAccepté
- AgentEndSession
- PrimaryAgentEndConversation
- AgentDéconnecté
- AgentStartSecondaryChannel
- AgentRaiseSecondaryChannel
- AgentEndSecondaryChannel
- Fin de Conversation
- SupervisorForceClosedConversation
- ConsultAgentInitiated
- ConsultAgentFailed
- ConsultAgentAcceptSession
- ConsultAgentEndSession
- ConsultAgentRejectSession
- ConsultAgentSessionTimedOut
- ConsultAgentRemoved
- TransferToAgentInitiated
- TransferToAgentFailed
- TransferAgentAcceptSession
- TransferAgentRejectSession
- TransferAgentTimedOutSession
- AgentEndedConsult
- L'agent a rejoint la conversation avec le client
- ConsultAgentLeftPublicConversation
- TransferToQueueInitiated
- TransferToQueueFailed
- ClientDéconnecté
- CustomerDisconnectedAgentWaiting
- AgentAffecté
- Hors des heures de fonctionnement en raison des heures non travaillées
- En dehors des heures de service à cause d'un jour férié
Exemples de charges utiles
Les exemples de charges utiles représentent différents types d’activités en temps réel, tels que les messages, les indicateurs de saisie, les événements d’agent et les pièces jointes que l’application envoie à votre webhook pendant une conversation active.
Agent/représentant accepté
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"conversation": {
"id": "{conversation_id}"
},
"text": "EventName: **_AgentAccepted_**",
"name": "AgentAccepted"
}
L’assistant/le représentant est en train d’écrire
{
"type": "typing",
"channelId": "MessagingApi",
"conversation": {
"id": "{conversation_id}"
},
"recipient": {
"id": "{recipient_id}"
}
}
Message agent/représentant
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"from": {
"id": "{sender_id}",
"name": "{sender_name}"
},
"conversation": {
"id": "{conversation_id}"
},
"textFormat": "markdown",
"text": "hello"
}
Agent/Représentant envoyer une pièce jointe
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"from": {
"id": "{sender_id}",
"name": "{sender_name}"
},
"conversation": {
"id": "{conversation_id}"
},
"textFormat": "markdown",
"attachments": [
{
"contentType": "image/jpeg",
"contentUrl": "{attachment_url}",
"content": null,
"name": "issue (1).jpg",
"thumbnailUrl": null
}
]
}
Agent/Représentant fermé
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"from": {
"id": "{sender_id}"
},
"conversation": {
"id": "{conversation_id}"
},
"text": "EventName: **_AgentClosed_**",
"name": "AgentClosed"
}
Conversation fermée
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"from": {
"id": "{sender_id}"
},
"conversation": {
"id": "{conversation_id}"
},
"text": "EventName: **_ConversationClosed_**",
"name": "ConversationClosed"
}
Réponse
Code HTTP 200. Toutes les données publiées dans le corps de la requête sont ignorées.