Aller au contenu principal
Version: 3.2.1

Interaction

Aperçu

Le message Interaction est le successeur amélioré du message Customer Interaction, offrant un traitement et une analyse en temps réel améliorés des interactions client à travers plusieurs canaux de communication. Il fournit un routage intelligent avancé, une meilleure préservation du contexte et une génération sophistiquée de réponses automatisées pour optimiser l'engagement client et les flux de support.

Migration depuis Customer Interaction

Ce type de message remplace le message Customer Interaction, qui sera déprécié dans de futures versions. Nous recommandons de migrer vers le message Interaction pour toutes les nouvelles implémentations afin de bénéficier des fonctionnalités améliorées et du support continu.

Référence API

Point de terminaison

  • URL WebSocket : wss://ws-{{tenant}}.oco.optave.{{tld}}
  • Endpoint REST (POST) : https://{{tenant}}.oco.optave.{{tld}}/message/interaction

Pour pouvoir envoyer des messages, il est nécessaire de s'authentifier d'abord.

Payload de requête

Le message interaction requiert un payload contenant l'historique de conversation (conversations), connections.threadId, et context.organizationId (l'identifiant d'organisation spécifique à votre client). Les autres champs sont optionnels.

{
session: {
sessionId: "a1b2c3d4-e5f6-7890-abcd-123456789012",
channel: { language: "en-US" },
interface: { type: "chat" }
},
request: {
requestId: "a1b2c3d4-e5f6-7890-1234-56789ab2345",
attributes: {
variant: "A"
},
connections: {
journeyId: "",
parentId: "",
threadId: "9e8d7c6b-5a49-3827-1605-948372615abc" // REQUIS
},
context: { // autres champs générés par Optave
caseId: "",
departmentId: "",
operatorId: "",
organizationId: "f7e8d9c0-b1a2-3456-7890-123456789abc", // REQUIS
userId: ""
},
reference: {
ids: [
{ name: "ticket_id", value: "T12345" }
],
labels: [],
tags: []
},
resources: {
codes: [],
links: [],
offers: []
},
scope: {
conversations: [ // REQUIS
{
conversationId: "",
participants: [
{
participantId: "2c4f8a9b-1d3e-5f70-8293-456789012def",
displayName: "John Doe",
role: "user"
},
{
participantId: "5b8c9d0e-2f4a-6b1c-9d8e-123456789abc",
displayName: "Sarah Smith",
role: "operator"
}
],
messages: [
{
content: "Hi, can you help me?",
participantId: "2c4f8a9b-1d3e-5f70-8293-456789012def",
timestamp: "2024-01-15T10:30:00.000Z"
},
{
content: "Hello! I'd be happy to assist you today. What can I help you with?",
participantId: "5b8c9d0e-2f4a-6b1c-9d8e-123456789abc",
timestamp: "2024-01-15T10:30:15.000Z"
}
],
metadata: {}
}
],
interactions: [
{
content: "Support ticket T12345 has been created for user John Doe",
id: "1",
name: "ticket_created",
role: "system",
timestamp: "2024-01-15T10:29:45.000Z"
}
]
}
}
}

Réponses

🟢 Succès (200-201)

En utilisant le WebSocket, plusieurs superpouvoirs et mises à jour d'état différentes seront reçus, tels que :

  • Analyse de sentiment
  • Évaluation des risques (Média, Hacker, Financier)
  • Besoin d'escalade
  • Identification de la langue
  • Exigences de recherche

Chaque superpouvoir sera envoyé comme un message séparé avec son actionType spécifique et les résultats associés.

🔴 Erreur

Les messages d'erreur sont similaires aux messages de succès, mais contiennent un état error et un objet JSON "response" :

{
action: "superpower",
actionType: "<superpower-name>",
state: "error",
message: {
results: [
{
response: [
{
content: 'Error while fetching results'
}
]
}
]
}
}

curl
--request POST
--url https://{{tenant}}.oco.optave.{{tld}}/message/interaction
--header "Authorization: Bearer your-access-token-here"
--header "Content-Type: application/json"
-d '{
"session": {
"sessionId": "a1b2c3d4-e5f6-7890-abcd-123456789012",
"channel": { "language": "en-US" },
"interface": { "type": "chat" }
},
"request": {
"requestId": "a1b2c3d4-e5f6-7890-1234-56789ab2345",
"attributes": { "variant": "A" },
"connections": { "threadId": "9e8d7c6b-5a49-3827-1605-948372615abc" },
"context": { "organizationId": "f7e8d9c0-b1a2-3456-7890-123456789abc" },
"scope": {
"conversations": [
{
"conversationId": "7f6e5d4c-3b2a-1098-fedc-ba9876543210",
"participants": [
{ "participantId": "2c4f8a9b-1d3e-5f70-8293-456789012def", "displayName": "John Doe", "role": "user" },
{ "participantId": "5b8c9d0e-2f4a-6b1c-9d8e-123456789abc", "displayName": "Sarah Smith", "role": "operator" }
],
"messages": [
{ "content": "Hi, can you help me?", "participantId": "2c4f8a9b-1d3e-5f70-8293-456789012def", "timestamp": "2024-01-15T10:30:00.000Z" },
{ "content": "Hello! I would be happy to assist you today. What can I help you with?", "participantId": "5b8c9d0e-2f4a-6b1c-9d8e-123456789abc", "timestamp": "2024-01-15T10:30:15.000Z" }
],
"metadata": {}
}
]
}
}
}'
{
action: "superpower",
actionType: "<superpower-name>",
state: "completed",
message: {
results: [
{
response: [
{
// Content depends on superpower
}
]
}
]
}
}