Summaries API
Er zijn twee soorten door AI geschreven samenvattingen beschikbaar via de API:
-
Chatsamenvattingen — een korte samenvatting van het gesprek met één contactpersoon, op aanvraag gegenereerd. Dit is hetzelfde als de samenvattingsfunctie in een chat (zie Chatsamenvatting).
-
Dagelijkse samenvattingen — het dagelijkse overzicht van al uw gesprekken dat Dagelijkse samenvattingen elke ochtend opstelt: statistieken, één markdown-blok per sectie en alle taken die de AI daaruit heeft gegenereerd.
-
Basis-URL —
https://api.dmchamp.com/v1 -
Authenticatie — uw API-sleutel (zie Authenticatie). Een scoped key heeft de sectie
Summariesnodig. -
Fouten & paginering — zie Fouten & Paginering
Alle onderstaande voorbeelden tonen de ?apiKey= query-vorm in cURL en de X-API-Key header in JavaScript en Python — beide werken op elk eindpunt.
Een chatsamenvatting genereren
POST /summaries — stuur het phoneNumber (met landcode) of email van de contactpersoon; één van beide is vereist.
De AI leest het meest recent afgesloten gesprek van de contactpersoon, of het gesprek dat nog openstaat als er nog geen is afgesloten, en schrijft daar een samenvatting van. De samenvatting wordt opgeslagen bij de contactpersoon (deze verschijnt onder Samenvattingen in het contactpaneel in de app) en wordt geretourneerd in het antwoord, zodat u deze direct kunt doorsturen naar een CRM, een Slack-kanaal of een e-mail.
Kosten: hetzelfde als één AI-antwoord op het AI-kwaliteitsniveau van de Agent — Pro 1 credit, Max 0,25, Mini 0,15; met uw eigen gekoppelde Anthropic-sleutel kost Pro 0. Het verzoek wordt geweigerd voordat er iets wordt gegenereerd als het saldo niet toereikend is.
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"])
Antwoord
{
"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."
}
| Status | Betekenis |
|---|---|
400 |
Noch phoneNumber noch email werd verzonden. |
404 |
Geen overeenkomende contactpersoon, de contactpersoon heeft nog geen gesprek, of het gesprek bevat geen berichten. De message van de body geeft aan welke van deze het is. |
500 |
Generatie mislukt (bijvoorbeeld door onvoldoende credits). |
Automatiseringsrecept: boekingsmail met een samenvatting. Voeg in een automatisering bij de trigger Afspraak geboekt een HTTP-verzoek-stap toe die dit eindpunt aanroept met
${trigger.contact.phone_number}(of het e-mailadres van de contactpersoon), gevolgd door een E-mail-stap die desummaryuit het antwoord van de HTTP-stap invoegt, samen met een link naar de chat (het adres van uw app gevolgd door/chats/en het contact-ID uit de trigger). Uw team krijgt de context van de boeking in dezelfde e-mail, zonder de inbox te hoeven openen.
Samenvattingen teruglezen. Er is geen eindpunt dat opgeslagen chatsamenvattingen weergeeft. Bewaar de tekst uit het antwoord als u deze later nodig heeft, of genereer deze opnieuw (elke aanroep wordt in rekening gebracht).
Alternatief: op contact-ID
POST /summaries/chat-summary met {"contactId": "..."} voert dezelfde generatie uit voor een contactpersoon waarvan u het ID al heeft. Het bevestigt alleen succes ({"success": true, "data": "Chat summary generated successfully"}) en retourneert niet de tekst zelf, dus gebruik POST /summaries wanneer u de samenvatting zelf wilt hebben. Een teamlid wiens sleutel beperkt is tot hun toegewezen contactpersonen krijgt 404 voor een contactpersoon buiten dat bereik.
Een dagelijkse samenvatting ophalen
GET /summaries/daily/{date} — date is YYYY-MM-DD. Retourneert de samenvatting voor die dag, of null onder summary wanneer er nog geen is gegenereerd, plus uw sectieconfiguratie.
cURL
curl "https://api.dmchamp.com/v1/summaries/daily/2026-09-08?apiKey=YOUR_API_KEY"
Antwoord
{
"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,completedoffailed(meterroringesteld). Pol dit eindpunt na een regeneratie totdat hetcompletedaangeeft.sections— één markdown-tekenreeks per sectie, gesorteerd op sectie-id. De vijf standaardsecties zijnwins_losses_improvements,tasks_action_items,human_alerts_reviews,sentiment_analysisenbooked_meetings_sales; secties die u toevoegt onder Configureren op de pagina Dagelijkse samenvattingen krijgen eencustom_…-id. Namen en volgorde worden herhaald insection_configs.contact_map— weergavenaam naar contact-ID, zodat u de namen in de tekst kunt omzetten in links.auto_tasks/created_task_ids— de actiepunten die de AI heeft geëxtraheerd en de taken die daaruit zijn gemaakt (wanneer Maak taakkaarten van actiepunten is ingeschakeld).
| Status | Betekenis |
|---|---|
400 |
date is niet YYYY-MM-DD, of ligt in de toekomst. |
403 |
Dagelijkse samenvattingen is uitgeschakeld voor het account. |
Geeft u de voorkeur aan een push boven pollen? De Dagelijkse samenvatting gemaakt webhook-gebeurtenis levert dezelfde payload zodra een ochtendsamenvatting is voltooid.
Een dagelijkse samenvatting opnieuw genereren
POST /summaries/daily/{date}/regenerate — start een nieuwe generatie voor die dag op de achtergrond en keert onmiddellijk terug met status: "generating" en een lege sections. Pol GET /summaries/daily/{date} totdat deze is voltooid. Dezelfde regels zijn van toepassing als voor de Opnieuw proberen-link in de app.
Optionele body {"deleteTasks": false} behoudt de taken die door de vorige uitvoering zijn gemaakt; standaard worden ze verwijderd en opnieuw gemaakt op basis van de nieuwe samenvatting. Stuur een echte boolean — de tekenreeks "false" wordt genegeerd en behandeld als de standaardwaarde.
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}'
Snelgids
| Taak | Eindpunt |
|---|---|
| Genereer een chatsamenvatting en ontvang de tekst | POST /summaries |
| Genereer een chatsamenvatting op contact-ID (geen tekst geretourneerd) | POST /summaries/chat-summary |
| Lees de samenvatting van een dag | GET /summaries/daily/{date} |
| Genereer de samenvatting van een dag opnieuw | POST /summaries/daily/{date}/regenerate |