Evaluando propuestas

Proyecto Automatización de Turnos por Whatsapp

Publicado el 06 Julio, 2025 en Programación y Tecnología

Sobre este proyecto

Abierto

Proyecto Integral Automatizado de Turnos  – Guía desde cero
🎯 objetivo general
construir un sistema inteligente y autónomo que:

automatice la gestión de turnos virtuales y presenciales.

Administre pagos, recordatorios, cancelaciones y reprogramaciones.

Use un IA Agent para interpretar mensajes y acompañar la conversación como si fuera Celeste.

Reduzca el trabajo manual al mínimo.

Mantenga una experiencia amorosa, fluida y sin fricciones para las familias.

🧩 componentes principales
n8n como motor de automatización.

Google Calendar como fuente de verdad para la disponibilidad.

PostgreSQL para persistencia de estados, pagos y turnos.

EvolutionAPI (o similar) para conexión con WhatsApp.

Mercado Pago para pacientes de Argentina.

PayPal para pacientes internacionales.

IA Agent con memory y tools, integrado en el flujo, que interpreta, decide y actúa.

Cron jobs automáticos para limpieza, recordatorios y seguimientos.

🧭 flujo general de una consulta
paciente escribe al whatsapp de celes.

El sistema reconoce su número, carga su estado anterior y lo interpreta con el IA Agent.

Según lo que el paciente pide (turno virtual, presencial, info, dudas), el IA:

Muestra menú de opciones.

Si elige un tipo de consulta, consulta disponibilidad en Google Calendar.

Muestra 3 turnos posibles.

Espera la selección.

Genera el link de pago.

Espera pago hasta 2 horas.

Confirma el turno y lo agenda.

Si no paga → turno liberado automáticamente.

Si paga → se guarda como confirmado, se envía link de Meet.

24 hs antes del turno → se envía recordatorio automático.

Después del turno → se puede automatizar un mensaje de cierre y agradecimiento.

Tener una parte donde solo pueda interactuar el admin con el paciente sin la intervencion de la automatización

🧠 funcionalidades que debe tener
✅ gestión de estados conversacionales
estado por paciente, para saber en qué parte del flujo está:

sin_estado

esperando_servicio

eligiendo_turno_virtual

eligiendo_turno_presencial

esperando_pago

turno_confirmado

esperando_reprogramacion

bloqueado_temporalmente (por error o abuso)

➡ guardado en estado_conversacion (telefono, estado, contexto, actualizado_en)

✅ ia agent – componente central
🔧 tools disponibles:

consultar google calendar

leer y escribir en postgresql

enviar mensajes por http (a whatsapp)

generar links de pago (mp / paypal)

cancelar, reagendar y modificar turnos

resetear estado de conversación

leer logs de mensajes previos

🧠 capacitado para entender:

texto libre de las pacientes (errores, dudas, emojis, audio transcrito)

instrucciones administrativas de celeste (“cancelá todos los de mañana”)

situaciones complejas (turno vencido, paciente se arrepintió, no pagó)

✅ turnos temporales y confirmación
cuando se muestran los 3 turnos:

se guardan en la tabla turnos_temporales (telefono, turnos, creado_en, expiracion)

el sistema espera un número del 1 al 3.

Se filtra el turno elegido.

Se genera link de pago y se guarda en pagos_pendientes (telefono, fecha, tipo, link, expiracion)

Una vez abonado → se pasa a turnos_confirmados.

✅ Confirmación y Acciones Posteriores
Al confirmar:

Se crea evento en Google Calendar (con nombre, Meet, etc).

Se envía link al paciente.

Se marca como pagado = true y tipo = virtual/presencial.

Se etiqueta en WhatsApp con una label (ej: “Turno confirmado”).

Se programa recordatorio automático 24 hs antes.

✅ Recordatorios
Cron job diario a las 9 am:

Busca turnos de las próximas 24 hs.

Manda mensaje tipo:

"Hola! Te recordamos que mañana tenés tu consulta con Celeste a las 13:30hs. Este es tu link de Meet: [link]"

✅ Cancelaciones / Reprogramaciones (Paciente o admin)
El sistema debe poder:

Cancelar un solo turno → lo libera del calendar y lo elimina.

Cancelar todos los turnos de un día → manda mensaje a cada paciente afectado con opción de reprogramar.

Cancelar un turno específico por nombre o teléfono.

Celeste puede mandar: “cancelá todos los del martes” y el sistema actúa.

Los turnos cancelados se marcan con cancelado = true.

✅ Recuperación de Turnos
El paciente puede pedir:

“¿Cuándo tengo mi turno?”

“¿Podés pasarme el link otra vez?”

“No sé si pagué”

El IA Agent responde leyendo la tabla turnos_confirmados:

"Tu turno está confirmado para el martes 9 a las 14:30hs. Acá va el link: [link]"

✅ Casos de error contemplados
Paciente manda texto en lugar de número → IA explica qué debe hacer.

Paciente abandona la conversación → después de 48 hs sin interacción, se resetea su estado.

Paciente dice ‘no puedo ese día’ → IA busca otras fechas sin necesidad de volver al inicio.

Paciente paga fuera de tiempo → IA detecta si el turno aún está libre y lo confirma. Si no, propone nuevos turnos.

Paciente paga 2 veces → IA avisa: "Ya tenés tu turno confirmado, no hace falta volver a pagar 😊"

🗃️ estructura de base de datos
estado_conversacion
sql
copiar
editar
telefono text primary key,
estado text,
contexto jsonb,
actualizado_en timestamp
turnos_temporales
sql
copiar
editar
telefono text primary key,
turnos jsonb,
creado_en timestamp,
expiracion timestamp
pagos_pendientes
sql
copiar
editar
telefono text primary key,
fecha timestamp,
tipo text,
link text,
expira_en timestamp
turnos_confirmados
sql
copiar
editar
telefono text,
fecha timestamp,
tipo text,
link_meet text,
pagado boolean default false,
cancelado boolean default false,
creado_en timestamp
🚀 extras recomendados
💡 análisis automático de disponibilidad
cada noche, ia evalúa la semana y si ve que hay pocos turnos disponibles, avisa a celeste para que libere más.

🎯 Dashboard de turnos (opcional)
Una pequeña interfaz web para ver los turnos confirmados del día, pagos pendientes, y cancelaciones. Solo para uso interno.

🔐 Seguridad
Si alguien abusa o repite errores → se marca como bloqueado_temporalmente

Los turnos se liberan automáticamente a las 2 hs si no hay pago.

Toda interacción queda registrada con timestamp.

Contexto general del proyecto

www.celespueri.com.ar www.talleres.celespueri.com.ar

Categoría Programación y Tecnología
Subcategoría Inteligencia Artificial
Tamaño del proyecto Medio
¿Es un proyecto o una posición? Un proyecto
Disponibilidad requerida Según se necesite

Plazo de Entrega: No definido

Habilidades necesarias