Centro de Ayuda
Idioma
Idioma
Idioma
Tema
Configuraciones

Webhooks

Avisos automáticos a tu sistema cuando algo ocurre en la plataforma: eventos, filtros, datos personales, historial de envíos y fallos del destino.

Un webhook avisa a tu sistema cuando algo ocurre en la plataforma. Por ejemplo: un alumno concluyó una clase, y Cademí envía un aviso a tu CRM. El webhook es la dirección de tu sistema (o de Zapier, Make, n8n) que recibe esos avisos. Configuras todo en Configuraciones → Webhooks. El formato de cada evento, para quien va a programar el receptor, está en https://cademi.dev/webhooks.

La idea en un minuto

  • Un evento es un hecho que Cademí registra en la cuenta: un alumno recibió acceso, aprobó un examen, concluyó una clase.
  • Un webhook es una dirección inscrita en algunos eventos.
  • Una entrega es cada aviso que Cademí envía a esa dirección.

Una entrega de webhook no tiene relación con una entrega de ventas (Entregas).

La regla más importante: el webhook escucha el acceso, no la venta. Una venta del gateway no es un evento. Lo que llega a tu sistema es el acceso que produjo la venta.

La pantalla tiene dos pestañas:

  • Endpoints: la lista de los webhooks. Cada fila muestra Evento / alcance, Endpoint y Estado. El Estado es Activo o Inactivo, y lo cambias en la misma fila. Los filtros Eventos y Estado y la búsqueda por dirección recortan la lista.
  • Historial: las entregas.

Hay dos formatos de webhook:

  • Cademí v3, el formato actual. Un webhook recibe varios eventos, cada uno con su filtro, y cada envío va firmado. Es lo que crea Nuevo webhook, y es lo que explica este artículo.
  • Heredado v2 y Heredado v1 (descontinuado), el formato antiguo, con un evento por webhook. Sirve solo para un sistema que ya recibe ese formato. Nuevo webhook heredado crea uno. En una integración nueva, usa Nuevo webhook.

Crear un webhook

  1. Abre Configuraciones → Webhooks.
  2. Haz clic en Nuevo webhook.
  3. En A dónde enviar, pega el Endpoint: la dirección de tu sistema, que empieza con https://.
  4. Si quieres, completa la Descripción. Te ayuda a reconocer el webhook en la lista y no va en el envío.
  5. En Cuándo enviar, marca los eventos.
  6. En los eventos que aceptan filtro, completa el bloque Enviar solo cuando, que aparece justo debajo. Vacío quiere decir "siempre que ocurra".
  7. En Qué lleva cada envío, elige el nivel de datos personales (mira abajo).
  8. Revisa el Resumen, al lado.
  9. Haz clic en Crear webhook.
  10. En la ventana Secreto de firma, copia y guarda el secreto.

El secreto no aparece de nuevo. Con él, tu servidor comprueba que cada envío salió de Cademí.

Para elegir los eventos, la pantalla tiene dos pestañas:

  • Recorrido del alumno agrupa los momentos más usados.
  • Sincronización (avanzado) lista todos los eventos de la plataforma, por grupo, con el nombre técnico. Es para quien mantiene otro sistema siempre al día con Cademí.

Buscar evento busca en las dos pestañas. Marcar todos y Desmarcar valen por grupo. Ver ejemplo del envío muestra lo que llega a tu dirección, con datos de ejemplo.

Los momentos del recorrido del alumno

MomentoEventos
RegistroAlumno creado, Etiquetas del alumno actualizadas, Campo personalizado actualizado
AccesoAcceso liberado, Primer acceso, Acceso suspendido o reactivado, Acceso revocado, Acceso restaurado
ProgresoCurso iniciado, Clase concluida, Hito de progreso alcanzado, Progreso actualizado, Curso concluido
ExámenesExamen concluido, Intento de examen reabierto
CertificadosCertificado emitido, Certificado revocado
TérminosTérmino aceptado
PuntosPuntos acreditados, Puntos ajustados
AtenciónTicket abierto, Ticket respondido, Ticket cerrado, Duda enviada, Duda respondida, Comentario enviado, Comentario respondido

