Points de terminaison de l'API de la plate-forme de chat

Les points de terminaison de l'API de la plate-forme de chat permettent d'accéder aux objets de chat. Un objet de chat est créé pour chaque discussion envoyée à et depuis Contact Center AI Platform (CCAI Platform).

Voici les points de terminaison de l'API de la plate-forme de chat :

Objet Chat

Un objet de chat est créé pour chaque session de chat mobile et Web sur la plate-forme CCAI. Voici l'objet de chat :

{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

Modifier une discussion

Paramètre Obligatoire Type de données Définition
id TRUE Integer ID du chat à modifier

Point de terminaison :

Method: PATCH
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:id

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Corps :

{
    "finished_by_user_id": "integer",
    "chat": {
        "deflection_channel": "string",
        "status": "string",
        "escalation_id": "integer"
    }
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Modifier une discussion

Cet exemple montre comment mettre à jour une discussion existante.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Requête

Clé Valeur Description
id Integer (obligatoire)

Corps :

{
    "finished_by_user_id": "integer",
    "chat": {
        "deflection_channel": "string",
        "status": "finished",
        "escalation_id": "integer"
    }
}
Réponse
{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

Code d'état : 200

Envoyer un message dans un chat

Cette méthode permet d'envoyer un message dans une session de chat existante.

Paramètre Obligatoire Type de données Définition
id TRUE Integer ID de la discussion dans laquelle le message doit être envoyé.

Point de terminaison :

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:id/message

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "from_user_id": integer,
    "message": {
            "type": "string",
            "content": "string"
            }
    }
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Message envoyé

Cet exemple montre comment envoyer un message à une session de chat existante.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Requête

Clé Valeur Description
id Integer (obligatoire)

Corps :

{
    "from_user_id": integer,
    "message": {
            "type": "string",
            "content": : "string"
            }
    }
}
Réponse
{
}

Code d'état : 200

Escalader une discussion avec un agent virtuel

Transférer une discussion depuis un agent virtuel vers un agent humain

Paramètre Obligatoire Type de données Définition
chat_id TRUE Integer ID de discussion requis pour l'escalade.

Point de terminaison :

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/escalations

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Corps :

{
    "reason": "string",
    "force_escalate": "boolean"
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Passage au niveau supérieur d'un chat réussi

Cet exemple montre comment demander à transférer une discussion existante à un agent humain.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)

Corps :

{
    "reason": "by_end_user_ask",
    "force_escalate": true
}
Réponse
{
    "id": "integer",
    "chat_id": "integer",
    "status": "string"
}

Code d'état : 200

Mettre à jour l'escalade

Utilisé uniquement pour sélectionner le canal de déviation.

Paramètre Obligatoire Type de données Définition
chat_id TRUE Integer ID de chat requis pour mettre à jour l'ID du menu de déviation.
id TRUE Integer ID de menu requis.

Point de terminaison :

Method: PATCH
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/escalations/:id

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "deflection_channel": "string"
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Escalade mise à jour

Cet exemple montre comment mettre à jour le canal d'escalade.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)
id Integer (obligatoire)

Corps :

{
    "deflection_channel": "string"
}
Réponse
{
    "id": "integer",
    "chat_id": "integer",
    "status": "string"
}

Code d'état : 200

Ajouter une photo importée à la discussion

Ajouter à une discussion une photo importée dans l'espace de stockage multimédia

Paramètre Obligatoire Type de données Définition
chat_id TRUE Integer ID de la discussion requise à laquelle ajouter la photo.

Point de terminaison :

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}/apps/api/v1/chats/:chat_id/photos

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Corps :

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Photo ajoutée à la discussion

L'exemple suivant montre comment ajouter une photo importée dans un espace de stockage de contenus multimédias à une conversation existante.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)

Corps :

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}
Réponse
{
    "url": "string",
    "media_id": "integer"
}

Code d'état : 200

Récupérer toutes les photos de la discussion

Obtient l'ID et l'URL de stockage de tous les éléments multimédias associés au chat.

Paramètre Obligatoire Type de données Définition
chat_id TRUE Integer ID du chat requis pour obtenir les informations sur le contenu multimédia.

Point de terminaison :

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/photos

En-têtes

Clé Valeur Description
Accepter application/json

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Récupération réussie des informations sur la photo de profil d'une discussion

Cet exemple montre un appel réussi à l'API pour obtenir les informations sur la photo d'une session de chat existante.

Requête

En-têtes

Clé Valeur Description
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)
Réponse
[
    {
        "url": "string",
        "media_id": "integer"
    },
    {
        "url": "string",
        "media_id": "integer"
    }
]

Code d'état : 200

Obtenir une URL d'importation de photos pré-signée

