Saltar al contenido
</>
Volver
Atención por WhatsApp con IAProducción

Proyecto profesional

Asistente de Ley REP (ex Orbix)

  • Laravel
  • MySQL
  • WhatsApp Cloud API
  • DeepSeek
  • Vercel AI Gateway
  • Odoo

Problema

Las consultas sobre la Ley REP llegan por WhatsApp y se repiten: qué productos son prioritarios, quién debe declarar, cómo cumplir. Responderlas una a una consume tiempo del equipo, y los casos que sí necesitan a una persona se pierden entre las demás.

Contexto

Proyecto profesional en GreenSoft, en producción en leyrep.cl. Es el asistente virtual de Ley REP; Orbix fue su nombre anterior. Es backend puro: no tiene interfaz propia, todo lo que ve el usuario ocurre en WhatsApp. Es independiente de Dixta.

Objetivo

Orientar sobre la Ley REP con respuestas apoyadas en documentos, y derivar los casos concretos al equipo comercial con los datos necesarios para continuar la conversación.

Mi rol

  • Planifiqué la solución, definí el diseño técnico y construí el backend.
  • Implementé el webhook de WhatsApp Cloud API con validación de firma de Meta, y los flujos guiados con botones, listas y opciones numeradas.
  • Construí las respuestas con IA para preguntas abiertas: búsqueda sobre los documentos indexados y generación con DeepSeek a través de Vercel AI Gateway.
  • Integré el registro de leads en el CRM (Odoo) cuando una conversación se deriva a un ejecutivo.

Arquitectura y decisiones

  • Laravel 13 sobre PHP 8 y MySQL; es backend puro, sin frontend. La suite tiene cerca de 1.280 pruebas en Pest y corre contra MySQL.
  • El webhook solo valida y encola: firma de Meta, límite por teléfono y extracción del mensaje. La respuesta se arma en un job, porque Meta reintenta si el webhook tarda.
  • Cada mensaje pasa por una cascada de decisión: primero los flujos guiados y un árbol de intenciones; el modelo solo responde las preguntas abiertas.
  • La búsqueda documental es léxica, sin embeddings ni base vectorial: un índice local en SQLite (FTS5) sobre 116 documentos normativos.
  • El modelo es DeepSeek a través de Vercel AI Gateway, por una API compatible con OpenAI. Antes corría en un servidor propio con llama.cpp.
  • Los leads se envían a Odoo y un job reintenta los envíos fallidos. Bitrix24 se dio de baja.

Flujo de arquitectura

  1. 01WhatsApp
  2. 02Webhook: valida y encola
  3. 03Flujo guiado o IA + documentos
  4. 04Derivación + Odoo

Solución

  • Menú principal interactivo y submenú de productos prioritarios, con respuestas guiadas para las preguntas frecuentes.
  • Respuesta con IA para preguntas abiertas, apoyada en los fragmentos de los documentos normativos que recupera la búsqueda.
  • Formularios de captura dentro del chat y derivación a un ejecutivo, con registro del lead en Odoo.
  • Eliminación de datos a pedido desde el propio chat: la conversación se anonimiza en vez de borrar las filas.
  • Conjuntos de casos de referencia y comandos para evaluar recuperación, ruteo y respuestas antes de cambiar un parámetro o un modelo.

Desafíos y trade-offs

  • En un tema normativo, el riesgo no es que el modelo redacte mal sino que responda bien a quien no preguntó; por eso las respuestas se apoyan en documentos y no en lo que el modelo recuerda.
  • Evitar mensajes duplicados cuando el modelo responde lento: el webhook encola, un candado por teléfono ordena los turnos y una tabla de mensajes entrantes da la idempotencia.
  • Elegir búsqueda léxica en vez de vectorial y ajustar sus parámetros midiendo contra casos de referencia, no a ojo.
  • Cambiar de proveedor de modelo sin reescribir el sistema, manteniendo una interfaz compatible con OpenAI.

Aprendizajes

  • Medir antes de cambiar: con un conjunto de casos de referencia, una mejora deja de ser una impresión.
  • La IA aporta en la interpretación de preguntas abiertas; los flujos que capturan datos o derivan a una persona necesitan pasos explícitos.
  • Diseñar una conversación exige el mismo cuidado por jerarquía y recuperación de errores que una interfaz visual.

Resultado

En producción en leyrep.cl: responde consultas sobre la Ley REP por WhatsApp y deriva los casos comerciales al CRM. Se omiten documentos internos, credenciales y detalles operativos.