Webhooks de Integración
Dos endpoints para conectar GoHighLevel directamente — sin Make
1. Cliente agenda
GHL envía datos de la cita
POST /api/webhook/lead
Se crea el lead (solo agenda)
2. Cliente llena formulario
GHL envía perfil + respuestas
POST /api/webhook/score
Se enriquece + IA califica (1-4)
Configura este endpoint en GHL para cuando alguien agenda una demo o intro. Solo recibe los datos básicos de la cita.
https://sacacrm-fjutj9pt.manus.space/api/webhook/lead| Campo | Tipo | Descripción |
|---|---|---|
| Nombre | string | Nombre completo del lead {{contact.name}} |
| Telefono | string | Teléfono con código de país {{contact.phone}} |
| Correo | string | Email del lead (clave para vincular con scoring) {{contact.email}} |
| Fecha_Agenda | string | Fecha y hora de la cita {{appointment.start_time}} |
| Link_CRM | string | URL del contacto en GHL |
| Facturacion | string | Facturación del lead (monto en USD) |
{
"Nombre": "Dr. María García",
"Correo": "[email protected]",
"Telefono": "+52 55 1234 5678",
"Fecha_Agenda": "2026-02-22T10:00:00",
"Link_CRM": "https://clientes.sacamedi.com/v2/location/5h.../contacts/abc123",
"Facturacion": "15000"
}{ success: true, leadId: 42, message: "Lead created successfully" }Configura este endpoint en GHL para cuando el cliente envía el formulario de calificación. Recibe toda la información de perfil (Instagram, país, rubro, etc.) junto con las respuestas P1-P6. El sistema busca al lead por correo o teléfono, lo enriquece con los datos de perfil, y ejecuta el scoring con IA.
https://sacacrm-fjutj9pt.manus.space/api/webhook/score| Campo | Tipo | Descripción |
|---|---|---|
| correo | string | Email para vincular con el lead de la agenda |
| telefono | string | Teléfono alternativo para vincular |
| string | Handle de Instagram de la clínica | |
| pais | string | País del lead |
| rubro | string | Especialidad de la clínica |
| origen | enum | ADS | REFERIDO | ORGANICO |
| tipo | enum | DEMO | INTRO |
| p1_frustracion | string | Respuesta P1: Frustración con marketing actual |
| p2_marketing_previo | string | Respuesta P2: Experiencia con marketing previo |
| p3_urgencia | string | Respuesta P3: Plazo para resultados |
| p4_tiempo_operando | string | Respuesta P4: Tiempo operando la clínica |
| p5_tratamientos | string | Respuesta P5: Tratamientos de mayor valor |
| p6_impedimento | string | Respuesta P6: Impedimento para implementar |
| score_override | number | Score manual 1-4 (omite IA si se envía) |
{
"correo": "[email protected]",
"telefono": "+52 55 1234 5678",
"instagram": "clinicaejemplo",
"pais": "México",
"rubro": "Odontología",
"origen": "ADS",
"tipo": "DEMO",
"p1_frustracion": "Estoy cansado de no ver resultados con mi marketing actual",
"p2_marketing_previo": "Invertí $5,000 USD y perdí dinero sin resultados",
"p3_urgencia": "YA (mi negocio depende de esto)",
"p4_tiempo_operando": "Más de 5 años",
"p5_tratamientos": "Implantes dentales, carillas de porcelana",
"p6_impedimento": "Nada, tengo autoridad y recursos"
}{ success: true, leadId: 42, score: 4, scoreLabel: "HOT" }El correo o teléfono del Webhook 2 debe coincidir con el del Webhook 1 para vincular correctamente el scoring al lead existente.
Si el Webhook 2 llega antes que el Webhook 1 (o sin lead previo), el sistema crea el lead automáticamente para no perder datos.
El scoring con IA se ejecuta automáticamente con las respuestas P1-P6. Si envías score_override, se usa ese valor y se omite la IA.
El Webhook 2 también enriquece el lead con los datos de perfil (Instagram, país, rubro, origen, tipo) que no vienen en la agenda.
https://sacacrm-fjutj9pt.manus.space/api/webhook/health