Atención: aquí es donde ocurren más errores. Cada evento tiene su momento exacto:

  • Venta: el alumno recibe una entrega y dispara Acceso liberado. El reembolso, el atraso y el pago de vuelta disparan Acceso suspendido o reactivado.
  • Curso iniciado es la primera clase concluida, no el acceso concedido. Para la bienvenida, usa Alumno creado o Primer acceso.
  • Examen concluido dispara con aprobado o reprobado. Para solo uno de ellos, filtra por Resultado del examen.
  • Llegar al 100% no emite certificado. Certificado emitido solo ocurre cuando alguien pide el certificado.
  • El aviso de un comentario o de una duda no lleva el texto que escribió el alumno.
  • Un administrador que ve el área como alumno de prueba no genera ninguno de esos eventos.

Los filtros

FiltroEn los eventos deQué hace
Productoprogreso, exámenes, certificados, comentarios y dudasUn solo producto, o Cualquier producto
Clase y Examenclase concluida, comentarios, dudas y exámenesAparecen después de que eliges el producto. Puedes marcar varias
Resultado del examenExamen concluidoAprobado o reprobado, Solo aprobado o Solo reprobado
Al llegar aHito de progreso alcanzado50%, 75% o 90%
A partir deProgreso actualizadoUn porcentaje mínimo. Después de que el alumno lo supera, cada clase siguiente dispara de nuevo. Para un aviso único, prefiere el hito
Tipo de registroAlumno creadoRegistro pago o Registro gratuito. El registro con Google y el de la importación no son ni uno ni otro. Con una de las dos opciones, quedan fuera
OfertaAcceso liberadoSolo los accesos de esa entrega: los compradores de esta oferta
Etiqueta que recibió el alumnoEtiquetas del alumno actualizadasSolo cuando se agrega esa etiqueta. Una etiqueta que el alumno ya tenía, o que solo se quitó, no dispara
Campo personalizado y Solo cuando quede completadoCampo personalizado actualizadoUn campo. Si quieres, solo cuando deja de estar vacío
TérminoTérmino aceptadoUn término específico
Puntos porPuntos acreditadosEl motivo de los puntos (clase, hito, examen, comentario)

Cuántos datos personales van

El nivel vale para todos los eventos del mismo webhook.

NivelQué llegaÚsalo cuando
Solo identificadores, sin datos personales (el predeterminado)Los códigos del alumno y de lo que ocurrió, sin nombre ni contacto. Tu sistema busca el resto por la APIEl receptor consulta al alumno, o solo necesita contar
Con datos personales enmascaradosLos códigos, más nombre, correo y teléfono ocultos en parte. Sigue siendo dato personalLa herramienta necesita una pista de quién es, sin guardar el contacto real
Completo, con datos personalesLos datos tal como están en el registroEl sistema necesita escribir, llamar o facturar al alumno. Y es confiable para guardar esos datos

Solo un administrador autorizado a ver los datos de los alumnos puede elegir el nivel completo. Si el webhook incluye tickets, también necesita ver la atención. Cademí revisa cada envío contra quien creó el webhook. Si esa persona pierde la autorización, los envíos salen enmascarados hasta que la recupere, y la pantalla lo avisa.

La página de un webhook

Haz clic en la fila para abrir el webhook. Arriba están el estado, Ver historial de este webhook, Enviar prueba y Generar nuevo secreto.

El panel de salud muestra:

  • el Último envío entregado;
  • las Últimas 24 horas: entregados, fallos y en cola;
  • el estado de la Dirección: Recibiendo normalmente, Envíos pausados por fallos seguidos o Probando la dirección de nuevo.

Enviar prueba envía ahora a tu dirección un ejemplo del evento elegido. El ejemplo tiene datos ficticios, va firmado con el secreto actual y se marca como prueba. Ves el Estado HTTP, el Tiempo y la Respuesta. La prueba no entra en el historial y no cuenta para la salud del webhook.

Generar nuevo secreto crea un secreto nuevo y lo muestra una vez. El anterior sigue firmando durante 24 horas. Así, cambias el secreto en el receptor sin interrupción.

Historial

La pestaña Historial lista las entregas de los últimos 60 días, en cuatro vistas: Todos, Éxito, Pendientes y Con error. Solo Con error tiene conteo, porque es la cola que pide acción. El filtro Webhook recorta por destino.

Cada fila muestra Enviado el, Evento, Código (la respuesta del destino), Endpoint y Estado. Si hubo más de un intento, la fila muestra el número.

