Calidad · checklist
Seguridad y deploy, antes de salir en vivo.
Lo que se revisa antes de que un bot hable con clientes reales. El bot toca plata, datos personales y la reputación de la tienda, así que nada sale en vivo sin esta lista en verde.
Hay dos columnas de estado: lo que ya cumple esta demo y lo que se exige al bot real en producción (WhatsApp Business Platform, Google Sheets y Mercado Pago).
1. Mensajes de WhatsApp
- ProducciónWebhook firmado. Cada mensaje que llega de Meta se verifica con la firma
X-Hub-Signature-256(HMAC del cuerpo con el secreto de la app). Si no coincide, se descarta. - ProducciónSin duplicados. Se procesa cada mensaje una sola vez (por su id), aunque Meta lo reintente. Se responde 200 enseguida y se procesa en cola.
- ProducciónLímites por cliente. Tope de mensajes por número para frenar abusos, y alerta de gasto en la cuenta de Meta.
- DemoMensajes con tope de largo. El texto se corta a 300 caracteres antes de procesarlo.
2. Respuestas del bot
- DemoNo inventa. Precios, stock y políticas salen del catálogo y de las reglas de la tienda. Si no sabe, deriva a una vendedora (batería: casos "Trampa").
- DemoResiste instrucciones del cliente. "Ignorá tus instrucciones…" no cambia lo que hace el bot (caso #40 de la batería).
- ProducciónEl modelo de IA no decide plata. El LLM entiende el mensaje y elige una herramienta de una lista cerrada (consultar stock, cotizar envío, armar pedido). Los montos los calcula el sistema.
- ProducciónTope de uso del modelo. Máximo de tokens por respuesta y de gasto mensual, con alerta.
- DemoCriterios y batería en cada cambio. Los 20 escenarios Gherkin y las 40 preguntas corren en el CI. Un cambio que rompe uno no se publica.
3. Pagos
- ProducciónEl link se crea en el servidor con los precios del catálogo, nunca con un monto que venga del chat.
- ProducciónNotificaciones de Mercado Pago verificadas. Se valida la firma
x-signature, se consulta el pago por API antes de marcar el pedido como pagado, se compara el monto y cada aviso se procesa una sola vez. - DemoNingún dato de tarjeta en el chat. El pago va siempre por el link. En la demo, la pantalla de pago es propia, dice que es simulada y no usa la marca de Mercado Pago.
4. Datos personales (Ley 25.326)
- DemoDatos mínimos. Sólo nombre, y dirección si hay envío. Nada de DNI. En la demo los datos no se guardan: ni la conversación queda en el navegador.
- ProducciónAviso de privacidad en el primer mensaje y en la web de la tienda (ejemplo abajo).
- ProducciónRetención definida. Las conversaciones se borran a los 12 meses. Los logs no guardan datos personales ni tokens.
- ProducciónPlanilla protegida. La cuenta de servicio sólo accede a esa planilla. Las escrituras van como texto, para que nadie pueda meter fórmulas.
Aviso de privacidad de ejemplo
"Hola, soy el asistente virtual de Lote 14. Para responderte uso los datos de esta conversación. Si hacés un pedido te pido sólo tu nombre y, si hay envío, la dirección. No compartimos tus datos con terceros salvo el correo o la moto que lleva tu pedido. Podés pedirnos verlos, corregirlos o borrarlos cuando quieras escribiendo BORRAR."
Es orientativo, no asesoramiento legal: el texto final lo revisa la tienda.
5. Secretos y cuentas
- DemoSin secretos en el repo.
.env*está ignorado desde el primer commit y existe un.env.examplesin valores. La demo no usa claves. - ProducciónSecret manager. El token de WhatsApp, el secreto de la app, la clave del modelo, el token de Mercado Pago y la cuenta de servicio de Google van en el gestor de secretos del hosting, nunca en el código.
- ProducciónLas cuentas son de la tienda. Meta, Mercado Pago, Google y el hosting están a nombre de la tienda, con 2FA. Juan entra como colaborador.
6. Deploy
- DemoHeaders de seguridad. CSP sin scripts de terceros, Trusted Types,
nosniff,no-referrery sin indexar (noindex). - DemoSin cookies ni analytics de terceros.
- DemoCI en cada cambio. Lint, tests, batería y criterios. Se mergea sólo con CI verde, por PR.
- DemoVuelta atrás definida. Desde el panel de Cloudflare Pages se vuelve al deploy anterior en un clic.
- ProducciónMonitoreo. Alerta si el webhook falla o si las derivaciones se disparan. Un interruptor para apagar el bot y responder a mano.
- ProducciónBackup de la planilla y prueba de restauración antes de salir en vivo.
Límites conocidos de la demo
- El motor es por reglas, sin IA, para que la demo sea predecible y sin costo. En producción se usa un modelo de lenguaje con las mismas reglas, criterios y batería.
- El horario no contempla feriados.