API dei riepiloghi
Sono disponibili due tipi di riepiloghi scritti dall’IA tramite API:
-
Riepiloghi chat — un breve riassunto della conversazione di un contatto, generato su richiesta. È la stessa funzione del controllo di riepilogo in una chat (vedi Riepilogo chat).
-
Riepiloghi giornalieri — il riepilogo quotidiano di tutte le tue conversazioni che Riepiloghi giornalieri crea ogni mattina: statistiche, un blocco markdown per sezione ed eventuali attività create dall’IA a partire da esso.
-
URL di base —
https://api.dmchamp.com/v1 -
Autenticazione — la tua chiave API (vedi Autenticazione). Una chiave con ambito limitato richiede la sezione
Summaries. -
Errori e paginazione — vedi Errori e paginazione
Tutti gli esempi seguenti mostrano il formato di query ?apiKey= in cURL e l’intestazione X-API-Key in JavaScript e Python; entrambi funzionano su ogni endpoint.
Genera un riepilogo chat
POST /summaries — invia il phoneNumber del contatto (con prefisso internazionale) o il email; uno dei due è obbligatorio.
L’IA legge la conversazione più recente chiusa del contatto, o quella ancora aperta se nessuna è stata ancora chiusa, e ne scrive un riassunto. Il riassunto viene salvato sul contatto (appare sotto Riepiloghi nel pannello del contatto nell’app) e restituito nella risposta, così puoi inoltrarlo direttamente a un CRM, un canale Slack o un’email.
Costo: lo stesso di una risposta IA al livello di qualità IA dell’Agente — Pro 1 credito, Max 0,25, Mini 0,15; con la tua chiave Anthropic collegata, Pro costa 0. La richiesta viene rifiutata prima di qualsiasi generazione se il saldo non è sufficiente.
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"])
Risposta
{
"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."
}
| Stato | Significato |
|---|---|
400 |
Non è stato inviato né phoneNumber né email. |
404 |
Nessun contatto corrispondente, il contatto non ha ancora conversazioni o la conversazione non ha messaggi. Il message del corpo indica il motivo. |
500 |
Generazione non riuscita (ad esempio, crediti insufficienti). |
Ricetta di automazione: email di prenotazione con riepilogo. In un’automazione sul trigger Appuntamento prenotato, aggiungi un passaggio Richiesta HTTP che chiama questo endpoint con
${trigger.contact.phone_number}(o l’email del contatto), quindi un passaggio Email che inserisce ilsummarydalla risposta del passaggio HTTP insieme a un link alla chat (l’indirizzo della tua app seguito da/chats/e l’ID del contatto dal trigger). Il tuo team riceve il contesto della prenotazione nella stessa email, senza dover aprire la posta in arrivo.
Lettura dei riepiloghi. Non esiste un endpoint che elenca i riepiloghi chat salvati. Conserva il testo dalla risposta se ti serve in seguito, oppure generalo di nuovo (ogni chiamata viene fatturata).
Alternativa: tramite ID contatto
POST /summaries/chat-summary con {"contactId": "..."} esegue la stessa generazione per un contatto di cui possiedi già l’ID. Conferma solo il successo ({"success": true, "data": "Chat summary generated successfully"}) e non restituisce il testo, quindi usa POST /summaries quando desideri il riepilogo stesso. Un membro del team la cui chiave è limitata ai contatti assegnati riceve 404 per un contatto al di fuori di tale ambito.
Ottieni un riepilogo giornaliero
GET /summaries/daily/{date} — date è YYYY-MM-DD. Restituisce il riepilogo per quel giorno, o null sotto summary quando non ne è stato ancora generato nessuno, oltre alla configurazione della tua sezione.
cURL
curl "https://api.dmchamp.com/v1/summaries/daily/2026-09-08?apiKey=YOUR_API_KEY"
Risposta
{
"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,completedofailed(conerrorimpostato). Esegui il polling di questo endpoint dopo una rigenerazione finché non leggecompleted.sections— una stringa markdown per sezione, identificata dall’id della sezione. Le cinque sezioni standard sonowins_losses_improvements,tasks_action_items,human_alerts_reviews,sentiment_analysisebooked_meetings_sales; le sezioni che aggiungi in Configura nella pagina Riepiloghi giornalieri ottengono un idcustom_…. I nomi e l’ordine sono riportati insection_configs.contact_map— nome visualizzato per l’ID contatto, in modo da poter trasformare i nomi nel testo in link.auto_tasks/created_task_ids— gli elementi d’azione estratti dall’IA e le attività create a partire da essi (quando Crea schede attività dagli elementi d’azione è attivo).
| Stato | Significato |
|---|---|
400 |
date non è YYYY-MM-DD, o è nel futuro. |
403 |
I Riepiloghi giornalieri sono disattivati per l’account. |
Preferisci un push invece del polling? L’evento webhook Daily Summary Created invia lo stesso payload nel momento in cui termina un riepilogo mattutino.
Rigenera un riepilogo giornaliero
POST /summaries/daily/{date}/regenerate — avvia una nuova generazione per quel giorno in background e restituisce immediatamente status: "generating" e sections vuoto. Esegui il polling di GET /summaries/daily/{date} finché non viene completato. Si applicano le stesse regole del link Riprova nell’app.
Il corpo opzionale {"deleteTasks": false} mantiene le attività create dall’esecuzione precedente; per impostazione predefinita vengono eliminate e ricreate dal nuovo riepilogo. Invia un valore booleano reale: la stringa "false" viene ignorata e trattata come impostazione predefinita.
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}'
Riferimento rapido
| Attività | Endpoint |
|---|---|
| Genera un riepilogo della chat e ottieni il testo | POST /summaries |
| Genera un riepilogo della chat per ID contatto (nessun testo restituito) | POST /summaries/chat-summary |
| Leggi il riepilogo di un giorno | GET /summaries/daily/{date} |
| Rigenera il riepilogo di un giorno | POST /summaries/daily/{date}/regenerate |