Saltar al contenido
Todos los artículos

Construir un asistente de IA para WhatsApp de principio a fin: lo que hace falta más allá de la demo

Una demo que responde un mensaje de WhatsApp con IA se hace en una tarde. Un asistente al que un negocio de hostelería le confíe sus huéspedes necesita más: responder solo lo que sabe, actuar en tus sistemas sin sorpresas, reconocer cuando no sabe algo y mejorar con las respuestas de tu equipo. Así construí StillAnswer, el asistente que funciona para una escuela de surf con hostel, y esto es lo que aprendí.

11 min de lectura

1. El problema real: las mismas preguntas, todo el día

En hostelería, la mayoría de mensajes son las mismas veinte preguntas: a qué hora es el check-in, si hay aparcamiento, si se puede añadir una clase, cuánto cuesta alquilar la tabla. El equipo las responde entre check-ins y clases de surf, a menudo tarde y a menudo en un idioma que habla a medias. Quien escribe por WhatsApp espera respuesta ya.

Así que el objetivo no es un chatbot que hable de todo. Es un asistente que responde las preguntas que tu equipo ya ha respondido bien, en el idioma del huésped, a cualquier hora, y pasa el resto a una persona sin hacer ruido. Ese enfoque decide todo el diseño que sigue.

2. El canal: un número de empresa a través de un proveedor

El asistente habla con los huéspedes a través de la WhatsApp Business Platform, a la que llegas mediante un proveedor como Twilio o Azure Communication Services. Dos reglas de la plataforma marcan todo el diseño. Cuando un huésped escribe, se abre una ventana de atención de 24 horas en la que puedes responder libremente. Fuera de esa ventana solo puedes enviar plantillas de mensaje aprobadas antes, por ejemplo un recordatorio de reserva.

Así que el asistente tiene que saber en qué modo está. Dentro de la ventana responde con texto libre; fuera, envía una plantilla o deja el seguimiento a tu equipo. Prepara las plantillas pronto: necesitan aprobación, y la aprobación lleva un tiempo que no quieres gastar en la semana del lanzamiento.

3. El webhook: comprobar, confirmar, agrupar

Cada mensaje llega como webhook. Lo primero es comprobar la firma del proveedor; con Twilio es la cabecera X-Twilio-Signature, un HMAC sobre la URL y los parámetros con tu auth token. Todo lo que no tenga una firma válida se descarta, porque si no, cualquiera que encuentre la URL puede hablar con tu agente y con tus herramientas.

Después, confirma rápido y haz el trabajo de forma asíncrona, y haz el procesamiento idempotente por id de mensaje, porque los proveedores reintentan. Una lección de producción: los huéspedes escriben a ráfagas. «Hola» – «somos 3» – «¿podemos ir el viernes?» llegan en segundos. Una pausa corta que agrupa esos mensajes en una sola pregunta da una respuesta mucho mejor que tres respuestas a tres fragmentos.

ts
import twilio from "twilio";

export async function onMessage(req: Request) {
  const params = Object.fromEntries(new URLSearchParams(await req.text()));
  const valid = twilio.validateRequest(
    process.env.TWILIO_AUTH_TOKEN!,
    req.headers.get("x-twilio-signature") ?? "",
    "https://assistant.example.com/webhook", // the exact public URL
    params,
  );
  if (!valid) return new Response("forbidden", { status: 403 });

  await queue.add({ id: params.MessageSid, from: params.From, text: params.Body }); // idempotent by id
  return new Response("<Response/>", { headers: { "content-type": "text/xml" } });
}

4. El agente: conocimiento aprobado, el idioma del huésped

El agente recibe tres cosas en su contexto: las normas de la casa (tono, lo que nunca puede decir, cuándo escalar), la base de conocimiento aprobada y la conversación reciente. Responde en el idioma en que escribe el huésped, y en un hostel eso pueden ser cinco idiomas antes de comer. Funciona con Gemini, ChatGPT o Claude; el modelo es un ajuste, no el producto.

La regla más importante es negativa: si la respuesta no está en el conocimiento aprobado, no improvisa. Una respuesta segura y equivocada sobre precios o disponibilidad cuesta más confianza que un breve «lo consulto con el equipo». Lo pruebo con un conjunto fijo de preguntas, incluidas algunas que el agente debe rechazar, cada vez que cambian el conocimiento o el modelo.

