Webhooks e integraciones: cómo conectar Cursio con tu email marketing
Conecta Cursio con ConvertKit, Mailchimp, Zapier o cualquier herramienta. Guía paso a paso para configurar webhooks, tags automáticos y segmentación de estudiantes.
Cuando un estudiante compra un curso en tu escuela de Cursio, ese momento es oro. No solo porque generaste una venta, sino porque tienes un email, un nombre y un contexto (qué compró). Si esos datos quedan atrapados dentro de Cursio sin llegar a tu herramienta de email marketing, estás perdiendo la oportunidad de construir una relación con ese estudiante: secuencias de bienvenida, cross-selling, newsletters, encuestas de satisfacción.
Por eso construimos el sistema de webhooks e integraciones de Cursio: para que cada evento importante de tu escuela (nueva compra, nueva inscripción, curso completado) se envíe automáticamente a la herramienta que elijas — ConvertKit, Mailchimp, ActiveCampaign, Beehiiv, Zapier, Make, n8n, o cualquier endpoint HTTP.
Esta guía te explica cómo configurarlo paso a paso, con ejemplos concretos para los servicios más populares.
5
Eventos soportados
HMAC
Firma de seguridad SHA-256
Tags
Automáticos por producto para segmentar
Qué son los webhooks
Un webhook es una notificación automática que Cursio envía a una URL externa cuando algo sucede en tu escuela. En vez de que tú exportes CSVs manualmente cada semana, Cursio le dice a tu herramienta de email marketing "oye, acaba de inscribirse María en el curso de Python, su email es maria@example.com" — en tiempo real, sin que hagas nada.
Analogía simple: los webhooks son como tener un asistente que cada vez que alguien compra en tu tienda, le envía una tarjeta de bienvenida automáticamente a tu sistema de correos. Tú configuras una vez y funciona para siempre.
Eventos disponibles
Cursio puede enviar notificaciones para 5 tipos de eventos. Tú eliges cuáles quieres recibir en cada endpoint:
| Evento | Se dispara cuando | Datos que incluye |
|---|---|---|
student.created |
Un estudiante se registra por primera vez | Email, nombre, ID |
order.paid |
Un pago se confirma | Email, nombre, producto, monto, moneda, pasarela |
enrollment.created |
Un estudiante obtiene acceso a un producto | Email, nombre, producto, tipo de producto, lista de cursos incluidos |
enrollment.cancelled |
Se cancela o expira un acceso | Email, nombre, producto, razón |
course.completed |
Un estudiante completa el 100% de un curso | Email, nombre, curso, producto, numero de certificado |
Tags automáticos para segmentación
Cada producto en Cursio puede tener webhook tags personalizados. Cuando un evento se dispara para ese producto, los tags se incluyen en el payload del webhook. Esto te permite segmentar automáticamente en tu ESP:
- Producto "Python para principiantes" con tag
python-basico→ cuando alguien compra, ConvertKit le agrega el tagpython-basico - Producto "Pack completo" con tags
python-basico, python-avanzado→ el suscriptor recibe ambos tags - Después puedes crear segmentos: "todos los que tienen
python-basicopero NOpython-avanzado" → enviar email de cross-sell
Consejo: configura los tags de tus productos antes de crear los webhooks. Así desde la primera venta ya llegan correctamente segmentados a tu ESP.
Configuración paso a paso
1. Ve a Integraciones en tu panel
En tu admin de Cursio, navega a Integraciones en el menú lateral. Ahí verás la lista de webhooks configurados y el botón "Nuevo webhook".
2. Crea un nuevo webhook
- URL del endpoint: la URL donde Cursio enviará los datos (la obtienes de Zapier, Make, o tu ESP)
- Descripción (opcional): un nombre descriptivo como "ConvertKit — nuevos estudiantes"
- Eventos: marca los que quieras recibir en este endpoint
Al crearlo, Cursio genera un secreto de firma único (empieza con whsec_). Cópialo y guárdalo — solo se muestra una vez. Lo necesitarás si quieres verificar la autenticidad de los webhooks en tu endpoint.
3. Configura tu herramienta receptora
A continuación, ejemplos para los servicios más populares:
Zapier
- En Zapier, crea un nuevo Zap
- Trigger: "Webhooks by Zapier → Catch Hook"
- Copia la URL del webhook que Zapier te da
- Pégala en Cursio como la URL del endpoint
- Haz clic en "Enviar test" en Cursio para que Zapier reciba un evento de prueba
- Action: elige tu ESP (ConvertKit, Mailchimp, etc.) y mapea los campos:
data.student_email→ email,data.student_name→ nombre,tags→ tags
Make (ex Integromat)
- Crea un nuevo escenario
- Primer módulo: "Webhooks → Custom webhook"
- Copia la URL, pégala en Cursio
- Envía un test desde Cursio para que Make detecte la estructura
- Agrega el módulo de tu ESP y mapea los campos
ConvertKit (directo, sin Zapier)
- En ConvertKit, ve a Settings → API
- Tu API key es tu autenticación
- Crea un endpoint en Cursio apuntando a
https://api.convertkit.com/v3/tags/{tag_id}/subscribe - Nota: para esta integración directa necesitas un proxy/worker (ej. Cloudflare Worker) que transforme el payload de Cursio al formato de ConvertKit. Si prefieres algo más simple, usa Zapier.
n8n (self-hosted)
- Crea un workflow con trigger "Webhook"
- Configura como POST, copia la URL de producción
- Pégala en Cursio y envía test
- Agrega nodos para procesar: HTTP Request hacia tu ESP, o nodo nativo de ConvertKit/Mailchimp
Anatomía de un webhook
Cada webhook que Cursio envía es un POST HTTP con body JSON. Incluye tres headers especiales:
X-Cursio-Event: el tipo de evento (ej.enrollment.created)X-Cursio-Signature: la firma HMAC-SHA256 del body usando tu secreto (para verificar autenticidad)X-Cursio-Timestamp: la fecha del envío en ISO 8601
Ejemplo de payload para enrollment.created:
{
"event": "enrollment.created",
"timestamp": "2026-04-06T15:30:00.000Z",
"school_id": "uuid-de-tu-escuela",
"data": {
"enrollment_id": "uuid",
"student_email": "maria@example.com",
"student_name": "María García",
"product_id": "uuid",
"product_title": "Python para principiantes",
"product_type": "single",
"courses": [
{ "id": "uuid", "title": "Python desde cero" }
]
},
"tags": ["python-basico", "principiantes"]
}
Verificación de firma (opcional pero recomendado)
Si recibes webhooks en tu propio servidor (no Zapier/Make), deberías verificar la firma para asegurarte de que el request realmente viene de Cursio y no de un actor malicioso:
// Node.js / Edge Runtime
import crypto from 'crypto'
function verifySignature(body, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex')
return signature === `sha256=${expected}`
}
// En tu handler:
const isValid = verifySignature(
rawBody,
request.headers['x-cursio-signature'],
'whsec_tu_secreto_aqui'
)
if (!isValid) return new Response('Forbidden', { status: 403 })
Log de entregas y debugging
En la sección de Integraciones de tu admin, cada endpoint muestra:
- Estado de salud: punto verde (OK) o rojo (fallos consecutivos)
- Último status code: el código HTTP de la última respuesta
- Log de entregas: las últimas 50 entregas con evento, status, duración y fecha
- Test manual: botón "Enviar test" que dispara un evento
student.createdde prueba
Si tu endpoint falla repetidamente (5+ fallos consecutivos), Cursio NO desactiva el webhook automáticamente — sigue intentando. Pero el indicador de salud se pone rojo para que lo notes. Revisa el log de entregas para diagnosticar: errores comunes son URL incorrecta, timeout (tu servidor tarda más de 10 segundos en responder), o endpoint caído.
Límites por plan
| Plan | Webhooks | Eventos | Tags |
|---|---|---|---|
| Trial | 3 endpoints | Todos | Sí |
| Starter ($39/mes) | 3 endpoints | Todos | Sí |
| Pro ($69/mes) | Ilimitados | Todos | Sí |
3 endpoints es suficiente para la mayoría de los creadores (uno para ConvertKit, uno para Zapier, uno para analytics). Si necesitas más, el plan Pro te da ilimitados.
Configurar mis webhooks ahora →Resumen
- Los webhooks envían datos de eventos de tu escuela a herramientas externas en tiempo real
- 5 eventos: student.created, order.paid, enrollment.created, enrollment.cancelled, course.completed
- Tags personalizados por producto para segmentación automática en tu ESP
- Compatible con Zapier, Make, n8n, ConvertKit, Mailchimp, ActiveCampaign y cualquier endpoint HTTP
- Firma HMAC-SHA256 para verificar autenticidad
- Log de entregas con estado de salud y test manual
- Disponible desde el plan Starter (3 endpoints), ilimitados en Pro
¿Listo para crear tu academia?
Prueba Cursio gratis durante 14 días. Sin tarjeta de crédito, sin comisiones por venta.
Comenzar gratis