Cómo lanzar un compañero de IA en WhatsApp en 2026

Plan paso a paso para lanzar un compañero de IA en WhatsApp: número, personalidad, enlace de inicio, memoria, seguridad, retención sin mensajes en frío y precio.

Un personaje suave y redondeado con la cara verde luminosa saludando desde dentro de la pantalla de un teléfono.

Lo esencial

  • Los términos de WhatsApp Business de Meta, vigentes desde el 15 de enero de 2026, excluyen a los asistentes de IA como función principal fuera de una lista corta de mercados, así que la mayoría de los compañeros funcionan con un número personal de WhatsApp.
  • En whasp los usuarios siempre escriben primero: tras el registro, muestra un enlace wa.me con un mensaje prefijado que lleve un código para vincular su teléfono con su cuenta.
  • Los servidores de whasp no guardan mensajes, así que tu propio almacén contiene el historial de la conversación, el resumen acumulado y los datos que tu compañero recuerda.
  • La retención sale de bucles abiertos en la conversación, de enlaces por correo o por la app que abren el chat y de recordatorios que los usuarios piden, no de mensajes en frío.
  • Lanza con la seguridad lista desde el primer día: avisa de que es una IA, comprueba la edad en el registro, gestiona las autolesiones y respeta STOP.

Para lanzar un compañero de IA en WhatsApp, ejecútalo en un número personal de WhatsApp: la API de Business de Meta no admite asistentes de IA de propósito general en la mayoría de los mercados. Define la personalidad en el perfil del número, dale a los usuarios un enlace para que escriban primero, responde cada mensaje desde un webhook con una memoria que guardas tú y lanza con reglas de seguridad desde el primer día.

¿Por qué crear un compañero de IA en WhatsApp y está permitido?

Un compañero vive o muere según la frecuencia con la que la gente abre la conversación. Más de 3.000 millones de personas usan WhatsApp cada mes, según la llamada de resultados del primer trimestre de 2025 de Meta, tal como la recogió TechCrunch, y tu compañero llega como un contacto dentro de una app que ya abren a diario. No hay instalación, ni ficha en una tienda de aplicaciones, ni un nuevo permiso de notificaciones. El caso completo, con cifras, tiene su propio artículo.

El problema son las reglas. Los términos de WhatsApp Business de Meta, vigentes desde el 15 de enero de 2026, prohíben a los “proveedores de IA” usar la Business Platform cuando la IA es la funcionalidad principal. La página de precios de Meta los define como desarrolladores de modelos de lenguaje, plataformas de IA generativa y asistentes de propósito general. Un compañero es la propia IA, así que, según nuestra lectura, queda cubierto.

La página de Meta dice que admite proveedores de IA solo en los mercados donde la ley la obliga: Italia, Brasil, otros 29 países europeos y, desde el 15 de octubre de 2026, Turquía. Incluso allí, los mensajes de servicio solo pueden enviarse como respuesta a los usuarios, dentro de una ventana abierta de 24 horas. La página no incluye a Estados Unidos, el Reino Unido, India ni México. La regla de enero de 2026 al detalle trae la cronología.

Queda el número personal de WhatsApp. Puedes operar uno tú mismo con una librería de código abierto (el número, el teléfono y el riesgo de baneo son tuyos) o usar uno gestionado. El resto de esta guía usa whasp, que ejecuta el número en un teléfono en la nube y te da un webhook y una llamada para enviar.

¿Cómo configuras la personalidad y el número?

Un número de whasp es una cuenta real de WhatsApp, así que lleva una sola personalidad: un nombre, una línea de descripción (about) y una foto. El nombre admite hasta 25 caracteres y el about hasta 139, en ASCII simple por ahora (sin acentos ni eñes). El perfil es lo primero que ve un usuario, así que di ahí que es una IA.

curl https://api.whasp.ai/v1/numbers \
  -H "Authorization: Bearer $WHASP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "ava",
    "profile": {
      "name": "Ava",
      "about": "Una amiga IA. Habla conmigo cuando quieras.",
      "photo_url": "https://example.com/ava.jpg"
    }
  }'