Del mensaje del huésped a una respuesta aprobada, una acción o un traspaso, y de vuelta a la base de conocimiento. Haz clic para verlo a tamaño completo.
Arquitectura de StillAnswer: un huésped escribe por WhatsApp; el mensaje llega al webhook a través de Twilio y se comprueba la firma; una pausa corta agrupa los mensajes rápidos; el agente de IA responde con la base de conocimiento aprobada y usa tus herramientas para consultar y cambiar; si no sabe responder, una escalada avisa al equipo con un enlace; el equipo responde en la bandeja y un clic añade la respuesta al conocimiento; la respuesta vuelve al huésped a través de Twilio.

5. Herramientas: consultar, y cambiar solo con un sí

La diferencia entre un bot de preguntas frecuentes y un asistente es que el asistente puede actuar: consultar una reserva o un pedido, comprobar disponibilidad, registrar una solicitud de cambio. Lo hace con tus propias herramientas, definidas con function calling, cada una estrecha y con entradas claras.

Leer es libre; cambiar, no. Antes de cualquier cambio, el asistente repite en palabras sencillas lo que va a hacer y espera el sí del huésped, y la propia herramienta se niega a escribir sin esa confirmación. Los pagos y reembolsos se quedan en tus sistemas actuales y con tu equipo. Un asistente que puede mover dinero con un mensaje de chat es un riesgo, no una función.

6. Conocer sus límites: el camino de escalada

Cuando el asistente no sabe responder, el huésped nunca debe notar un callejón sin salida. Le dice que el equipo lo va a revisar y le contestará, y en ese mismo momento avisa a tu equipo por email y por WhatsApp con un enlace directo a la conversación. Quien lo coge ve todo el chat, no un fragmento reenviado.

Pon un reloj a cada escalada. Si nadie ha respondido pasado un tiempo, la alerta vuelve a salir o va a otra persona. El peor resultado no es que la IA no supiera algo; es que al huésped se le prometió una respuesta que nunca llegó.

7. El ciclo de aprendizaje: las respuestas del equipo se vuelven conocimiento

Cada escalada es un hueco en la base de conocimiento, así que no debería acabar con un solo huésped atendido. Cuando alguien del equipo responde, la pregunta se convierte en una sugerencia con su respuesta ya rellenada, y un clic la añade al conocimiento. En la escuela de surf, el conocimiento nuevo solo entra en vigor después de que un responsable lo apruebe, para que una respuesta escrita con prisa no se convierta en la verdad oficial.

Este ciclo es lo que hace que el asistente mejore cada semana sin que nadie escriba unas preguntas frecuentes. El equipo sigue haciendo lo que ya hace, responder a los huéspedes, y el asistente aprende de las respuestas que alguien ha validado.

8. La bandeja del equipo y la operación real

El equipo necesita un lugar para leer todos los chats, responder en persona y pausar la IA en una sola conversación, por ejemplo cuando un huésped está molesto o una reserva necesita un trato humano. Pausar por chat importa más que un interruptor general para todo el asistente.

Para operarlo hay dos formas. Con tus propias cuentas, aportas las claves del proveedor y de IA y yo te guío en la configuración. Todo incluido, pongo el número y hago toda la configuración, incluida la aprobación de WhatsApp Business y las plantillas. En ambos casos, guarda solo lo que la conversación necesita, fija un plazo de conservación y di a los huéspedes en el primer mensaje que hablan con un asistente de IA y cómo llegar a una persona.

Conclusión

Un buen asistente para WhatsApp responde solo lo que sabe, actúa solo con un sí, pasa el caso con todo el chat y aprende de las respuestas que aprueba tu equipo.

Más artículos

    Hablemos

    Cuéntame qué estás construyendo; te respondo en 1 o 2 días laborables.

    Dominik Heinrich
    Empresa
    MADO Consulting

    Disponible en todo el mundo en remoto. Presencial bajo petición, según el país.

    Te respondo en 1 o 2 días laborables. Huecos libres: mira el calendario

    Abre aquí el calendario de reservas de Calendly. Al cargarlo se envían datos a Calendly (ver aviso legal).