API de resúmenes
Hay dos tipos de resúmenes escritos por IA disponibles a través de la API:
-
Resúmenes de chat: un breve resumen de la conversación de un contacto, generado bajo demanda. Es lo mismo que el control de resumen en un chat (consulta Resumen de chat).
-
Resúmenes diarios: el resumen diario de todas tus conversaciones que Resúmenes diarios genera cada mañana: estadísticas, un bloque de markdown por sección y cualquier tarea que la IA haya creado a partir de él.
-
URL base —
https://api.dmchamp.com/v1 -
Autenticación — tu clave de API (consulta Autenticación). Una clave con alcance limitado necesita la sección
Summaries. -
Errores y paginación — consulta Errores y paginación
Todos los ejemplos a continuación muestran la forma de consulta ?apiKey= en cURL y el encabezado X-API-Key en JavaScript y Python; cualquiera de los dos funciona en todos los endpoints.
Generar un resumen de chat
POST /summaries — envía el phoneNumber del contacto (con código de país) o su email; uno de los dos es obligatorio.
La IA lee la conversación más recientemente cerrada del contacto, o la que aún está abierta si ninguna se ha cerrado todavía, y escribe un resumen de la misma. El resumen se guarda en el contacto (aparece en Resúmenes dentro del panel del contacto en la aplicación) y se devuelve en la respuesta, para que pueda reenviarlo directamente a un CRM, un canal de Slack o un correo electrónico. La respuesta lo incluye de tres formas: summary está escrito con encabezados y viñetas (## STATE, - ) tal como lo muestra la aplicación, summary_text es el mismo resumen en texto sin formato, para un campo que muestra el texto exactamente como se escribe (un campo de texto de CRM, una descripción de tarea, un SMS), y summary_html es el mismo resumen formateado para un campo que admite formato (el cuerpo de un correo electrónico, una nota de HubSpot).
Coste: el mismo que una respuesta de IA en el nivel de calidad de IA del agente: Pro 1 crédito, Max 0.25, Mini 0.15; con tu propia clave de Anthropic conectada, Pro cuesta 0. La solicitud se rechaza antes de generar nada si el saldo no es suficiente.
Los miembros de Champions Circle pagan la Tarifa Insider: 0.20 en lugar de 0.25 en Max, y 0.12 en lugar de 0.15 en Mini. Ver 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"])
Respuesta
{
"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>"
}
| Estado | Significado |
|---|---|
400 |
No se envió ni phoneNumber ni email. |
404 |
No hay ningún contacto que coincida, el contacto aún no tiene conversaciones o la conversación no tiene mensajes. El message del cuerpo indica cuál es el motivo. |
500 |
La generación falló (por ejemplo, por falta de créditos). |
Receta de automatización: correo electrónico de reserva con un resumen. En una automatización con el activador Cita reservada, añade un paso de Solicitud HTTP que llame a este endpoint con
${trigger.contact.phone_number}(o el correo electrónico del contacto), y luego un paso de Correo electrónico que inserte elsummaryde la respuesta del paso HTTP junto con un enlace al chat (la dirección de tu aplicación seguida de/chats/y el ID de contacto del activador). Tu equipo obtiene el contexto de la reserva en el mismo correo, sin necesidad de abrir la bandeja de entrada.
Lectura de resúmenes anteriores. No existe un endpoint que enumere los resúmenes de chat almacenados. Guarda el texto de la respuesta si lo necesitas más tarde, o genéralo de nuevo (cada llamada se factura).
Alternativa: por ID de contacto
POST /summaries/chat-summary con {"contactId": "..."} realiza la misma generación para un contacto del que ya tienes el ID. Solo confirma el éxito ({"success": true, "data": "Chat summary generated successfully"}) y no devuelve el texto, así que usa POST /summaries cuando quieras el resumen en sí. Un miembro del equipo cuya clave esté limitada a sus contactos asignados recibirá 404 para un contacto fuera de ese alcance.
Lea los resúmenes de chat más recientes de muchos contactos
POST /contacts/summaries/latest: envíe hasta 500 ID de contacto y obtenga el resumen de chat más reciente de cada contacto en una sola llamada. No se genera nada, por lo que no cuesta créditos. Esta es la lectura detrás de la columna Resumen de IA de la exportación CSV de contactos.
{ "contactIds": ["contact_abc123", "contact_def456"] }
Respuesta
{
"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 contacto que aún no tiene un resumen, que no está en su cuenta o que está fuera de los contactos visibles de un miembro del equipo simplemente se excluye de summaries. Los ID deben ser únicos, y una lista con más de 500 se rechazará con 400: divídala en lotes. Un miembro del equipo necesita al menos el permiso de Visualización en Mensajes.
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"]}'
Obtener un resumen diario
GET /summaries/daily/{date} — date es YYYY-MM-DD. Devuelve el resumen de ese día, o null bajo summary cuando aún no se ha generado ninguno, además de la configuración de tus secciones.
cURL
curl "https://api.dmchamp.com/v1/summaries/daily/2026-09-08?apiKey=YOUR_API_KEY"
Respuesta
{
"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(conerroractivado). Realice sondeos en este endpoint después de una regeneración hasta que aparezcacompleted.sections— una cadena de markdown por sección, identificada por el ID de la sección. Las cinco secciones estándar sonwins_losses_improvements,tasks_action_items,human_alerts_reviews,sentiment_analysisybooked_meetings_sales; las secciones que añada en Configurar en la página de Resúmenes diarios obtienen un IDcustom_…. Los nombres y el orden se reflejan ensection_configs.contact_map— nombre para mostrar a ID de contacto, para que pueda convertir los nombres en el texto en enlaces.auto_tasks/created_task_ids— los elementos de acción que la IA extrajo y las tareas que creó a partir de ellos (cuando Crear tarjetas de tarea a partir de elementos de acción está activado).
| Estado | Significado |
|---|---|
400 |
date no está YYYY-MM-DD, o es para una fecha futura. |
403 |
Los Resúmenes diarios están desactivados para la cuenta. |
¿Prefiere una notificación push en lugar de realizar sondeos? El evento de webhook Resumen diario creado entrega la misma carga útil en el momento en que termina un resumen matutino.
Regenerar un resumen diario
POST /summaries/daily/{date}/regenerate — inicia una nueva generación para ese día en segundo plano y devuelve inmediatamente status: "generating" y un sections vacío. Realice sondeos en GET /summaries/daily/{date} hasta que se complete. Se aplican las mismas reglas que para el enlace Intentar de nuevo en la aplicación.
El cuerpo opcional {"deleteTasks": false} mantiene las tareas creadas en la ejecución anterior; por defecto, se eliminan y se vuelven a crear a partir del nuevo resumen. Envíe un booleano real: la cadena "false" se ignora y se trata como el valor predeterminado.
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}'
Referencia rápida
| Tarea | Endpoint |
|---|---|
| Generar un resumen de chat y obtener el texto | POST /summaries |
| Generar un resumen de chat por ID de contacto (no se devuelve texto) | POST /summaries/chat-summary |
| Leer el resumen de chat más reciente de hasta 500 contactos | POST /contacts/summaries/latest |
| Leer el resumen de un día | GET /summaries/daily/{date} |
| Regenerar el resumen de un día | POST /summaries/daily/{date}/regenerate |