API Ringkasan
Dua jenis ringkasan yang ditulis oleh AI tersedia melalui API:
-
Ringkasan obrolan — rekap singkat percakapan satu kontak, yang dibuat sesuai permintaan. Sama dengan kontrol ringkasan dalam obrolan (lihat Ringkasan Obrolan).
-
Ringkasan harian — rangkuman sekali sehari di seluruh percakapan Anda yang dibuat oleh Ringkasan Harian setiap pagi: statistik, satu blok markdown per bagian, dan tugas apa pun yang dibuat AI darinya.
-
URL Dasar —
https://api.dmchamp.com/v1 -
Autentikasi — kunci API Anda (lihat Autentikasi). Kunci berlingkup memerlukan bagian
Summaries. -
Error & penomoran halaman — lihat Error & Penomoran Halaman
Semua contoh di bawah ini menunjukkan formulir kueri ?apiKey= dalam cURL dan header X-API-Key dalam JavaScript dan Python — keduanya berfungsi di setiap endpoint.
Membuat ringkasan obrolan
POST /summaries — kirim phoneNumber kontak (dengan kode negara) atau email; salah satu dari keduanya wajib diisi.
AI membaca percakapan tertutup terbaru milik kontak, atau percakapan yang masih terbuka jika belum ada yang ditutup, lalu menulis rekapnya. Rekap tersebut disimpan pada kontak (muncul di bawah Ringkasan di panel kontak dalam aplikasi) dan dikembalikan dalam respons, sehingga Anda dapat meneruskannya langsung ke CRM, saluran Slack, atau email.
Biaya: sama dengan satu balasan AI pada tingkat Kualitas AI Agen — Pro 1 kredit, Max 0,25, Mini 0,15; dengan kunci Anthropic Anda sendiri yang terhubung, Pro berbiaya 0. Permintaan ditolak sebelum ada yang dibuat jika saldo tidak mencukupi.
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"])
Respons
{
"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 | Arti |
|---|---|
400 |
Baik phoneNumber maupun email tidak dikirim. |
404 |
Tidak ada kontak yang cocok, kontak belum memiliki percakapan, atau percakapan tidak memiliki pesan. message pada body menjelaskan alasannya. |
500 |
Pembuatan gagal (misalnya, kredit tidak cukup). |
Resep otomatisasi: email pemesanan dengan rekap. Dalam otomatisasi pada pemicu Janji temu dipesan, tambahkan langkah Permintaan HTTP yang memanggil endpoint ini dengan
${trigger.contact.phone_number}(atau email kontak), lalu langkah Email yang menyisipkansummarydari respons langkah HTTP beserta tautan ke obrolan (alamat aplikasi Anda diikuti/chats/dan ID kontak dari pemicu). Tim Anda mendapatkan konteks pemesanan dalam email yang sama, tanpa harus membuka kotak masuk.
Membaca kembali ringkasan. Tidak ada endpoint yang mencantumkan ringkasan obrolan yang tersimpan. Simpan teks dari respons jika Anda membutuhkannya nanti, atau buat kembali (setiap panggilan akan dikenakan biaya).
Alternatif: berdasarkan ID kontak
POST /summaries/chat-summary dengan {"contactId": "..."} melakukan pembuatan yang sama untuk kontak yang ID-nya sudah Anda miliki. Ini hanya mengonfirmasi keberhasilan ({"success": true, "data": "Chat summary generated successfully"}) dan tidak mengembalikan teksnya, jadi gunakan POST /summaries jika Anda menginginkan rekapnya itu sendiri. Anggota tim yang kuncinya dibatasi pada kontak yang ditugaskan kepada mereka akan mendapatkan 404 untuk kontak di luar cakupan tersebut.
Mendapatkan ringkasan harian
GET /summaries/daily/{date} — date adalah YYYY-MM-DD. Mengembalikan ringkasan untuk hari tersebut, atau null di bawah summary jika belum ada yang dibuat, ditambah konfigurasi bagian Anda.
cURL
curl "https://api.dmchamp.com/v1/summaries/daily/2026-09-08?apiKey=YOUR_API_KEY"
Respons
{
"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,completedataufailed(denganerrordiatur). Lakukan polling pada endpoint ini setelah regenerasi hingga terbacacompleted.sections— satu string markdown per bagian, dikunci berdasarkan id bagian. Lima bagian standar adalahwins_losses_improvements,tasks_action_items,human_alerts_reviews,sentiment_analysisdanbooked_meetings_sales; bagian yang Anda tambahkan di bawah Konfigurasi pada halaman Ringkasan Harian mendapatkan idcustom_…. Nama dan urutan digemakan disection_configs.contact_map— nama tampilan ke ID kontak, sehingga Anda dapat mengubah nama dalam teks menjadi tautan.auto_tasks/created_task_ids— item tindakan yang diekstraksi oleh AI dan tugas yang dibuatnya dari item tersebut (saat Buat kartu tugas dari item tindakan aktif).
| Status | Arti |
|---|---|
400 |
date tidak YYYY-MM-DD, atau terjadi di masa mendatang. |
403 |
Ringkasan Harian dimatikan untuk akun tersebut. |
Lebih suka push daripada polling? Peristiwa webhook Ringkasan Harian Dibuat mengirimkan payload yang sama saat ringkasan pagi selesai.
Regenerasi ringkasan harian
POST /summaries/daily/{date}/regenerate — memulai pembuatan baru untuk hari itu di latar belakang dan segera kembali dengan status: "generating" dan sections kosong. Lakukan polling pada GET /summaries/daily/{date} hingga selesai. Aturan yang sama berlaku seperti untuk tautan Coba lagi di aplikasi.
Body opsional {"deleteTasks": false} menyimpan tugas yang dibuat oleh proses sebelumnya; secara default, tugas tersebut dihapus dan dibuat ulang dari ringkasan baru. Kirim boolean yang sebenarnya — string "false" diabaikan dan diperlakukan sebagai default.
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}'
Referensi cepat
| Tugas | Endpoint |
|---|---|
| Menghasilkan ringkasan obrolan dan mendapatkan teksnya | POST /summaries |
| Menghasilkan ringkasan obrolan berdasarkan ID kontak (tidak ada teks yang dikembalikan) | POST /summaries/chat-summary |
| Membaca ringkasan hari ini | GET /summaries/daily/{date} |
| Meregenerasi ringkasan hari ini | POST /summaries/daily/{date}/regenerate |