Cómo funciona el flujo completo
Sin Make, sin Zapier. GHL habla directamente con las tablas de Genspark.
Crear el Calendar en GHL
El Voice AI necesita un calendar para saber qué horarios ofrecer a los pacientes.
Escribe: LOVE Dental Care — Citas
Selecciona 60 minutos (o el tiempo promedio de consulta)
Lunes a Viernes: 09:00 – 19:00 · Sábado: 09:00 – 14:00 · Domingo: Cerrado
Selecciona America/Monterrey (UTC-6, Nuevo Laredo)
Lo necesitarás al configurar el Voice AI en el siguiente paso.
Activar Voice AI en GHL
Configura el AI Employee para que atienda llamadas y agende en el calendar creado.
Sofia — Asistente LOVE Dental Care
Copia y pega el prompt de abajo — define cómo se presenta y qué puede hacer.
En la sección de booking, selecciona LOVE Dental Care — Citas
Asigna el número de GHL a este Voice AI en Phone Numbers → Assign AI
Eres Sofía, la asistente virtual de LOVE Dental Care, una clínica dental especializada en Nuevo Laredo, Tamaulipas. Tu objetivo principal es agendar citas para los pacientes. PERSONALIDAD: - Habla en español mexicano, cálido y profesional - Eres amable, paciente y empática - Siempre termina con "¡Que tengas un excelente día! 🩷" SERVICIOS QUE OFRECEMOS: - Diseño de Sonrisa - Ortodoncia (brackets y alineadores) - Blanqueamiento Dental - Implantes Dentales - Limpieza Dental Profunda - Carillas Estéticas - Evaluación gratuita (para nuevos pacientes) HORARIOS: - Lunes a Viernes: 9:00 AM – 7:00 PM - Sábados: 9:00 AM – 2:00 PM - Domingos: Cerrado PARA AGENDAR necesitas preguntar: 1. Nombre completo del paciente 2. Número de WhatsApp 3. ¿Qué servicio busca? (si no sabe, ofrece evaluación gratuita) 4. Fecha y hora preferida IMPORTANTE: Si el paciente no sabe qué servicio necesita, siempre ofrece la evaluación gratuita sin costo.
Configurar el Webhook en GHL
Este es el paso más importante — conecta GHL directamente con la tabla de citas.
LOVE Dental → Citas Dashboard
https://TU-PROYECTO.genspark.site/tables/citas ⚠️ Reemplaza TU-PROYECTO con el nombre real de tu proyecto publicado (pestaña Publish)
POST
✅ AppointmentCreate ✅ AppointmentUpdate (opcional, para reprogramaciones)
Key: Content-Type Value: application/json
Custom Body — Field Mapping
En el webhook activa "Custom Body" y pega este JSON. GHL reemplazará las variables automáticamente.
| Campo en tabla | Tipo | Valor / Variable GHL | Descripción |
|---|---|---|---|
clinica_id |
Fijo | clinica-love-001 | Siempre el mismo |
paciente_nombre |
Variable | {{contact.name}} | Nombre completo del contacto |
fecha |
Variable | {{appointment.startTime}} | Formato YYYY-MM-DD |
hora |
Variable | {{appointment.startTime}} | Formato HH:MM |
hora_fin |
Variable | {{appointment.endTime}} | Formato HH:MM |
servicio |
Variable | {{appointment.title}} | Nombre del servicio en GHL |
estado |
Fijo | pendiente | Siempre entra como pendiente |
origen |
Fijo | voice | Activa el badge ⚡ en dashboard |
ghl_appointment_id |
Variable | {{appointment.id}} | ID único en GHL |
notas |
Variable | {{contact.phone}} | Teléfono + notas adicionales |
{
"clinica_id": "clinica-love-001",
"paciente_nombre": "{{contact.name}}",
"paciente_id": "{{contact.id}}",
"fecha": "{{appointment.startTime | date: 'YYYY-MM-DD'}}",
"hora": "{{appointment.startTime | date: 'HH:mm'}}",
"hora_fin": "{{appointment.endTime | date: 'HH:mm'}}",
"servicio": "{{appointment.title}}",
"estado": "pendiente",
"origen": "voice",
"doctor_nombre": "Dra. [Nombre Apellido]",
"ghl_appointment_id": "{{appointment.id}}",
"notas": "⚡ Voice AI · {{contact.phone}}{{contact.email | prepend: ' · '}}",
"precio": 0
}
Tester en vivo
Simula un webhook de GHL y verifica que aparece en el dashboard en 30 segundos.
Test con cURL (alternativa)
Si prefieres probar desde terminal o Postman.
curl -X POST https://TU-PROYECTO.genspark.site/tables/citas \ -H "Content-Type: application/json" \ -d '{ "clinica_id": "clinica-love-001", "paciente_nombre": "Test cURL Voice AI", "fecha": "2026-05-22", "hora": "10:00", "hora_fin": "11:00", "servicio": "Evaluación Gratuita", "estado": "pendiente", "origen": "voice", "ghl_appointment_id": "ghl-curl-test-001", "notas": "⚡ Prueba manual con cURL", "precio": 0 }'
Schema completo — tabla citas
Referencia de todos los campos disponibles en la tabla.
{
"clinica_id": "text", // "clinica-love-001" — SIEMPRE IGUAL
"paciente_id": "text", // ID del paciente (puede estar vacío)
"paciente_nombre": "text", // "María González" — REQUERIDO
"doctor_id": "text", // "doc-001" (opcional)
"doctor_nombre": "text", // Nombre del doctor
"fecha": "text", // "2026-05-22" — REQUERIDO
"hora": "text", // "10:00" — REQUERIDO
"hora_fin": "text", // "11:00"
"servicio": "text", // "Diseño de Sonrisa" — REQUERIDO
"estado": "text", // "pendiente" | "confirmada" | "cancelada"
"origen": "text", // "voice" ← activa el badge ⚡
"ghl_appointment_id": "text", // ID único de GHL
"notas": "text", // Notas / teléfono
"precio": 0 // number, en MXN
}
Checklist de integración
Marca cada paso conforme lo completes. Se guarda automáticamente.