Esto cobra $49. El número vuelve como active (lo habitual) o provisioning, que tarda unos 30 minutos y termina con un evento number.ready. Después apunta whasp a tu servidor. La respuesta incluye el secreto de firma, whsec_..., que se crea una sola vez y se conserva.

curl -X PUT https://api.whasp.ai/v1/webhook \
  -H "Authorization: Bearer $WHASP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://companion.example.com/whasp" }'

Si manejas varios personajes, necesitas varios números, uno por perfil.

¿Cómo empiezan los usuarios una conversación con el compañero?

Los usuarios inician el chat ellos mismos. Un número de whasp no puede abrir una conversación: un envío a alguien que nunca escribió devuelve 409 chat_not_open. Por eso el primer contacto ocurre en tu producto. Tras el registro, muestra un botón que abre WhatsApp con el mensaje ya escrito.

GET /v1/numbers/pick devuelve el número sano (healthy) con más margen y un wa_link. Pon un código de tu registro en el texto prefijado y el primer mensaje entrante te dice de quién es ese teléfono.

// Se llama cuando un usuario con sesión iniciada toca "Hablar con Ava" en tu app.
export async function chatLink(code: string): Promise<string> {
  const text = encodeURIComponent(`Hola Ava, mi código es ${code}`);
  const res = await fetch(`https://api.whasp.ai/v1/numbers/pick?text=${text}`, {
    headers: { Authorization: `Bearer ${process.env.WHASP_API_KEY}` },
  });
  if (res.ok) {
    const { wa_link } = await res.json();
    return wa_link;
  }
  throw new Error(`pick failed with ${res.status}`); // 409 no_capacity: añade un número
}

Comprueba la edad y haz que acepten tus términos antes de mostrar el enlace. Si un teléfono desconocido escribe sin código, respóndele una sola vez con un enlace para registrarse.

¿Cómo responde, recuerda y suena humano el compañero?

El compañero responde desde un webhook. Cada mensaje entrante llega en un evento message.received, firmado según Standard Webhooks. Verifícalo, responde 2xx de inmediato y después haz el trabajo lento: carga la memoria, llama a tu modelo, envía la respuesta.

import { createServer } from "node:http";
import { Webhook } from "standardwebhooks";

declare function linkPhoneToAccount(phone: string, code: string): Promise<void>;
declare function companionReply(chat: string, text: string): Promise<string[]>; // memoria + modelo

const wh = new Webhook(process.env.WHASP_WEBHOOK_SECRET ?? ""); // whsec_...
const handled = new Set<string>(); // en producción usa una tabla de la base de datos

