legal
Política de Privacidad
Versión 2.0 — Mayo 2026
// qué datos procesamos
El sistema gestiona turnos médicos a través de WhatsApp. Para funcionar, procesa los mensajes entrantes en tiempo real. A continuación se detalla qué se procesa, dónde y por cuánto tiempo.
| Dato | Uso | Se persiste en disco |
|---|---|---|
| Número de teléfono | Identificar al usuario y enviarle respuestas vía WhatsApp | No — solo en sesión Redis (TTL 30 min) |
| Texto del mensaje | Detección de intención (NLU con spaCy) | Sí, pero sanitizado — ver sección de almacenamiento |
| Intención detectada | Dirigir el flujo conversacional | Sí, como texto del tipo "search_professional" |
| Entidades del mensaje | Filtros de búsqueda (especialidad, fecha, zona) | Sí, sanitizadas — sin nombres ni teléfonos |
El número de teléfono del paciente solo existe en memoria durante el procesamiento del request y en la sesión Redis activa. Una vez expirada la sesión (30 minutos de inactividad), desaparece automáticamente.
// almacenamiento y retención
Desde la versión 2.0 del sistema, la anonimización ocurre en el punto de entrada — antes de que cualquier dato toque el disco. El texto que se persiste no es el mensaje original sino una versión con la información personal reemplazada.
| Componente | Qué guarda | Retención |
|---|---|---|
| Sesión Redis | Estado de conversación activa, entidades acumuladas | 30 min · automático |
| Base de datos SQLite | Turnos, profesionales, clientes registrados | Mientras sea operacional |
| Eventos de conversación | Tipo de acción (reserva, cancelación), intención detectada — sin texto ni teléfono | 7 días · automático |
| Logs ML (JSONL) | Mensaje sanitizado + intención + confianza — sin identificador de usuario | 60 días · script automático |
| CSVs rechazados | Registros de importación fallida | 30 días · script automático |
Los logs JSONL utilizados para mejorar el detector de intenciones
no contienen identificador de usuario desde la v2.0.
El campo user_id fue eliminado del esquema de logging.
No es posible vincular una línea del log con un paciente específico.
// qué no guardamos
Esto es explícito porque genera dudas frecuentes:
- El número de teléfono del paciente no se guarda en los logs de ML ni en los logs del sistema.
- El texto del mensaje no se guarda en su forma original — se reemplaza la información personal antes de persistir.
- Teléfonos mencionados dentro del texto son reemplazados por
[TEL]. - Números de documento (DNI, CUIL, CUIT) detectados en el texto son reemplazados por
[DNI]. - Nombres de profesionales en las entidades detectadas son reemplazados por
[PROFESIONAL]. - Las sesiones de Redis no se respaldan en ningún almacenamiento secundario.
- No utilizamos cookies de seguimiento ni sistemas de analytics externos.
// terceros involucrados
El funcionamiento del servicio involucra a los siguientes terceros como procesadores de datos o proveedores de infraestructura:
| Proveedor | Rol | Política de privacidad |
|---|---|---|
| Twilio | Proveedor de WhatsApp API — intermediario entre WhatsApp y el sistema | twilio.com/en-us/legal/privacy |
| Meta Platforms | Infraestructura de WhatsApp Business Platform — los mensajes transitan por servidores de Meta | whatsapp.com/legal/privacy-policy |
| Google Calendar API — gestión de disponibilidad y agenda de los profesionales | policies.google.com/privacy |
El detector de intenciones (NLU) es un modelo propio entrenado con spaCy. No se utilizan servicios externos de procesamiento de lenguaje natural como OpenAI, Anthropic u otros proveedores de LLM.
"El uso de información recibida de Google Workspace APIs cumple con la Google API Services User Data Policy, incluyendo los requisitos de Limited Use."
El acceso a Google Calendar se realiza mediante Service Account con acceso exclusivo a los calendarios de los profesionales registrados. Los datos de calendario se usan únicamente para consultar disponibilidad y gestionar turnos. No se almacenan ni comparten con terceros.
// medidas de seguridad técnicas
-
Sanitización en punto de entrada: antes de persistir cualquier dato,
el sistema reemplaza teléfonos, DNIs y nombres de profesionales
con tokens genéricos (
[TEL],[DNI],[PROFESIONAL]). - Validación de origen Twilio: cada webhook entrante verifica la firma HMAC-SHA1 de Twilio. Mensajes sin firma válida son rechazados con HTTP 403 antes de procesar.
- Rate limiting: límite de mensajes por número de teléfono con ventana deslizante. Protección contra spam y abuso.
- Sesiones con TTL: Redis con autenticación y TTL de 30 minutos. Puerto no expuesto al host — accesible solo dentro de la red Docker.
- Aislamiento de datos: cada cliente solo puede ver y gestionar sus propios turnos.
-
Enmascaramiento en logs de sistema: los logs de consola
enmascaran teléfonos antes de escribir
(
+5491112345678→+549****5678). - Retención automática: scripts de limpieza eliminan logs ML a los 60 días y archivos CSV rechazados a los 30 días.
// tus derechos
Podés ejercer los siguientes derechos sobre tus datos personales escribiendo a contacto@gaxoblanco.com. Respondemos en un plazo máximo de 15 días hábiles.
- Acceso: solicitar qué datos operacionales (turnos, perfil de cliente) están almacenados asociados a tu número.
- Rectificación: corregir datos incorrectos en tu perfil o historial de turnos.
- Eliminación: solicitar que se eliminen tus datos operacionales de la base de datos. Los logs ML no contienen identificador de usuario desde la v2.0, por lo que no es posible vincular líneas de log con un paciente específico.
- Opt-out del bot: podés bloquear el número de WhatsApp en cualquier momento para dejar de recibir mensajes del sistema. No se requiere ninguna acción adicional de tu parte.
// marco legal aplicable
Esta política se rige por la Ley 25.326 de Protección de Datos Personales de la República Argentina y sus normas reglamentarias.
| Requisito (Ley 25.326) | Estado |
|---|---|
| Período de retención definido | ✅ JSONL: 60 días · Events: 7 días · CSVs: 30 días |
| Datos mínimos necesarios | ✅ Solo se persiste lo necesario para el servicio declarado |
| Medidas de seguridad técnicas | ✅ Sanitización, Redis con auth, rate limiting, validación de firma |
| No transferencia a terceros con fines comerciales | ✅ Datos solo en infraestructura propia del servicio |
| Derecho de acceso, rectificación y supresión | ✅ Ejercible por correo electrónico — respuesta en 15 días hábiles |
El sistema gestiona turnos para distintos tipos de negocios — centros de salud, peluquerías, estudios profesionales, gimnasios, entre otros. En todos los casos, lo que se registra es la intención de búsqueda (reservar turno, cancelar, reprogramar), no datos clínicos ni información sensible del tipo de servicio. Esto no activa restricciones especiales de datos de salud bajo la normativa vigente.
// contacto
Responsable del tratamiento: Gaston Blanco
CUIT: 20-37683831-6
Buenos Aires, Argentina
contacto@gaxoblanco.com
Para consultas sobre esta política, ejercicio de derechos o reportar un incidente de privacidad, escribir al correo indicado con asunto "Privacidad — [motivo]".