Cómo construí GoEasy.Chat: lo que reutilicé y lo que escribí
Las decisiones detrás de una bandeja de WhatsApp para equipos: un motor abierto, una dirección por cliente, registro de autoservicio y las reglas de WhatsApp.
- Producto
- GoEasy.Chat
- Sector
- Software de atención por WhatsApp
- Ubicación
- San José, Costa Rica
- Año
- 2026

Por qué no escribí un motor de chat
Una bandeja compartida de WhatsApp necesita conversaciones, agentes, etiquetas, notificaciones y una forma de mantenerlo todo sincronizado. Son muchas piezas, y una herramienta de código abierto llamada Chatwoot ya las tenía funcionando. Así que la primera decisión fue qué tomar prestado.
Probé Chatwoot primero con mis propios clientes. El motor era sólido. El problema eran las pantallas: la gente se perdía en ellas, y conectar un número de WhatsApp con Meta era más de lo que la mayoría podía hacer sola. Así que conservé el motor y cambié las pantallas. Los desarrolladores le llaman backend headless, es decir, sin pantallas propias: Chatwoot guarda y mueve los datos, y GoEasy.Chat es lo que usan los clientes.
Esa decisión tiene un costo: hay dos sistemas que mantener alineados. Mi aplicación envía las solicitudes de API del navegador hacia Chatwoot por medio de una pequeña ruta intermedia propia. A cambio, el motor corre en un servidor propio y las pantallas que los clientes usan a diario son código nuestro.

Una dirección para cada cliente
Cada negocio que se registra recibe su propia dirección, como sunegocio.goeasy.chat. Detrás hay un espacio de trabajo separado en el motor, con sus propios agentes, contactos y conversaciones. Una sola copia del código atiende a todos. A este modelo se le llama multi-tenant: varias empresas, una sola aplicación.
El cliente elige la dirección en el formulario. Debe tener entre dos y treinta caracteres, solo letras minúsculas, números o guiones, no puede ser una palabra reservada y no puede estar ya en uso. El formulario lo revisa mientras la persona escribe, y el servidor lo vuelve a revisar antes de crear nada.
El costo real del software multi-tenant es que un error puede alcanzar a todos los clientes. Por eso, antes de que llegue el primero, hay que decidir cómo se mantiene separado a cada cliente y probar esa frontera. La mía es la dirección más el espacio de trabajo que hay detrás, y pruebas automáticas cubren cómo se resuelve una dirección.
El registro también es parte del producto
El registro avanza en cuatro pasos: primero los datos de la empresa, luego el pago, después WhatsApp y al final la confirmación. Pasé la creación de la cuenta al paso del pago, para que quien se detenga a medias igual tenga su usuario. El registro es de autoservicio, así que un negocio no tiene que hablar conmigo para empezar.
La prueba dura 14 días. La pantalla de pago dice con claridad que hoy no se cobra nada y muestra la fecha del primer cobro. Los datos de pago se ingresan en el checkout de Paddle, no en nuestros formularios. Paddle es el comerciante registrado (merchant of record): es el vendedor legal de la suscripción.
Después del pago, la aplicación hace la configuración sola. Crea el espacio de trabajo y el administrador, registra el enlace con el que el motor avisa a nuestra aplicación de las conversaciones nuevas y envía un correo de bienvenida. El último paso conecta WhatsApp y se puede omitir para terminarlo después desde el panel de administración.

Las reglas de WhatsApp moldean las pantallas
WhatsApp no es un canal neutro. Cuando un cliente lleva más de 24 horas sin escribir, el negocio solo puede volver a contactarlo con una plantilla, un mensaje que Meta aprobó de antemano. GoEasy.Chat marca esas conversaciones como expiradas y muestra un aviso que lleva a la lista de plantillas. El agente no tiene que contar las horas por su cuenta.
Las plantillas necesitan la aprobación de Meta, y esa decisión es de Meta, no nuestra. Al conectar WhatsApp, la aplicación envía cuatro plantillas iniciales, cada una en español e inglés, para que el negocio tenga algo que enviar apenas Meta las apruebe. La página de plantillas muestra el estado de cada una y tiene un botón para sincronizar.
Otras dos reglas también moldearon el producto. El número del negocio puede seguir funcionando en el teléfono, porque el registro de Meta tiene un modo llamado coexistencia. El número debe llevar al menos siete días activo en la aplicación WhatsApp Business, y el registro lo avisa antes de empezar. Y los navegadores graban las notas de voz en formatos que WhatsApp rechaza, así que la aplicación convierte cada grabación a MP3 primero.

Reglas de asignación que un dueño pueda leer
La primera pregunta sobre una bandeja compartida es quién responde un mensaje nuevo. La aplicación decide en un orden fijo. Si el contacto tiene un responsable asignado, el chat va a esa persona. Si no, vuelve al agente que atendió al cliente la última vez. Si tampoco aplica, rota por el equipo en turnos, lo que se llama round-robin.
La rotación no mira quién está conectado. La pantalla de configuración lo dice con palabras sencillas, y un administrador puede apagarla. Es simple y predecible, pero no es astuta. Un equipo que trabaja por turnos debería apagarla y repartir las conversaciones manualmente, entre personas o por equipos.
Los roles son pocos: los administradores configuran, los agentes responden y existe un tercer rol para nosotros, como operadores del servicio. Ocho temas de ayuda dentro de la aplicación, entre ellos asignaciones y roles, están en español e inglés.

Primero español, luego inglés, y 13 páginas
El producto habla español e inglés: el sitio, la aplicación y los temas de ayuda. Quien visita el sitio llega al español en la dirección principal y al inglés bajo /en. Dentro de la aplicación, cada usuario elige su idioma en la barra lateral.
Para las búsquedas agregué trece páginas en español: diez países, entre ellos Costa Rica, México y Colombia, y tres industrias: clínicas, tiendas en línea e inmobiliarias. Cada página describe un problema común, muestra cómo lo atiende la bandeja y responde dos preguntas frecuentes en un formato que los buscadores pueden leer. Son páginas sencillas y no afirmo nada sobre su posición en los resultados.
Los videos de demostración también son código. Los escribí en Remotion, una herramienta que genera video a partir de componentes de React, así que cada video existe en español y en inglés desde la misma fuente.

Lo que le diría a un dueño de negocio
- Reutilice un motor probado y dedique su esfuerzo a las pantallas y los pasos que sus clientes sí tocan.
- Decida cómo se mantiene separado a cada cliente antes de que se registre el primero, y pruebe esa frontera.
- Deje que el cliente se registre por su cuenta, pero que pueda detenerse a medias y aun así tener un usuario funcionando.
- Aprenda primero las reglas de la plataforma: la ventana de 24 horas de WhatsApp y la aprobación de plantillas moldean todo el producto.
- Escriba con palabras claras cómo se asigna el trabajo y muestre esas palabras en la pantalla de configuración.
Tecnología
- Next.js
- React
- TypeScript
- Tailwind CSS
- Chatwoot
- Paddle
- next-intl
- Vitest
- Remotion
- Bun