async function send(to: string, text: string, key: string) {
  const res = await fetch("https://api.whasp.ai/v1/messages", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.WHASP_API_KEY}`,
      "Content-Type": "application/json",
      "Idempotency-Key": key,
    },
    body: JSON.stringify({ to, text }),
  });
  if (res.ok) return;
  console.error("send failed", res.status, await res.text());
}

async function handle(event: any) {
  const { chat, text } = event.data.message;
  const code = text?.match(/mi código es (\w+)/i)?.[1];
  if (code) await linkPhoneToAccount(chat, code);

  const parts = await companionReply(chat, text ?? "");
  for (const [i, part] of parts.entries()) await send(chat, part, `${event.id}:${i}`);
}

createServer(async (req, res) => {
  req.setEncoding("utf8");
  let body = "";
  for await (const chunk of req) body += chunk;

  let event: any;
  try {
    event = wh.verify(body, req.headers as Record<string, string>);
  } catch {
    res.writeHead(401).end();
    return;
  }
  res.writeHead(204).end(); // confirma primero, trabaja después

  const duplicate = handled.has(event.id);
  handled.add(event.id);
  if (event.type === "message.received" && duplicate === false) await handle(event);
}).listen(3000);

Usar el id del evento en el Idempotency-Key hace que un evento reintentado nunca envíe dos veces. Los eventos pueden llegar duplicados o desordenados, de ahí la comprobación con handled.

La memoria es tuya. Los servidores de whasp no guardan mensajes: el contenido de un mensaje entrante te llega una sola vez, en este evento. Guarda los últimos turnos, un resumen acumulado y una lista corta de datos (nombre, trabajo, personas, planes). Eso es lo que permite que Ava diga “¿Cómo te fue el viernes?” tres semanas después. La memoria de conversación cubre el esquema y los presupuestos de tokens.

El tono es de chat, no de ensayo. Divide una respuesta en dos o tres mensajes cortos, haz una pregunta a la vez y evita el Markdown. whasp envía desde un número un mensaje por vez, con aproximadamente un segundo de diferencia, así que el ritmo ya viene incluido. Cómo escribir prompts para WhatsApp incluye una plantilla de system prompt.

Maya: Salió genial, me dieron el trabajo.

Ava: Maya, eso es enorme. Felicidades.

Ava: La semana pasada temías la segunda ronda. ¿Qué terminaron preguntándote?

Un número es un teléfono manejado como lo haría una persona, así que faltan algunas cosas: indicadores de escritura, confirmaciones de lectura, notas de voz salientes, grupos y responder a un mensaje concreto. Una nota de voz que envía un usuario llega como un archivo de audio que puedes transcribir.

¿Qué reglas de seguridad y de edad debe incluir un compañero?

Un compañero necesita sus reglas de seguridad antes de su primer usuario, porque tarde o temprano se encontrará con alguien en crisis. En WhatsApp importan cuatro cosas.

  1. Avisa de que es una IA. Ponlo en la línea about del perfil y en el primer mensaje. La ley SB 243 de California, firmada en octubre de 2025, exige a los operadores de chatbots de compañía que avisen con claridad de que el chatbot es una IA siempre que una persona razonable pueda creer que habla con un humano, y siempre a los usuarios que saben menores.
  2. Comprueba la edad antes del enlace. Los Términos de servicio de WhatsApp fijan un mínimo de 13 años, o más donde lo exija la ley local. whasp no puede verificar edades. Tú sí, en el registro, antes de mostrar el enlace. El mismo resumen de California añade recordatorios de pausa para menores y la prohibición de imágenes sexualmente explícitas para ellos.
  3. Gestiona las autolesiones. La SB 243 también exige protocolos ante la ideación suicida. Detéctala, abandona el juego de rol y da una línea de ayuda del país del usuario. El código de país del teléfono en chat te dice cuál.
  4. Respeta STOP. Un STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END, QUIT o cualquier grafía de “opt out” entrante da de baja el chat automáticamente, y los envíos devuelven 403 chat_opted_out hasta que el usuario vuelva a escribir. Las peticiones corteses (“por favor, para”) te toca detectarlas a ti. Confirma una vez con "override_optout": true.

Las reglas de seguridad para compañeros de IA en 2026 convierten las leyes en una lista de comprobación. Esto no es asesoramiento legal.

¿Cómo haces que los usuarios vuelvan sin mensajes en frío?

La retención en un número que no puede escribir primero sale de tres lugares, y ninguno es un mensaje en frío.

Bucles abiertos en la conversación. Termina una sesión con algo que tenga un siguiente paso: la entrevista del viernes, el libro que acaban de empezar, la discusión que piensan resolver. Guárdalo. Cuando el usuario vuelva a escribir, la primera respuesta de Ava lo retoma. La gente vuelve a terminar una historia.

Canales que son tuyos. Tu app, el correo o una notificación push pueden llevar el mismo wa_link con un “Hola Ava, soy Maya” ya escrito. El usuario toca y escribe primero, así que no hay ningún mensaje en frío. Pide un correo en el registro para esto y para el caso de baneo que viene más abajo.

Peticiones hechas dentro del chat. Si Maya dice “escríbeme el viernes por la noche para ver cómo estoy”, tu sistema puede enviar ese mensaje más tarde. whasp acepta un envío a cualquiera que haya escrito al número y rechaza a todos los demás. Mantén estos mensajes pocos, concretos y claramente solicitados. No construyas el producto sobre mensajes que nadie pidió.

Nunca prometas a los usuarios que el compañero “te escribe primero”. No puede, y los casos de uso que mejor funcionan empiezan todos por el usuario.

¿Cuánto cobrar por un compañero y cómo planificar la escala?

Cobra fuera de WhatsApp. Vende la suscripción en tu sitio web o en tu app, vincula el teléfono a la cuenta con el código del registro y comprueba el plan en el manejador del webhook. A un teléfono sin pago se le responde una vez con un enlace para suscribirse. whasp no gestiona los pagos de los usuarios finales.

Respecto al gasto, un número de whasp cuesta $49 cada 30 días desde un saldo prepagado, para unos 100 usuarios activos (personas que escribieron en los últimos 30 días). Eso es menos de $0,50 por usuario activo al mes. La factura del modelo es la partida más grande y menos predecible, así que limita los mensajes por usuario al día.

Cada número admite 100 chats activos en 30 días, 40 chats nuevos en 24 horas y 1.500 mensajes enviados en 24 horas. Un número que supera el 80% de un límite pasa a at_risk; los cambios entre healthy, at_risk y critical llegan en eventos number.status_changed. Añade un número antes de llegar ahí: /numbers/pick envía a los usuarios nuevos al que tiene margen, y un usuario que vuelve se queda en el suyo.

Si WhatsApp banea un número, whasp lo retira y te pasa a uno de reemplazo con la misma etiqueta, el mismo perfil y el mismo periodo pagado, anunciado con number.replaced. El número nuevo empieza vacío y los chats no se trasladan. Envías a cada usuario el nuevo wa_link por correo o dentro de la app, y vuelven a escribir primero. Tu almacén de memoria lo hace indoloro: mismo usuario, mismo historial.

¿Qué debes hacer ahora?

  1. Escribe la personalidad y las reglas de seguridad, en ese orden.
  2. Añade un número y configura el webhook. POST /v1/webhook/test comprueba tu endpoint.
  3. Invita a cinco personas que conozcas y lee todas las conversaciones.
  4. Mira qué más funciona bien en WhatsApp antes de añadir funciones.

La guía de inicio rápido tiene el flujo completo, y la página de precios lista las opciones de recarga.

Preguntas

¿Puedo ejecutar un compañero de IA en la API de WhatsApp Business?

Normalmente no. Los términos de Meta vigentes desde el 15 de enero de 2026 excluyen a los proveedores de IA cuya función principal es la propia IA, salvo donde los reguladores impusieron excepciones (Italia, Brasil, otros 29 países europeos y, desde el 15 de octubre de 2026, Turquía). Incluso allí, las respuestas deben caer dentro de la ventana de atención al cliente de 24 horas.

¿Puede mi compañero de IA escribir primero a los usuarios en WhatsApp?

No en whasp. Un número solo puede enviar a personas que le han escrito, y un envío a cualquier otra devuelve 409 chat_not_open. Usa un enlace en tu app o un correo para que los usuarios escriban primero.

¿Cuántos usuarios aguanta un número de WhatsApp?

En whasp, unos 100 usuarios activos por número (personas que escribieron en los últimos 30 días), 40 chats nuevos cada 24 horas y 1.500 mensajes enviados cada 24 horas. Añade números a medida que crezcas.

¿Cuánto cuesta mantener un compañero de IA en WhatsApp?

Un número de whasp cuesta $49 cada 30 días, es decir, menos de $0,50 por usuario activo al mes con unos 100 usuarios por número. La factura de tu modelo va aparte y crece según cuánto hablen los usuarios.

¿Qué pasa con mi compañero si banean su número?

whasp reemplaza el número sin costo, con la misma etiqueta, el mismo perfil y el mismo periodo pagado, y envía un evento number.replaced. Los chats no se trasladan, así que tú envías a los usuarios el nuevo enlace wa.me.