- Cliente en WhatsApp → Agente (OpenClaw)
- Agente (OpenClaw) → MCP de reservas
- MCP de reservas → PostgreSQL
- Agente (OpenClaw) → Derivación a persona
- PostgreSQL → CRM del equipo
- Derivación a persona → CRM del equipo
El problema
Las consultas por WhatsApp (horarios, eventos, formas de pago, búsquedas laborales) llegaban a toda hora y las reservas para eventos se anotaban a mano en planillas. Dos sedes, un solo equipo para responder.
Qué construí
- Un agente de IA en WhatsApp que responde con el tono de la casa, toma reservas y, cuando la consulta lo supera o el cliente pide una persona, deriva al equipo con el caso resumido.
- Un servidor MCP de reservas propio: el agente no toca la base, solo puede llamar a herramientas acotadas (consultar eventos, reservar, derivar).
- Un CRM para el equipo: eventos, reservas con cupo transaccional, historial por cliente, bandeja de derivaciones, lista de ingreso para la puerta, editor de preguntas frecuentes con bandeja de “preguntas sin respuesta” y un interruptor para apagar el bot.
- La migración de los datos desde Google Sheets a PostgreSQL, con importación repetible.
Cómo funciona
El agente corre en OpenClaw, aislado en un contenedor sin puertos publicados. Tiene cinco o seis herramientas y nada más: sin shell, sin navegador, sin archivos. Toda salida del modelo se trata como dato no confiable hasta que la valida el código del servidor MCP.
Seguridad y datos personales
- Mínimo privilegio: el rol de base del bot solo puede ejecutar funciones SQL, no leer tablas.
- Documento cifrado: el bot puede escribir el documento del cliente pero no leerlo (cifrado con clave pública); una huella de un solo sentido permite detectar duplicados.
- En el CRM el documento se muestra enmascarado según el rol, y cada vista del dato completo queda auditada.
- Defensa contra inyección de instrucciones en los mensajes y, en la etapa de planillas, contra inyección de fórmulas.
- Límites de mensajes globales y por número.
- Tratamiento de datos alineado con la Ley 25.326.
Estado y resultado
En producción, abierto al público en las dos sedes. Las consultas repetitivas se responden solas a cualquier hora y las reservas quedan en una base auditable en vez de planillas.
Stack
- OpenClaw
- MCP
- Node.js
- PostgreSQL
- Next.js
- Drizzle