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.
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
- 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.
- 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
- VitalDesk con plan Enterprise (la API está incluida sin costo adicional).
- 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).
- Una instancia de n8n (o Make/Zapier — cualquier herramienta que haga llamadas HTTP y reciba webhooks).
Ida: GHL crea el paciente y la cita
- En GHL, configura un webhook de workflow que se dispare cuando un lead agenda (o usa el trigger nativo de GHL en n8n).
- En n8n, recibe ese evento y llama
POST /api/v1/external/patientscon nombre, teléfono, email yexternal_ref= contact ID de GHL. Si el contacto ya existía, VitalDesk te devuelve el paciente existente — nunca se duplica. - Encadena
POST /api/v1/external/appointmentsconpatient_external_ref(el mismo contact ID), el profesional, la fecha/hora con zona horaria y unexternal_refpropio 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
- En VitalDesk, ve a Configuración → API y Webhooks → pestaña Webhooks, y registra la URL de un webhook receptor de n8n.
- Suscríbete a los eventos cita actualizada (incluye asistió / no asistió), tratamiento completado y pago recibido.
- En n8n, cada evento llega con el
external_refque 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. - Verifica la firma HMAC del header
X-VitalDesk-Signaturecon el secret del endpoint para descartar mensajes falsificados.
Buenas prácticas
- Usa siempre
external_refen ambos objetos: es lo que hace el circuito robusto ante reintentos y reprocesos. - 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. - Maneja el 409 de solape: reintenta con otro horario o usa el flag de sobrecupo solo si tu operación lo permite.
- 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.