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ù recentemente chiusa del contatto, o quella ancora aperta se nessuna è stata ancora chiusa, e ne scrive un riepilogo. Il riepilogo viene salvato sul contatto (appare sotto Riepiloghi nel pannello del contatto nell’app) e restituito nella risposta, così da poterlo inoltrare direttamente a un CRM, a un canale Slack o a un’email. La risposta lo fornisce in tre modi: summary è scritto con intestazioni ed elenchi puntati (## STATE, - ) come mostrato nell’app, summary_text è lo stesso riepilogo come testo semplice, per un campo che mostra il testo esattamente come digitato (un campo di testo CRM, una descrizione attività, un SMS), e summary_html è lo stesso riepilogo formattato per un campo che supporta la formattazione (il corpo di un’email, una nota HubSpot).
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.
I membri del Champions Circle pagano la Tariffa Insider: 0,20 invece di 0,25 su Max e 0,12 invece di 0,15 su Mini. Vedi Champions Circle
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: "[email protected]" }),
});
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": "## STATE\nJane asked whether siblings get a discount.\n\n## SETTLED\n- Trial lesson booked for Saturday at 10:00",
"summary_text": "STATE\nJane asked whether siblings get a discount.\n\nSETTLED\n• Trial lesson booked for Saturday at 10:00",
"summary_html": "<p><strong>STATE</strong></p><p>Jane asked whether siblings get a discount.</p><p><strong>SETTLED</strong></p><ul><li>Trial lesson booked for Saturday at 10:00</li></ul>"
}
| 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.
Leggi gli ultimi riepiloghi delle chat per molti contatti
POST /contacts/summaries/latest — invia fino a 500 ID di contatti e ricevi il riepilogo della chat più recente di ogni contatto in un’unica chiamata. Non viene generato nulla, quindi non comporta alcun costo in crediti. Questa è la lettura alla base della colonna Riepilogo AI dell’esportazione CSV dei contatti.
{ "contactIds": ["contact_abc123", "contact_def456"] }
Risposta
{
"success": true,
"summaries": {
"contact_abc123": {
"summary": "Asked for a quote for 20 units, prefers delivery next week.",
"end_date_time": "2026-09-15T14:02:11.000Z"
}
}
}
Un contatto che non ha ancora un riepilogo, che non è presente nel tuo account o che si trova al di fuori dei contatti visibili di un membro del team viene semplicemente escluso da summaries. Gli ID devono essere univoci e un elenco con più di 500 elementi viene rifiutato con 400: suddividilo in batch. Un membro del team deve avere almeno il permesso di Visualizzazione sui Messaggi.
curl -X POST "https://api.dmchamp.com/v1/contacts/summaries/latest?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contactIds": ["contact_abc123", "contact_def456"]}'
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 l’ultimo riepilogo della chat per un massimo di 500 contatti | POST /contacts/summaries/latest |
| Leggi il riepilogo di una giornata | GET /summaries/daily/{date} |
| Rigenera il riepilogo di una giornata | POST /summaries/daily/{date}/regenerate |