Permet d'obtenir une URL d'importation pré-signée pour les photos.

Paramètre Obligatoire Type de données Définition
chat_id TRUE Integer ID de chat requis qui sera associé à l'URL de la photo pré-signée.

Point de terminaison :

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/photos/upload

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Récupération réussie de l'URL signée pour l'importation

Voici un exemple de requête réussie avec récupération d'une URL signée pour l'importation de photos.

Requête

En-têtes

Clé Valeur Description
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)
Réponse
{
    "url": "string",
    "fields": {
        "key": "string",
        "success_action_status": "string",
        "Content-Type": "string",
        "Cache-Control": "string",
        "acl": "string",
        "policy": "string",
        "x-amz-credential": "string",
        "x-amz-algorithm": "string",
        "x-amz-date": "string",
        "x-amz-security-token": "string",
        "x-amz-signature": "string",
        "x-goog-algorithm": "string",
        "x-goog-credential": "string",
        "x-goog-date": "string",
        "x-goog-signature": "string"
    }
}

Code d'état : 200

Ajouter une vidéo importée à la discussion

Ajoutez à une discussion une vidéo importée dans l'espace de stockage multimédia.

Paramètre Obligatoire Type de données Définition
chat_id TRUE Integer ID de chat requis auquel la vidéo doit être associée.

Point de terminaison :

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Corps :

{
    "video": {
        "s3_path": "string",
        "gcs_path": "string"
    }
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Vidéo importée dans une session de chat

Cet exemple montre comment importer une vidéo dans une session de chat.

Requête

En-têtes

Clé Valeur Description
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)

Corps :

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}
Réponse
Body
{
    "url": "string",
    "media_id": "integer"
}

Code d'état : 200

Récupérer toutes les vidéos de la discussion

Obtient l'ID multimédia et l'URL de stockage de toutes les vidéos jointes à la discussion.

Paramètre Obligatoire Type de données Définition
chat_id TRUE Integer ID de chat requis pour lequel les URL des vidéos seront récupérées.

Point de terminaison :

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Récupérer toutes les URL de vidéos d'une discussion

Cet exemple montre comment récupérer toutes les URL de vidéos d'une discussion existante.

Requête

En-têtes

Clé Valeur Description
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)
Réponse
[
    {
        "url": "string",
        "media_id": "integer"
    },
    {
        "url": "string",
        "media_id": "integer"
    }
]

Code d'état : 200

Obtenir une URL d'importation de vidéo pré-signée

Permet d'obtenir une URL de mise en ligne pré-signée pour les vidéos.

Paramètre Obligatoire Type de données Définition
chat_id TRUE Integer ID de chat requis qui sera associé à l'URL vidéo pré-signée.

Point de terminaison :

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos/upload

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Récupération réussie de l'URL signée pour l'importation de la vidéo

Voici un exemple de requête réussie avec récupération d'une URL signée pour l'importation de vidéos.

Requête

En-têtes

Clé Valeur Description
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)
Réponse
{
    "url": "string",
    "fields": {
        "key": "string",
        "success_action_status": "string",
        "Content-Type": "string",
        "Cache-Control": "string",
        "acl": "string",
        "policy": "string",
        "x-amz-credential": "string",
        "x-amz-algorithm": "string",
        "x-amz-date": "string",
        "x-amz-security-token": "string",
        "x-amz-signature": "string",
        "x-goog-algorithm": "string",
        "x-goog-credential": "string",
        "x-goog-date": "string",
        "x-goog-signature": "string"
    }
}

Code d'état : 200

Créer un chat

Démarrez une nouvelle session de chat.

Exemple de requête

Méthode : POST

URL : https://{subdomain}.{domain}/apps/api/v1/chats

Headers

Clé Valeur Description
Content-Type application/json
Accepter application/json

Body

{
    "chat": {
        "menu_id": "integer",
        "end_user_id": "integer",
        "lang": "string",
        "email": "string",
        "context": "object",
        "transcript": "object"
    },
    "end_user": {
        "phone": "string"
    }
}

Contexte :

L'objet context inclut l'objet value, qui transmet les métadonnées à la conversation par chat. Vous pouvez transmettre l'objet context aux agents virtuels en tant que paramètre de données non signé. Consultez l'exemple ci-dessous :

{
    "context": {
        {"value":
            {"foo": "bar",
             "key": "value"}
        }
    }
}

Dans cet exemple, la valeur du paramètre de données non signées pour le champ entrant est context et le champ de destination peut être défini sur context. Vous pourrez ainsi utiliser $session.params.context.foo ou $session.params.context.key.

Exemple de réponse

