Integraciones
8 min de lectura
Actualizado hace 16 días

Cómo conectar tu CRM (GoHighLevel, n8n) con VitalDesk

Monta el circuito completo: tu CRM agenda pacientes en VitalDesk automáticamente, y VitalDesk avisa a tu CRM cuando el paciente asiste, se trata o paga.

Guía oficial de VitalDesk

Centro de ayuda y tutoriales

Muchas clínicas captan pacientes con un CRM de marketing como GoHighLevel (GHL) y automatizan con n8n o Make. El problema clásico: lo comercial y lo clínico viven separados, y alguien termina copiando datos a mano. Con la API y los webhooks de VitalDesk ese puente se automatiza completo, en ambos sentidos.

El circuito que vas a montar

  1. Ida (CRM → VitalDesk): un lead agenda en tu funnel de GHL → n8n crea el paciente y la cita en VitalDesk automáticamente, guardando el contact ID de GHL como identificador externo.
  2. Vuelta (VitalDesk → CRM): el paciente asiste, completa su tratamiento o paga → VitalDesk dispara un webhook → n8n actualiza la oportunidad en GHL (por ejemplo, la marca como venta realizada).

Requisitos

  1. VitalDesk con plan Enterprise (la API está incluida sin costo adicional).
  2. Una API key con permisos de escritura de pacientes y citas — se crea en Configuración → API y Webhooks (ver la guía de la API).
  3. Una instancia de n8n (o Make/Zapier — cualquier herramienta que haga llamadas HTTP y reciba webhooks).

Ida: GHL crea el paciente y la cita

  1. En GHL, configura un webhook de workflow que se dispare cuando un lead agenda (o usa el trigger nativo de GHL en n8n).
  2. En n8n, recibe ese evento y llama POST /api/v1/external/patients con nombre, teléfono, email y external_ref = contact ID de GHL. Si el contacto ya existía, VitalDesk te devuelve el paciente existente — nunca se duplica.
  3. Encadena POST /api/v1/external/appointments con patient_external_ref (el mismo contact ID), el profesional, la fecha/hora con zona horaria y un external_ref propio de la cita (por ejemplo, el ID del booking de GHL). Si el horario está tomado, la API responde 409 y puedes manejar el conflicto en el flujo.

Vuelta: VitalDesk avisa al CRM

  1. En VitalDesk, ve a Configuración → API y Webhooks → pestaña Webhooks, y registra la URL de un webhook receptor de n8n.
  2. Suscríbete a los eventos cita actualizada (incluye asistió / no asistió), tratamiento completado y pago recibido.
  3. En n8n, cada evento llega con el external_ref que guardaste — es decir, con el ID de tu CRM — así que actualizar la oportunidad correcta en GHL es un paso directo, sin búsquedas frágiles por nombre o teléfono.
  4. Verifica la firma HMAC del header X-VitalDesk-Signature con el secret del endpoint para descartar mensajes falsificados.

Buenas prácticas

  1. Usa siempre external_ref en ambos objetos: es lo que hace el circuito robusto ante reintentos y reprocesos.
  2. Envía las fechas con zona horaria explícita (ISO 8601, por ejemplo 2026-09-01T15:00:00-05:00) — la API la exige para evitar citas corridas.
  3. Maneja el 409 de solape: reintenta con otro horario o usa el flag de sobrecupo solo si tu operación lo permite.
  4. Da a la key solo los permisos que el flujo necesita (principio de mínimo privilegio) y rota el secret del webhook si cambia de manos.

¿Quieres probar el circuito antes de contratar? Regístrate gratis en vitaldesk.cl (14 días, sin tarjeta) y solicita la habilitación Enterprise de evaluación para tu clínica de prueba. También puedes revisar todas las funciones y los planes.

Preguntas frecuentes

¿VitalDesk tiene integración nativa con GoHighLevel?

No hay un conector "one-click", pero la integración vía API + webhooks con n8n o Make es directa y queda montada en una tarde: creación de pacientes y citas desde GHL, y actualización de oportunidades en GHL cuando el paciente asiste o paga.

¿Qué pasa si GHL reenvía el mismo lead dos veces?

Nada malo: la creación de pacientes es idempotente. Si el external_ref, documento, email o teléfono ya existen, la API devuelve el paciente existente en lugar de duplicarlo.

¿Cómo sabe mi CRM si el paciente asistió a su cita?

Suscribiéndote al webhook de cita actualizada: cuando la clínica marca la cita como asistida (completed) o no asistió (no_show), VitalDesk envía el evento con el estado nuevo, el anterior y el identificador de tu CRM.

¿Funciona con Make o Zapier en vez de n8n?

Sí. Cualquier herramienta que pueda hacer llamadas HTTP con headers y exponer un webhook receptor sirve: la API usa REST estándar con autenticación por header X-API-Key.

gohighlevel n8n crm api webhooks automatización

Prueba todo lo de esta guía en tu propia clínica

14 días gratis · Sin tarjeta de crédito

Probar 14 días gratis