Sobre este proyecto
it-programming / artificial-intelligence-1
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