API podsumowań
Za pośrednictwem API dostępne są dwa rodzaje podsumowań tworzonych przez AI:
-
Podsumowania czatu — krótkie streszczenie rozmowy z jednym kontaktem, generowane na żądanie. To samo, co kontrolka podsumowania na czacie (zobacz Podsumowanie czatu).
-
Podsumowania dzienne — codzienne zestawienie wszystkich rozmów, które Podsumowania dzienne tworzy każdego ranka: statystyki, jeden blok markdown na sekcję oraz wszelkie zadania utworzone na ich podstawie przez AI.
-
Podstawowy adres URL —
https://api.dmchamp.com/v1 -
Uwierzytelnianie — Twój klucz API (zobacz Uwierzytelnianie). Klucz o ograniczonym zakresie wymaga sekcji
Summaries. -
Błędy i stronicowanie — zobacz Błędy i stronicowanie
Wszystkie poniższe przykłady pokazują formularz zapytania ?apiKey= w cURL oraz nagłówek X-API-Key w JavaScript i Pythonie — oba działają w każdym punkcie końcowym.
Generowanie podsumowania czatu
POST /summaries — wyślij phoneNumber kontaktu (z kodem kraju) lub email; wymagane jest podanie jednego z nich.
AI odczytuje ostatnią zamkniętą rozmowę kontaktu lub tę, która jest nadal otwarta, jeśli żadna nie została jeszcze zamknięta, i tworzy jej streszczenie. Streszczenie jest zapisywane w kontakcie (pojawia się w sekcji Podsumowania w panelu kontaktu w aplikacji) i zwracane w odpowiedzi, dzięki czemu można je bezpośrednio przekazać do systemu CRM, na kanał Slack lub w wiadomości e-mail.
Koszt: taki sam jak jedna odpowiedź AI w ramach poziomu jakości AI agenta — Pro 1 kredyt, Max 0,25, Mini 0,15; przy podłączonym własnym kluczu Anthropic koszt wersji Pro wynosi 0. Żądanie jest odrzucane przed wygenerowaniem czegokolwiek, jeśli saldo nie pokrywa kosztów.
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"])
Odpowiedź
{
"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 | Znaczenie |
|---|---|
400 |
Nie wysłano ani phoneNumber, ani email. |
404 |
Brak pasującego kontaktu, kontakt nie ma jeszcze żadnej rozmowy lub rozmowa nie zawiera żadnych wiadomości. Treść message wskazuje przyczynę. |
500 |
Generowanie nie powiodło się (na przykład z powodu niewystarczającej liczby kredytów). |
Przepis na automatyzację: e-mail z rezerwacją i streszczeniem. W automatyzacji dla wyzwalacza Spotkanie zarezerwowane dodaj krok Żądanie HTTP, który wywołuje ten punkt końcowy za pomocą
${trigger.contact.phone_number}(lub adresu e-mail kontaktu), a następnie krok E-mail, który wstawiasummaryz odpowiedzi kroku HTTP wraz z linkiem do czatu (adres Twojej aplikacji, po którym następuje/chats/oraz identyfikator kontaktu z wyzwalacza). Twój zespół otrzymuje kontekst rezerwacji w tym samym e-mailu, bez konieczności otwierania skrzynki odbiorczej.
Odczytywanie podsumowań. Nie ma punktu końcowego, który wyświetlałby listę zapisanych podsumowań czatów. Zachowaj tekst z odpowiedzi, jeśli będziesz go potrzebować później, lub wygeneruj go ponownie (każde wywołanie jest płatne).
Alternatywa: według identyfikatora kontaktu
POST /summaries/chat-summary z {"contactId": "..."} wykonuje to samo generowanie dla kontaktu, którego identyfikator już posiadasz. Potwierdza jedynie sukces ({"success": true, "data": "Chat summary generated successfully"}) i nie zwraca tekstu, więc użyj POST /summaries, gdy chcesz uzyskać samo streszczenie. Członek zespołu, którego klucz jest ograniczony do przypisanych mu kontaktów, otrzyma 404 dla kontaktu spoza tego zakresu.
Pobieranie podsumowania dziennego
GET /summaries/daily/{date} — date to YYYY-MM-DD. Zwraca podsumowanie dla tego dnia lub null w ramach summary, jeśli żadne nie zostało jeszcze wygenerowane, wraz z konfiguracją sekcji.
cURL
curl "https://api.dmchamp.com/v1/summaries/daily/2026-09-08?apiKey=YOUR_API_KEY"
Odpowiedź
{
"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,completedlubfailed(z ustawionymerror). Odpytuj ten punkt końcowy po ponownym wygenerowaniu, aż jego stan zmieni się nacompleted.sections— jeden ciąg znaków markdown na sekcję, kluczowany identyfikatorem sekcji. Pięć standardowych sekcji towins_losses_improvements,tasks_action_items,human_alerts_reviews,sentiment_analysisorazbooked_meetings_sales; sekcje dodane w sekcji Konfiguracja na stronie Podsumowań Dziennych otrzymują identyfikatorcustom_…. Nazwy i kolejność są powtarzane wsection_configs.contact_map— nazwa wyświetlana przypisana do identyfikatora kontaktu, dzięki czemu możesz zamienić nazwy w tekście na linki.auto_tasks/created_task_ids— elementy działań wyodrębnione przez AI oraz zadania utworzone na ich podstawie (gdy opcja Twórz karty zadań z elementów działań jest włączona).
| Status | Znaczenie |
|---|---|
400 |
date nie jest YYYY-MM-DD lub dotyczy przyszłości. |
403 |
Podsumowania dzienne są wyłączone dla tego konta. |
Wolisz powiadomienia push zamiast odpytywania? Zdarzenie webhook Daily Summary Created dostarcza ten sam ładunek danych w momencie zakończenia generowania porannego podsumowania.
Ponowne generowanie podsumowania dziennego
POST /summaries/daily/{date}/regenerate — uruchamia w tle nowe generowanie dla danego dnia i natychmiast zwraca status: "generating" oraz puste sections. Odpytuj GET /summaries/daily/{date}, aż proces zostanie zakończony. Obowiązują te same zasady, co w przypadku linku Spróbuj ponownie w aplikacji.
Opcjonalna treść {"deleteTasks": false} zachowuje zadania utworzone podczas poprzedniego uruchomienia; domyślnie są one usuwane i tworzone ponownie na podstawie nowego podsumowania. Wyślij wartość logiczną (boolean) — ciąg znaków "false" jest ignorowany i traktowany jako wartość domyślna.
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}'
Szybki przewodnik
| Zadanie | Punkt końcowy |
|---|---|
| Wygeneruj podsumowanie czatu i pobierz tekst | POST /summaries |
| Wygeneruj podsumowanie czatu według identyfikatora kontaktu (tekst nie jest zwracany) | POST /summaries/chat-summary |
| Odczytaj podsumowanie dnia | GET /summaries/daily/{date} |
| Wygeneruj ponownie podsumowanie dnia | POST /summaries/daily/{date}/regenerate |