{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

Renvoie une discussion par ID

Cette méthode renvoie l'objet de chat pour un ID de chat donné.

Point de terminaison :

Method: GET
Type:
URL: https://{subdomain}.​{domain}/apps/api/v1/chats/:id

En-têtes

Clé Valeur Description
Content-Type application/json
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Récupérer une discussion

L'exemple suivant montre une requête réussie pour un ID de chat existant.

Requête

En-têtes

Clé Valeur Description
Content-type application/json
Accepter application/json

Requête

Clé Valeur Description
chat_id Integer (obligatoire)
Réponse
{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

Code d'état : 200

Obtenir des attributs de données réservés lors d'une discussion

Point de terminaison

Method: GET
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/chats/:id/customer_flag

Exemple de requête et de réponses

Cette section contient un exemple de requête et de réponse pour le point de terminaison.

Opération réussie

Cet exemple montre un appel réussi.

Requête

En-têtes

Clé Valeur Description
Accepter application/json

Variables d'URL

Clé Valeur Description
id entier (obligatoire)
Réponse
{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customer": "boolean"
}

Code d'état 0

Mettre à jour les attributs de données réservés lors d'une discussion

Point de terminaison

Method: POST
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/chats/:id/customer_flag

Variables d'URL

Clé Valeur Description
id entier (obligatoire)

Body

{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customers": "boolean"
}

Envoyer des données personnalisées dans le chat

Envoyez des données personnalisées dans un chat.

Exemple de requête

Méthode : POST

URL : https//{subdomain}.{domain}/apps/api/v1/chats/:id/custom_data

Headers

Clé Valeur Description
Content-Type application/json

Variables d'URL

Clé Valeur Description
id (obligatoire)

Exemple de réponse

// Use unsecured parameter
{
"signed": false,
"data": {
// Start customer_flag fields
"reserved_verified_customer": {
"label": "LABEL 1",
"value": true
},
"reserved_bad_actor": {
"label": "LABEL 2",
"value": false
},
"reserved_repeat_customer": {
"label": "LABEL 3",
"value": true
},
// End customer_flag fields
"field1": {
"label": "LABEL 4",
"value": "dummy1"
},
"field2": {
"label": "LABEL 5",
"value": "dummy2"
}
}
}
// Use secured parameter
// {
// "signed": true,
// "signed_data": "eyJhbGciOiJIUzI1NiJ9.eyJjdXN0b21fZGF0YSI6eyJyZXNlcnZlZF92ZXJpZmllZF9jdXN0b21lciI6eyJ2YWx1ZSI6ZmFsc2V9LCJyZXNlcnZlZF9iYWRfYWN0b3IiOnsidmFsdWUiOnRydWV9LCJyZXNlcnZlZF9yZXBlYXRfY3VzdG9tZXIiOnsidmFsdWUiOmZhbHNlfSwiZmllbGQxIjp7InZhbHVlIjoiZHVtbXkxMTEifSwiZmllbGQyIjp7InZhbHVlIjoiZHVtbXkyMjIifX0sImV4cCI6MTcyOTY4MzU5MywiaWF0IjoxNzI5Njc5OTkzfQ.BMskgKTM3DbgrMLWjI46ZJ1K73H25JRd16SgHK0A1Ts"
// }
// ======================= How to create <signed_data> =======================
// payload = {
// "custom_data": {
// // Start customer_flag fields
// "reserved_verified_customer": {
// "label": "LABEL 1",
// "value": true
// },
// "reserved_bad_actor": {
// "label": "LABEL 2",
// "value": false
// },
// "reserved_repeat_customer": {
// "label": "LABEL 3",
// "value": true
// },
// // End customer_flag fields
// "field1": {
// "label": "LABEL 4",
// "value": "dummy1"
// },
// "field2": {
// "label": "LABEL 5",
// "value": "dummy2"
// }
// },
// "exp": 1734567890, // expiration timestamp
// "iat": 1734560000 // issue timestamp
// }
// signed_data = JWT.encode(payload, 'Company secret', 'HS256')
// ======================= End how to create <signed_data> =======================

Informer l'utilisateur final pendant une session de chat en cours

Mettez à jour l'utilisateur final associé à la session de chat active actuelle. Il met également à jour les coordonnées associées à la demande CRM. _Identifier est obligatoire, tandis que name, email et phone sont facultatifs.

Exemple de requête

Méthode : POST

URL : https//{subdomain}.{domain}/apps/api/v1/chats/:chat_id/end-user

Headers

Clé Valeur Description
Content-Type application/json

Variables d'URL

Clé Valeur Description
chat_id

Body

{
    "identifier": "string",
    "name": "string",
    "email": "string",
    "phone": "string"
}

Exemple de réponse

{
    "message": "accepted"
}