Envíos de Diagnóstico
Si tienes un formulario de diagnóstico (cuestionario, evaluación, autotest) que entrega el resultado al lead, esta API registra cada intento de envío en Sendeasy: quién lo completó, el resultado y si la entrega por WhatsApp y la creación del contacto en ActiveCampaign funcionaron.
El historial aparece en Leads → Envíos de Diagnóstico, con búsqueda y exportación en CSV.
Esta API solo registra el historial. No envía el mensaje ni crea el contacto — eso lo sigue haciendo tu formulario, la API WABA o la integración que ya utilizas.
Antes de empezar
- Registra el proyecto. En Leads → Envíos de Diagnóstico, abre Proyectos aceptados y registra un identificador para tu diagnóstico (ej.:
midiagnostico). Mientras la lista esté vacía, no se registra ningún envío. - Genera un API Token del proyecto (Configuración → API).
El identificador enviado debe coincidir exactamente con uno de los registrados. Esta validación es intencional: evita que un error de escritura cree un proyecto nuevo sin que nadie lo note.
Registrar un envío
| Método | Endpoint | Auth |
|---|---|---|
POST | /api/v1/diagnostic-submissions | API Token |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
project | string | Sí | Identificador del diagnóstico, igual al registrado en "Proyectos aceptados". |
name | string | No | Nombre de quien lo completó. |
email | string | No | Correo de quien lo completó. |
phone | string | No | Teléfono con código de país y área (ej.: 5511999999999). |
result | objeto | No | Respuestas, notas y dimensiones del diagnóstico. Formato libre. |
whatsappStatus | string | No | success, failed o skipped. |
whatsappError | string | No | Mensaje del error cuando el envío falla. |
activeCampaignStatus | string | No | success, failed o skipped. |
activeCampaignError | string | No | Mensaje del error cuando la integración falla. |
source | string | No | Origen del lead (campaña, página, anuncio). |
Envía los campos de estado después de intentar el envío, con el resultado real de cada etapa. Eso es lo que permite encontrar las entregas fallidas.
Ejemplo
curl --location 'https://backend.sendeasy.app/api/v1/diagnostic-submissions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TU_API_TOKEN' \
--data '{
"project": "midiagnostico",
"name": "Maria Souza",
"email": "maria@ejemplo.com",
"phone": "5511999999999",
"result": { "media": 7.5, "categorias": { "procesos": 8, "personas": 7 } },
"whatsappStatus": "success",
"activeCampaignStatus": "failed",
"activeCampaignError": "timeout en la API",
"source": "campana-instagram"
}'
Respuesta
{
"id": 42
}
Errores
| HTTP | error | Qué hacer |
|---|---|---|
400 | PROJECT_REQUIRED | Envía el campo project. |
400 | NO_PROJECTS_CONFIGURED | Ningún proyecto registrado todavía: abre "Proyectos aceptados" en la pantalla y registra el identificador. |
400 | PROJECT_NOT_ALLOWED | El identificador no está en la lista. La respuesta incluye allowedProjects con los valores aceptados — compáralos con lo que envía tu formulario. |
401 | ERR_API_TOKEN_NOT_PROVIDED | Falta el header Authorization: Bearer <api_token>. |
401 | ERR_API_TOKEN_INVALID | Token inválido o desactivado. |
Ambos errores de proyecto incluyen la lista aceptada:
{
"error": "PROJECT_NOT_ALLOWED",
"allowedProjects": ["midiagnostico"]
}
Buenas prácticas
- Registra también los fallos. Un envío con
whatsappStatus: "failed"es justamente lo que quieres ver después. - No bloquees al usuario. Llama a esta API en segundo plano: si el registro falla, el lead debe seguir viendo su resultado.
- Guarda el token en el servidor. El API Token da acceso al proyecto — nunca lo expongas en el navegador.