DM Champ Docs

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 basehttps://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é phoneNumberemail.
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 il summary dalla 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 }
    ]
  }
}
  • statuspending, generating, completed o failed (con error impostato). Esegui il polling di questo endpoint dopo una rigenerazione finché non legge completed.
  • sections — una stringa markdown per sezione, identificata dall’id della sezione. Le cinque sezioni standard sono wins_losses_improvements, tasks_action_items, human_alerts_reviews, sentiment_analysis e booked_meetings_sales; le sezioni che aggiungi in Configura nella pagina Riepiloghi giornalieri ottengono un id custom_…. I nomi e l’ordine sono riportati in section_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