EstadoQué quiere decir
En colaEsperando el próximo envío
EnviandoSaliendo ahora
ÉxitoEl destino recibió y respondió con éxito
ErrorEl destino rechazó de una forma que no sirve repetir (dirección inexistente o bloqueada). Solo sale de nuevo con un reenvío manual
AgotadoLos intentos se acabaron sin éxito. Solo sale de nuevo con un reenvío manual o al reactivar el webhook
CanceladoYa no se va a enviar. El webhook se desactivó o se eliminó antes de que saliera, o el sistema abandonó la dirección

Haz clic en la fila para abrir Detalles de la entrega. La ventana muestra la Respuesta del destino y el Payload enviado. En las entregas que fallaron, tiene el botón Reenviar. Reenviar pone la misma entrega en la cola de nuevo. No crea un evento nuevo.

Cuando el destino falla

Si la dirección no acepta una entrega, Cademí lo intenta de nuevo por sí sola:

  • La espera entre los intentos crece de 2 minutos hasta 6 horas.
  • Cademí lo intenta unas 10 veces, o durante 72 horas.
  • Si el destino pide esperar, o está inestable, el aplazamiento no gasta intento.
  • Un rechazo definitivo no se repite.

El camino de una entrega hasta el estado final, con los nuevos intentos y las vueltas a la cola:

Carregando diagrama…

Con el webhook Inactivo, la entrega espera en la cola y no se cancela. Reactivar y reenviar devuelve solo lo que se agotó o se canceló por la desactivación en las últimas 48 horas. Una entrega cancelada porque se eliminó el webhook no vuelve.

SituaciónQué ocurreCómo vuelve
Dejas el webhook InactivoLas entregas quedan retenidas. Esperar no es un falloActívalo de nuevo y salen
La dirección falla en varios envíos diferentes en 24 horasEl sistema desactiva el webhook y cancela lo que todavía esperaba. Avisa por correo a los administradores que gestionan webhooksEn la página del webhook, Reactivar o Reactivar y reenviar las últimas 48 horas
La dirección pasa mucho tiempo sin responderTodo webhook que apunta a esa dirección se desactiva. Esto vale también en otras cuentas que la usanReactiva cada uno

La lista y la página del webhook muestran el motivo de la desactivación. Guardar el webhook no lo reactiva. Corrige la dirección, si hace falta, y usa Reactivar. Nada con más de 48 horas vuelve por sí solo.

Para tener en cuenta

El receptor tiene que tolerar la repetición.

Los reenvíos y las reactivaciones entregan el mismo evento de nuevo. Si tu sistema no reconoce el evento repetido, un CRM crea dos contactos y una herramienta de correo le escribe dos veces al alumno.

Eliminar cancela lo que esperaba.

Eliminar un webhook cancela las entregas pendientes. Las concluidas quedan en el historial. El soporte puede recuperar el webhook eliminado.

Cambiar el nivel no reescribe el pasado.

Un nivel más completo vale para lo que ocurre después. Lo que ya se preparó sale como estaba.

El webhook no es un historial.

Se puede pausar y desactivar. Para mirar hacia atrás o armar un informe, usa la lista de eventos de la API, no un webhook en una hoja de cálculo.

Diamante.

Los mensajes de etapa de los embudos Diamante están en las pantallas de Diamante (Embudos Diamante), no aquí.

Antiguo y nuevo en el mismo sistema.

Un webhook heredado y un webhook v3 que apuntan a la misma herramienta avisan el mismo momento dos veces, con dos nombres.

Preguntas frecuentes

Quiero avisar a mi CRM en cada compra.

En el momento Acceso, marca Acceso liberado y Acceso suspendido o reactivado. Si es una entrega específica, filtra por Oferta. El webhook escucha el acceso, no la venta.

El evento ocurrió y no llegó nada.

Abre el Historial y busca la entrega:

  • En cola: la plataforma todavía lo va a intentar.
  • Error o Agotado: mira la Respuesta del destino, corrige y reenvía.
  • Ninguna entrega: el evento no está marcado, o el filtro excluyó el caso.

Si la lista muestra el webhook desactivado, reactívalo.

Mi webhook se desactivó solo.

La dirección falló en varios envíos seguidos. Corrige el destino y prueba con Enviar prueba. Después, haz clic en Reactivar y reenviar las últimas 48 horas para recuperar lo que quedó atrás.

Recibí el mismo aviso dos veces.

Un reenvío o una reactivación entrega el mismo evento de nuevo. Tu sistema tiene que reconocer el evento repetido.

En esta página