API de résumés
Deux types de résumés rédigés par l’IA sont disponibles via l’API :
-
Résumés de chat — un court récapitulatif de la conversation d’un contact, généré à la demande. Il s’agit de la même chose que la commande de résumé dans un chat (voir Résumé de chat).
-
Résumés quotidiens — le compte-rendu quotidien de toutes vos conversations que les Résumés quotidiens génèrent chaque matin : statistiques, un bloc markdown par section et toutes les tâches que l’IA en a extraites.
-
URL de base —
https://api.dmchamp.com/v1 -
Authentification — votre clé API (voir Authentification). Une clé à portée limitée nécessite la section
Summaries. -
Erreurs et pagination — voir Erreurs et pagination
Tous les exemples ci-dessous utilisent le format de requête ?apiKey= en cURL et l’en-tête X-API-Key en JavaScript et Python — les deux fonctionnent sur chaque point de terminaison.
Générer un résumé de chat
POST /summaries — envoyez le phoneNumber du contact (avec l’indicatif pays) ou son email ; l’un des deux est requis.
L’IA lit la conversation la plus récemment fermée du contact, ou celle qui est encore ouverte si aucune n’a encore été fermée, et en rédige un récapitulatif. Le récapitulatif est enregistré sur le contact (il apparaît sous Résumés dans le panneau du contact dans l’application) et renvoyé dans la réponse, afin que vous puissiez le transférer directement vers un CRM, un canal Slack ou un e-mail.
Coût : identique à celui d’une réponse IA au niveau de qualité IA de l’agent — Pro 1 crédit, Max 0,25, Mini 0,15 ; avec votre propre clé Anthropic connectée, Pro coûte 0. La requête est refusée avant toute génération si le solde ne suffit pas.
cURL
curl -X POST "https://api.dmchamp.com/v1/summaries?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phoneNumber": "+31612345678"}'
JavaScript
const res = await fetch("https://api.dmchamp.com/v1/summaries", {
method: "POST",
headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({ email: "jane@example.com" }),
});
const { summary } = await res.json();
Python
import requests
r = requests.post(
"https://api.dmchamp.com/v1/summaries",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"phoneNumber": "+31612345678"},
)
print(r.json()["summary"])
Réponse
{
"success": true,
"message": "Chat summary generated successfully",
"summary": "Jane asked about the 10-session package for her two children (ages 6 and 9) and preferred Saturday mornings. She booked a trial lesson for Saturday at 10:00 and wants to know whether siblings get a discount."
}
| Statut | Signification |
|---|---|
400 |
Ni phoneNumber ni email n’ont été envoyés. |
404 |
Aucun contact ne correspond, le contact n’a pas encore de conversation, ou la conversation ne contient aucun message. Le message du corps de la réponse précise lequel. |
500 |
La génération a échoué (par exemple, crédits insuffisants). |
Recette d’automatisation : e-mail de réservation avec récapitulatif. Dans une automatisation sur le déclencheur Rendez-vous réservé, ajoutez une étape Requête HTTP qui appelle ce point de terminaison avec
${trigger.contact.phone_number}(ou l’e-mail du contact), puis une étape E-mail qui insère lesummaryprovenant de la réponse de l’étape HTTP, accompagné d’un lien vers le chat (l’adresse de votre application suivie de/chats/et de l’ID du contact provenant du déclencheur). Votre équipe obtient le contexte de la réservation dans le même e-mail, sans avoir à ouvrir la boîte de réception.
Lecture des résumés. Il n’existe aucun point de terminaison permettant de lister les résumés de chat enregistrés. Conservez le texte de la réponse si vous en avez besoin plus tard, ou générez-le à nouveau (chaque appel est facturé).
Alternative : par ID de contact
POST /summaries/chat-summary avec {"contactId": "..."} effectue la même génération pour un contact dont vous possédez déjà l’ID. Il confirme uniquement le succès ({"success": true, "data": "Chat summary generated successfully"}) et ne renvoie pas le texte ; utilisez donc POST /summaries lorsque vous souhaitez obtenir le récapitulatif lui-même. Un membre de l’équipe dont la clé est limitée aux contacts qui lui sont assignés recevra 404 pour un contact en dehors de ce périmètre.
Obtenir un résumé quotidien
GET /summaries/daily/{date} — date est YYYY-MM-DD. Renvoie le résumé pour ce jour, ou null sous summary lorsqu’aucun n’a encore été généré, ainsi que votre configuration de section.
cURL
curl "https://api.dmchamp.com/v1/summaries/daily/2026-09-08?apiKey=YOUR_API_KEY"
Réponse
{
"success": true,
"data": {
"summary": {
"date": "2026-09-08",
"status": "completed",
"generated_at": "2026-09-09T05:02:11.000Z",
"stats": {
"total_conversations": 42,
"total_messages_sent": 310,
"total_messages_received": 268,
"human_alerts": 3,
"bookings": 5,
"new_contacts": 11,
"sales": 2
},
"sections": {
"wins_losses_improvements": "## Wins\n- ...",
"tasks_action_items": "- Call Jane back about the sibling discount",
"human_alerts_reviews": "...",
"sentiment_analysis": "...",
"booked_meetings_sales": "..."
},
"contact_map": { "Jane Doe": "uid_whatsapp_31612345678" },
"auto_tasks": [],
"created_task_ids": []
},
"section_configs": [
{ "id": "wins_losses_improvements", "name": "Wins, Losses & Improvements", "enabled": true, "position": 0 }
]
}
}
status—pending,generating,completedoufailed(avecerroractivé). Interrogez ce point de terminaison après une régénération jusqu’à ce qu’il indiquecompleted.sections— une chaîne markdown par section, indexée par l’identifiant de la section. Les cinq sections standard sontwins_losses_improvements,tasks_action_items,human_alerts_reviews,sentiment_analysisetbooked_meetings_sales; les sections que vous ajoutez sous Configurer sur la page des Résumés quotidiens reçoivent un identifiantcustom_…. Les noms et l’ordre sont repris danssection_configs.contact_map— nom d’affichage vers l’identifiant de contact, afin que vous puissiez transformer les noms dans le texte en liens.auto_tasks/created_task_ids— les éléments d’action extraits par l’IA et les tâches créées à partir de ceux-ci (lorsque Créer des cartes de tâches à partir des éléments d’action est activé).
| Statut | Signification |
|---|---|
400 |
date n’est pas YYYY-MM-DD, ou est dans le futur. |
403 |
Les Résumés quotidiens sont désactivés pour le compte. |
Vous préférez une notification push plutôt qu’une interrogation ? L’événement webhook Résumé quotidien créé envoie la même charge utile dès qu’un résumé du matin est terminé.
Régénérer un résumé quotidien
POST /summaries/daily/{date}/regenerate — démarre une nouvelle génération pour ce jour en arrière-plan et renvoie immédiatement status: "generating" et un sections vide. Interrogez GET /summaries/daily/{date} jusqu’à ce qu’il soit terminé. Les mêmes règles s’appliquent que pour le lien Réessayer dans l’application.
Le corps optionnel {"deleteTasks": false} conserve les tâches créées lors de l’exécution précédente ; par défaut, elles sont supprimées et recréées à partir du nouveau résumé. Envoyez un booléen réel — la chaîne "false" est ignorée et traitée comme la valeur par défaut.
curl -X POST "https://api.dmchamp.com/v1/summaries/daily/2026-09-08/regenerate?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"deleteTasks": false}'
Référence rapide
| Tâche | Point de terminaison |
|---|---|
| Générer un résumé de chat et obtenir le texte | POST /summaries |
| Générer un résumé de chat par identifiant de contact (aucun texte renvoyé) | POST /summaries/chat-summary |
| Lire le résumé d’une journée | GET /summaries/daily/{date} |
| Régénérer le résumé d’une journée | POST /summaries/daily/{date}/regenerate |