DM Champ Docs

Summaries API

To typer AI-genererede resuméer er tilgængelige via API’en:

  • Chatresuméer — et kort referat af én kontakts samtale, genereret efter behov. Det samme som resumé-kontrollen i en chat (se Chatresumé).

  • Daglige resuméer — det daglige overblik over alle dine samtaler, som Daglige resuméer opretter hver morgen: statistik, én markdown-blok pr. sektion og eventuelle opgaver, som AI’en har oprettet ud fra det.

  • Base URLhttps://api.dmchamp.com/v1

  • Godkendelse — din API-nøgle (se Godkendelse). En begrænset nøgle kræver sektionen Summaries.

  • Fejl og paginering — se Fejl og paginering

Alle eksempler herunder viser ?apiKey= forespørgselsformen i cURL og X-API-Key headeren i JavaScript og Python — begge virker på alle slutpunkter.


Generer et chatresumé

POST /summaries — send kontaktens phoneNumber (med landekode) eller email; en af de to er påkrævet.

AI’en læser kontaktens senest afsluttede samtale, eller den der stadig er åben, hvis ingen er afsluttet endnu, og skriver et referat af den. Referatet gemmes på kontakten (det vises under Resuméer i kontaktpanelet i appen) og returneres i svaret, så du kan videresende det direkte til et CRM-system, en Slack-kanal eller en e-mail.

Pris: det samme som ét AI-svar på agentens AI-kvalitetsniveau — Pro 1 kredit, Max 0,25, Mini 0,15; med din egen Anthropic-nøgle tilsluttet koster Pro 0. Anmodningen afvises, før noget genereres, hvis saldoen ikke dækker det.

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"])

Svar

{
  "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 Betydning
400 Hverken phoneNumber eller email blev sendt.
404 Ingen kontakt matcher, kontakten har endnu ingen samtale, eller samtalen har ingen beskeder. Brødtekstens message angiver hvilken.
500 Generering mislykkedes (f.eks. ikke nok kreditter).

Automatiseringsopskrift: booking-e-mail med referat. I en automatisering på udløseren Aftale booket, tilføj et HTTP-anmodning-trin, der kalder dette endepunkt med ${trigger.contact.phone_number} (eller kontaktens e-mail), derefter et E-mail-trin, der indsætter summary fra HTTP-trinets svar sammen med et link til chatten (din apps adresse efterfulgt af /chats/ og kontakt-ID’et fra udløseren). Dit team får konteksten for bookingen i den samme e-mail uden at skulle åbne indbakken.

Læsning af resuméer. Der findes intet endepunkt, der viser gemte chatresuméer. Gem teksten fra svaret, hvis du skal bruge den senere, eller generer den igen (hvert kald faktureres).

Alternativ: via kontakt-ID

POST /summaries/chat-summary med {"contactId": "..."} udfører den samme generering for en kontakt, hvis ID du allerede har. Den bekræfter kun succes ({"success": true, "data": "Chat summary generated successfully"}) og returnerer ikke teksten, så brug POST /summaries, når du ønsker selve referatet. Et teammedlem, hvis nøgle er begrænset til deres tildelte kontakter, får 404 for en kontakt uden for dette område.


Hent et dagligt resumé

GET /summaries/daily/{date}date er YYYY-MM-DD. Returnerer resuméet for den dag, eller null under summary, når intet er genereret endnu, plus din sektionskonfiguration.

cURL

curl "https://api.dmchamp.com/v1/summaries/daily/2026-09-08?apiKey=YOUR_API_KEY"

Svar

{
  "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 eller failed (med error indstillet). Forespørg dette endpoint efter en gendannelse, indtil det læser completed.
  • sections — én markdown-streng pr. sektion, sorteret efter sektions-id. De fem standardsektioner er wins_losses_improvements, tasks_action_items, human_alerts_reviews, sentiment_analysis og booked_meetings_sales; sektioner, du tilføjer under Konfigurer på siden Daglige resuméer, får et custom_…-id. Navne og rækkefølge gentages i section_configs.
  • contact_map — visningsnavn til kontakt-id, så du kan omdanne navnene i teksten til links.
  • auto_tasks / created_task_ids — de handlingspunkter, som AI’en har udtrækket, og de opgaver, den har oprettet ud fra dem (når Opret opgavekort fra handlingspunkter er slået til).
Status Betydning
400 date er ikke YYYY-MM-DD, eller ligger i fremtiden.
403 Daglige resuméer er slået fra for kontoen.

Foretrækker du push frem for polling? Webhook-begivenheden Daily Summary Created leverer den samme payload i det øjeblik, et morgenresumé er færdigt.


Gendan et dagligt resumé

POST /summaries/daily/{date}/regenerate — starter en ny generering for den pågældende dag i baggrunden og returnerer med det samme med status: "generating" og tomt sections. Forespørg GET /summaries/daily/{date}, indtil det er fuldført. De samme regler gælder som for linket Prøv igen i appen.

Valgfri body {"deleteTasks": false} beholder de opgaver, som den forrige kørsel oprettede; som standard slettes de og oprettes på ny ud fra det nye resumé. Send en reel boolean — strengen "false" ignoreres og behandles som standardværdien.

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}'

Hurtig reference

Opgave Endpoint
Generer et chatresumé og hent teksten POST /summaries
Generer et chatresumé efter kontakt-id (ingen tekst returneres) POST /summaries/chat-summary
Læs et dagsresumé GET /summaries/daily/{date}
Gendan et dagsresumé POST /summaries/daily/{date}/regenerate