Caso práctico
Torga Optical – asistente de IA en WhatsApp
Torga Optical es una cadena de óptica minorista que opera una red de tiendas en Sudáfrica, Namibia, Lesoto y Esuatini. La empresa ofrece exámenes de la vista, gafas graduadas, gafas de sol y lentes de contacto, y combina los servicios de optometría en tienda con una tienda en línea completa.
Su plataforma de eCommerce está construida sobre nopCommerce, donde cada tienda funciona como una ubicación independiente con su propia agenda de citas, su personal y su disponibilidad de producto. Los clientes pueden explorar el catálogo, reservar un examen de la vista en su sucursal preferida y seguir el progreso de su pedido en línea.
Con la comunicación con los clientes desplazándose cada vez más a WhatsApp, Torga Optical necesitaba que sus servicios digitales - citas, seguimiento de pedidos, promociones y contacto con la tienda - estuvieran disponibles directamente en ese canal, respaldados por los mismos datos en vivo con los que sus tiendas trabajan cada día.
El proyecto
eyeRobot es un asistente conversacional de autoservicio que lleva la óptica del cliente a WhatsApp. Construido sobre el framework Hubot y conectado a Rocket.Chat Omnichannel, el bot resuelve de principio a fin las consultas más habituales de los clientes - reservar una cita para un examen de la vista, consultar un pedido, descargar vales promocionales y contactar con la sucursal correcta - sin que un agente humano tenga que atender antes la conversación.
Cada respuesta que da el bot son datos en vivo: se comunica directamente con la tienda nopCommerce del cliente a través de la API REST, de modo que las citas, los pedidos, las tiendas y los productos están siempre sincronizados con el back office.
El reto
El cliente opera una gran red de ópticas en Sudáfrica, Namibia, Lesoto y Esuatini. Las consultas rutinarias - «¿cuándo puedo pasar a hacerme un examen de la vista?», «¿están listas mis gafas?», «¿cuál es el número de mi sucursal?» - llegaban por un único canal de WhatsApp y el equipo de atención al cliente tenía que clasificarlas a mano. El objetivo era automatizar esta primera línea de contacto, derivar el resto a la tienda correcta y hacerlo dentro del canal que los clientes ya usan cada día.
La solución
Entregamos un chatbot en Node.js que funciona como agente de Rocket.Chat Omnichannel y presenta un menú numerado y adaptado a WhatsApp. Una máquina de estados por conversación registra en qué punto del flujo está cada cliente, valida cada entrada y ofrece siempre una vuelta al menú principal.
Al cliente se le reconoce automáticamente por el número de teléfono de la conversación de WhatsApp: el bot normaliza el número en varios formatos, deduce el país a partir del prefijo telefónico y busca el perfil en nopCommerce - incluida la tienda preferida del cliente. Sin inicio de sesión, sin formularios de pedido, sin una aplicación aparte que instalar.
Capacidades principales
- Reserva de citas - un flujo guiado a través de provincia → tienda → tipo de cita → fecha → huecos de disponibilidad en vivo, obtenidos en tiempo real de los endpoints de reserva de nopCommerce. Los datos de perfil que falten (nombre, correo electrónico, fecha de nacimiento) se recogen en el chat, los confirma el cliente y se envían junto con la reserva.
- Estado del pedido - consulta instantánea por número de pedido contra la API de pedidos de nopCommerce, con el estado traducido a lenguaje claro.
- Chatea con tu tienda - el bot identifica la tienda preferida del cliente, comprueba si el agente de esa tienda está conectado en ese momento y le transfiere en vivo la conversación de WhatsApp a través de la API de reenvío de Rocket.Chat Livechat. El cliente sigue conversando en la misma ventana.
- Vales en WhatsApp - el catálogo de vales específico de cada país se lee desde nopCommerce y el vale seleccionado se entrega al cliente como archivo PDF adjunto mediante un mensaje de plantilla aprobado de WhatsApp Business.
- Llamar a mi tienda - devuelve el número de teléfono y los datos de la sucursal en la que está registrado el cliente.
- Atención al cliente y ayuda - datos de contacto, horario, canales sociales y unas preguntas frecuentes breves, siempre a una pulsación de distancia.
Aspectos técnicos destacados
- El contexto de la conversación está aislado por sala, de modo que cientos de chats de WhatsApp en paralelo mantienen cada uno su propio estado, sus reintentos y sus reglas de validación.
- Validación estricta de las entradas para fechas (DD/MM/AAAA, además de «hoy» / «mañana», sin fechas pasadas, máximo cuatro semanas por delante), correo electrónico, números de teléfono y fechas de nacimiento - las respuestas no válidas se vuelven a pedir en lugar de romper el flujo.
- Soporte multipaís basado en el prefijo telefónico, asociado al país y la tienda correctos de nopCommerce.
- Autenticación basada en tokens contra la API de nopCommerce con reautenticación automática, y renovación automática del token de Rocket.Chat al caducar.
- Despliegue en contenedores con Docker Compose, incluida una barrera de arranque que espera hasta que la API de Rocket.Chat sea accesible antes de que el bot se conecte, y una política de reinicio automático.
Tecnologías
Node.js 22, Hubot, CoffeeScript, Rocket.Chat (adaptador Omnichannel / Livechat y API REST), mensajería de plantillas de WhatsApp Business, API REST de nopCommerce, Axios, Docker y Docker Compose.
Resultado
Los clientes ahora reservan citas, hacen seguimiento de sus pedidos y obtienen vales 24/7 directamente desde WhatsApp, mientras que las conversaciones que realmente necesitan una persona se derivan automáticamente a la sucursal correcta y solo cuando hay alguien conectado. La carga rutinaria del equipo central de atención al cliente baja y cada interacción se apoya en los mismos datos de nopCommerce con los que ya trabajan las tiendas.
Tecnologías
Node.js- Hubot
- CoffeeScript
- Rocket.Chat
- Rocket.Chat Omnichannel / Livechat API
WhatsApp Business API
nopCommerce
nopCommerce REST API
REST API Integration- Axios
Docker
Docker Compose