Conecta Skolaris con el CRM de tu colegio
Cómo mandar automáticamente cada lead de formularios, asistente y visitas a Dynamics 365, HubSpot, Salesforce o cualquier CRM, y el formato técnico para tu área de TI.
La respuesta corta: Skolaris puede mandar cada lead a tu CRM en cuanto llega: formularios, asistente y visitas agendadas. Funciona con cualquier CRM. Si usas Dynamics 365, se conecta con Power Automate; si usas otro (HubSpot, Salesforce, Zoho, Pipedrive o una hoja de cálculo), con Zapier o Make.
Cómo funciona
Cada vez que una familia deja sus datos, Skolaris guarda el lead como siempre y, unos segundos después, lo envía a una dirección web que tú indicas. Esa dirección es un flujo de automatización que recibe el lead y lo crea en tu CRM.
- Dynamics 365: un flujo de Power Automate (ya viene con tu licencia de Microsoft).
- HubSpot, Salesforce, Zoho, Pipedrive, Monday o Google Sheets: un Zap de Zapier o un escenario de Make.
- Un sistema propio: tu área de TI recibe el envío directamente. Abajo están los detalles técnicos.
Si el envío falla, Skolaris lo reintenta durante 24 horas y, si no llega, te avisa en el panel para que lo reenvíes. Ningún lead se pierde: siempre queda guardado en Skolaris.
Qué se envía
| Cuándo | Qué llega a tu CRM |
|---|---|
| Una familia envía un formulario de Skolaris | Datos de contacto, aspirante, grado de interés, mensaje y todos los campos del formulario |
| Una familia deja sus datos en el asistente | Datos de contacto y la etapa en que va la conversación |
| La familia completa después su teléfono o correo | El mismo lead, actualizado |
| Se agenda o se cancela una visita | Datos de contacto, fecha y hora de la visita |
Cada lead lleva además de dónde vino: Google Ads, Meta, búsqueda orgánica, redes, correo, IA o directo, con la campaña y la página por la que entró. Así tu equipo de admisiones sabe qué campaña trajo a cada familia sin preguntar.
Y lleva su recorrido por el sitio: cuántas veces vino, cuántos días tardó en decidirse y qué páginas leyó antes de escribirte (por ejemplo, Inicio → Primaria → Colegiaturas → Admisiones). Con eso la primera llamada empieza por lo que a esa familia le interesa.
El recorrido solo existe si la familia aceptó las cookies de analítica del sitio, y solo cuenta lo que vio desde el mismo navegador.
Nunca se envían los formularios internos ni los confidenciales (reportes, buzón de Ambientes Seguros). Las respuestas completas del asistente solo se envían si lo activas.
Cómo activarlo
- Crea el flujo en tu herramienta (pasos abajo) y copia la dirección que te da.
- En el panel de Skolaris entra a Configuración → Integraciones → CRM del colegio y pulsa Conectar mi CRM. Solo lo ve el titular de la cuenta.
- Pega la dirección, elige qué quieres recibir y guarda. Skolaris te muestra una clave de firma una sola vez: guárdala si tu área de TI va a verificar los envíos.
- Pulsa Enviar prueba. Llega un lead ficticio marcado como prueba; con él terminas de armar el flujo.
- Revisa en el panel el historial de envíos: cada uno aparece como Entregado o No llegó.
Dynamics 365 con Power Automate
- Crea un flujo de nube automatizado con el disparador «Cuando se recibe una solicitud HTTP». En «Quién puede desencadenar el flujo» elige «Cualquiera».
- En el esquema del cuerpo usa «Usar una carga de ejemplo para generar el esquema» y pega el ejemplo de la sección técnica de abajo.
- Agrega una Condición:
testes igual afalse, para que las pruebas no lleguen a tu CRM. - Agrega Dataverse → Agregar una nueva fila en Clientes potenciales o Contactos y une los campos (nombre, correo, teléfono, mensaje, campaña). Guarda el
lead.idde Skolaris en un campo propio: sirve para no duplicar y para cruzar datos después. - Termina con una acción Respuesta con código 200, guarda y copia la URL HTTP POST del disparador.
Zapier o Make (HubSpot, Salesforce, Zoho y otros)
- Zapier: crea un Zap con Webhooks by Zapier → Catch Hook. Make: un escenario con Webhooks → Custom webhook.
- Copia la dirección que te da y pégala en Skolaris. Pulsa Enviar prueba para que la herramienta aprenda los campos.
- Agrega el paso de tu CRM (por ejemplo, HubSpot → Create Contact) y une los campos.
- Agrega un filtro para que solo pasen los envíos con
testenfalse.
¿Prefieres que lo armemos nosotros? El equipo de Skolaris puede montar el flujo con tu área de TI y dejarlo probado con leads reales.
Privacidad
El colegio es el responsable de los datos de las familias y decide a qué CRM se envían; Skolaris los manda siguiendo esa instrucción. Una vez en tu CRM, su conservación y las solicitudes de las familias sobre esos datos se atienden ahí. Menciona tu CRM en el aviso de privacidad del sitio: la plantilla de Skolaris ya trae el párrafo.
Detalles técnicos para TI
Skolaris hace un POST con un cuerpo JSON (formato lead.v1) a la dirección configurada. Una respuesta 2xx lo da por entregado. Cualquier otra respuesta, una redirección o más de 10 segundos de espera cuentan como fallo y se reintenta a 1 min, 5 min, 15 min, 1 h, 3 h, 6 h y 12 h. Solo se aceptan direcciones https:// públicas.
Cabeceras
| Cabecera | Para qué |
|---|---|
X-Skolaris-Event | Tipo: lead.created, lead.updated, visit.booked o visit.cancelled |
X-Skolaris-Event-Id | Identificador único del envío. Un reintento llega con el mismo: úsalo para no crear duplicados |
X-Skolaris-Timestamp | Segundos desde 1970 (UTC) |
X-Skolaris-Signature | sha256= seguido del HMAC en hexadecimal |
Verificar la firma
La firma es HMAC-SHA256(clave, timestamp + "." + cuerpo), con la clave que Skolaris muestra al conectar. Calcúlala sobre el cuerpo tal como llegó y rechaza marcas de tiempo de más de 5 minutos. En Power Automate, Zapier o Make no hace falta: su dirección ya es secreta.
import crypto from "node:crypto";
function esDeSkolaris(headers, rawBody, clave) {
const ts = headers["x-skolaris-timestamp"];
const firma = (headers["x-skolaris-signature"] || "").replace(/^sha256=/, "");
if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
const esperada = crypto
.createHmac("sha256", clave)
.update(`${ts}.${rawBody}`)
.digest("hex");
return firma.length === esperada.length &&
crypto.timingSafeEqual(Buffer.from(firma), Buffer.from(esperada));
}
Cuerpo de ejemplo
{
"id": "3aee11f0-95f5-4b67-83a8-3dcc38b515e0",
"type": "lead.created",
"version": "1",
"test": false,
"created_at": "2026-11-09T13:13:21Z",
"school": { "id": "d46e1c32-…", "name": "Colegio Ejemplo", "slug": "colegio-ejemplo" },
"lead": {
"id": "2a669ef5-…",
"source": "form",
"created_at": "2026-11-09T13:12:50Z",
"status": "new",
"contact": { "name": "Ana López", "email": "ana@ejemplo.com", "phone": "+52 55 1234 5678", "relationship": "Madre" },
"student": { "name": "Mateo López", "grade_of_interest": "3° de primaria" },
"message": "Quisiera información de colegiaturas",
"form": { "id": "b9eda3fb-…", "slug": "admisiones", "name": "Admisiones", "type": "admision" },
"fields": { "parent_name": "Ana López", "grade_of_interest": "3° de primaria", "how_did_you_hear": "Google" },
"consent": { "method": "checkbox", "at": "2026-11-09T13:12:50Z", "policy_url": "https://colegio.edu.mx/privacidad" },
"attribution": {
"channel": "google_ads",
"page_url": "https://colegio.edu.mx/admisiones",
"first_touch": { "utm_source": "google", "utm_medium": "cpc", "utm_campaign": "admisiones-2027", "gclid": "…" },
"last_touch": { "utm_source": "google", "utm_medium": "cpc", "utm_campaign": "admisiones-2027" }
},
"journey": {
"visits": 3,
"pages_viewed": 9,
"first_seen_at": "2026-10-28T19:02:00Z",
"days_to_convert": 12,
"pages": [
{ "at": "2026-10-28T19:02:00Z", "url": "https://colegio.edu.mx/", "title": "Inicio", "scroll_pct": 60 },
{ "at": "2026-10-28T19:04:10Z", "url": "https://colegio.edu.mx/primaria", "title": "Primaria" },
{ "at": "2026-11-09T13:10:05Z", "url": "https://colegio.edu.mx/admisiones", "title": "Admisiones" }
]
}
}
}
Campos de lead
| Campo | Notas |
|---|---|
id | Id del lead en Skolaris. Guárdalo en tu CRM |
source | form, chatbot o visit |
contact | name, email, phone; relationship en formularios y whatsapp_opt_in en visitas. Cualquiera puede venir vacío según lo que se pidió |
student | name, grade_of_interest o age, según lo que se pidió |
fields | Todo lo que pidió el formulario, con sus claves tal cual. Úsalo para campos propios del colegio |
visit | Solo en eventos de visita: starts_at (ISO, UTC), duration_minutes, type, status, cancelled_at |
chatbot | Si vino del asistente: conversation_id, funnel_stage, lead_score y, si el colegio lo activa, qualification |
consent | Cómo y cuándo aceptó el aviso de privacidad |
journey | Recorrido en los 90 días previos: visits, pages_viewed, first_seen_at, days_to_convert y pages (las 25 más recientes, en orden, con at, url, title y scroll_pct). null si la familia no aceptó cookies de analítica |
attribution | channel (google_ads, meta_ads, paid_other, organic_search, social, email, ai, campaign, referral, direct), page_url, first_touch y last_touch con UTMs y click ids |
Dentro de la versión 1 solo se agregan campos; tu integración debe ignorar los que no conozca. Si algo se quita o cambia de nombre, sube la versión y lo avisamos con anticipación.
¿Te quedó alguna duda?
Escríbenos y te contesta una persona del equipo, no un bot.