Opt-out y consentimiento en WhatsApp: reglas para agentes de IA

Cómo gestionar STOP, el consentimiento y el aviso de IA en un agente de WhatsApp: RGPD, AI Act, LGPD de Brasil, políticas de WhatsApp y la nota de la CNIL de 2026.

Un interruptor minimalista en posición de apagado junto a una burbuja de chat redondeada, con el interruptor bordeado en verde.

Lo esencial

  • El consentimiento es solo una base jurídica (una de seis en el RGPD, una de diez en la LGPD de Brasil), pero el derecho a parar no es opcional: según el RGPD una persona puede oponerse al marketing directo en cualquier momento, y retirar el consentimiento debe ser tan fácil como darlo.
  • El AI Act de la UE exige desde el 2 de agosto de 2026 que los chatbots digan a las personas que hablan con una IA, a más tardar en la primera interacción.
  • En whasp, un STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END o QUIT exacto en mayúsculas, o cualquier grafía de "opt out", bloquea el chat automáticamente; el "stop" en minúsculas y el "por favor, para" te toca detectarlos a ti.
  • whasp levanta su bloqueo cuando la persona vuelve a escribir, así que lleva tu propio registro de quién aceptó qué y cuándo.
  • Los servidores de whasp no guardan mensajes, así que el historial, la conservación y la supresión son cosa tuya; la nota de la CNIL de julio de 2026 sobre IA agéntica sugiere una memoria que caduque y sea fácil de borrar.

Un agente de IA en WhatsApp necesita cuatro cosas: una baja (opt-out) que siempre funcione, una base jurídica para los datos del chat que conserva, una indicación clara de que el usuario habla con una IA y registros que prueben las tres cosas. Las reglas salen del RGPD (GDPR), el AI Act de la UE (artículo 50, vigente desde el 2 de agosto de 2026), la LGPD de Brasil y las propias políticas de WhatsApp.

¿Por qué importa dos veces el opt-out en un agente de WhatsApp?

El opt-out importa por dos motivos distintos: la ley y la salud de tu número.

La ley fija topes altos. Un incumplimiento de las condiciones del consentimiento o de los derechos de una persona en el RGPD puede costar hasta 20 millones de euros o el 4% del volumen de negocio anual mundial (artículo 83.5). La LGPD de Brasil permite multas del 2% de la facturación en Brasil, con un tope de R$50 millones por infracción, aplicables desde el 1 de agosto de 2021 (artículos 52 y 65). El AI Act permite multas de 15 millones de euros o el 3% por incumplir la transparencia (artículo 99.4).

El número tiene su propio riesgo. Las cuentas personales se rigen por los Términos de servicio generales de WhatsApp, y los números que se comportan como bots, sobre todo los que escriben a desconocidos, acaban baneados. En la WhatsApp Business Platform (la API de WhatsApp Business), la Business Messaging Policy de WhatsApp, actualizada el 23 de septiembre de 2026, dice que las empresas solo pueden contactar a personas que dieron su consentimiento (opt-in), que deben respetar las peticiones de baja y que los comentarios negativos significativos de los usuarios pueden llevar a límites o a la retirada. Trata un bloqueo sobre un número personal de la misma forma: es la señal más barata que puede enviar un usuario, y un STOP que funciona le da una opción mejor. La regla propia de whasp de que los usuarios siempre escriben primero existe por lo mismo, porque los mensajes en frío son lo que hace que baneen números personales. Por qué WhatsApp banea números cubre las demás señales.

¿Qué esperan el RGPD y la LGPD de Brasil?

El RGPD y la LGPD tratan el número de teléfono, el nombre y los mensajes como datos personales, y las dos dan a las personas control sobre ellos. Si ofreces el agente a personas en la UE, se aplica el RGPD. La LGPD cubre el tratamiento en Brasil, los servicios dirigidos a personas en Brasil y los datos recogidos allí (artículo 3). Las dos leyes se parecen mucho:

Tema RGPD (UE) LGPD (Brasil)
¿Hace falta consentimiento? Una de seis bases jurídicas (artículo 6.1); el contrato y el interés legítimo pueden cubrir un chat que inició el usuario Una de diez bases legales (artículo 7)
Datos especiales (salud, vida sexual) Necesitan una excepción, como el consentimiento explícito (artículo 9.2.a) Consentimiento específico y destacado, u otro supuesto previsto (artículo 11)
Probar el consentimiento El responsable debe poder demostrarlo (artículo 7.1) La carga de la prueba recae en el responsable (artículo 8, párrafo 2)
Retirar el consentimiento Tan fácil como darlo (artículo 7.3) En cualquier momento, mediante un procedimiento gratuito y facilitado (artículo 8, párrafo 5)
Qué debes informar a los usuarios Responsable, finalidades, base jurídica, conservación, derechos (artículo 13) Finalidad, duración, responsable, contacto, derechos (artículo 9)
Supresión Supresión cuando ya no hace falta o se retira el consentimiento (artículo 17) Eliminación de los datos tratados con consentimiento (artículo 18, inciso VI)
Multa máxima 20 millones de euros o el 4% del volumen de negocio mundial 2% de la facturación en Brasil, hasta R$50 millones por infracción

Tres puntos importan sobre todo en un agente de chat.

Elige una base para cada finalidad. Responder a una persona que se registró en tu servicio puede apoyarse en el contrato. El consentimiento encaja con los extras: datos de salud, reutilizar chats para algo que la persona no esperaba, todo lo que pueda rechazar sin perder el servicio. El consentimiento también debe ser específico, y el RGPD dice que se tenga muy en cuenta si el servicio se condiciona al consentimiento para datos que no necesita (artículo 7.4).

El derecho a parar es independiente del consentimiento. Según el RGPD, una persona puede oponerse en cualquier momento al marketing directo, y después sus datos ya no pueden tratarse con ese fin (artículo 21.2 y 21.3). Ese es el núcleo jurídico de STOP.

Responde a tiempo las solicitudes de supresión. El RGPD fija un mes, prorrogable por dos meses más (artículo 12.3).

¿Exige el AI Act de la UE un aviso de que es una IA?

Sí, desde el 2 de agosto de 2026, con una excepción estrecha. El artículo 50.1 del AI Act exige que los proveedores diseñen los sistemas de IA que hablan con personas de modo que estas sepan que tratan con una IA. La excepción solo vale cuando resulta obvio para una persona razonablemente informada, atenta y prudente. El artículo 50.5 dice que la información debe ser clara y facilitarse, a más tardar, en la primera interacción. Un chat que empieza en WhatsApp, desde un contacto con nombre y foto, debe avisar en el perfil y en el primer mensaje.

El periodo de gracia hasta el 2 de diciembre de 2026 cubre solo el marcado legible por máquina del contenido generado del artículo 50.2, para los sistemas que ya estaban en el mercado. No cubre el artículo 50.1. Las reglas de seguridad para compañeros de IA dan los detalles, además de las obligaciones de California y Nueva York.

¿Qué añade la nota de la CNIL de julio de 2026 para agentes con memoria?

El 20 de julio de 2026, la CNIL y el Conseil de l’IA et du Numérique publicaron una nota exploratoria sobre la IA agéntica y los datos personales. No fija obligaciones nuevas. Dice que el RGPD se aplica por completo a los sistemas agénticos, es decir, programas construidos sobre modelos generativos que deciden, orquestan acciones y llaman a servicios de terceros.

La nota no convierte el consentimiento en la respuesta. Lo que le preocupa es la memoria. La memoria persistente construye perfiles detallados, tensiona la limitación de la finalidad, la minimización de datos y la limitación del plazo de conservación, y dificulta el ejercicio de los derechos cuando los datos están en varios sitios y la persona no sabe qué se guardó ni adónde fue. Sus ideas para quienes construyen agentes: memoria separada por agente y por finalidad, memoria con tamaño limitado o que caduca, un rastro de qué datos y servicios usó cada tarea, control del usuario sobre a qué puede acceder el agente, validación humana para las acciones críticas y un interruptor de emergencia (kill switch). Si tu agente de WhatsApp guarda notas sobre personas, esas ideas son un buen punto de partida para el diseño.

¿Cómo debe gestionar un agente STOP y otras bajas?

En whasp, STOP funciona a nivel de número, y el resto lo añades tú. Un mensaje entrante que sea exactamente STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END o QUIT (en mayúsculas), o cualquier grafía de “opt out”, da de baja el chat automáticamente. Los envíos a ese chat devuelven 403 chat_opted_out, y los mensajes que aún están en la cola fallan con message.failed y el mismo error. Un envío con "override_optout": true pasa igualmente, y así es como confirmas la baja. El bloqueo se levanta en cuanto la persona vuelve a escribir.

Hay dos huecos que son tuyos. El “stop” en minúsculas y las peticiones corteses (“por favor, para”, “déjame en paz”) no se detectan. Y como el bloqueo se levanta cuando la persona escribe, whasp no puede saber si quiere volver a recibir seguimientos. Lleva tu propia marca (flag).

declare function recordOptOut(chat: string, messageId: string, text: string): Promise<void>;
declare function hasFollowUpConsent(chat: string): Promise<boolean>;

// whasp bloquea STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END y QUIT exactos en mayúsculas, y "opt out".
// Todo lo demás es cosa tuya.
const WHOLE_MESSAGE = /^\s*(please\s+)?(stop|unsubscribe|opt[ -]?out)( now| please)?\s*[.!]*\s*$/i;
const PHRASES = /\b(stop (texting|messaging|writing to|contacting) me|leave me alone|no more (messages|texts)|don'?t (text|message|contact) me)\b/i;

export async function onInbound(message: { id: string; chat: string; text: string | null }) {
  const text = message.text ?? "";
  if (!WHOLE_MESSAGE.test(text) && !PHRASES.test(text)) return false;

  await recordOptOut(message.chat, message.id, text); // quién, cuándo, qué mensaje, qué palabras
  await fetch("https://api.whasp.ai/v1/messages", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.WHASP_API_KEY}`,
      "Content-Type": "application/json",
      "Idempotency-Key": `optout-${message.id}`,
    },
    body: JSON.stringify({
      to: message.chat,
      text: "Te has dado de baja. No te escribiré nada por mi cuenta. Escríbeme cuando quieras.",
      override_optout: true, // deja pasar solo esta confirmación
    }),
  });
  return true; // gestionado: no se lo pases al modelo
}

// whasp levanta su bloqueo cuando la persona vuelve a escribir. Tu marca solo se levanta con un sí explícito.
export const mayStartFollowUp = (chat: string) => hasFollowUpConsent(chat);

El primer patrón solo coincide cuando todo el mensaje es la petición, así que frases en inglés como “stop it lol” o “stop by at five” pasan a tu modelo. El segundo detecta frases habituales en cualquier parte del mensaje. Para perder menos casos, pide también a tu modelo que clasifique los mensajes cortos y deja los patrones como suelo mínimo. Prueba con los idiomas en que escriben tus usuarios y añade a los patrones sus equivalentes (por ejemplo “basta”, “no me escribas más” o “dame de baja”).

¿Qué debes registrar y durante cuánto tiempo?

Lleva un pequeño registro de consentimientos y bajas, porque tanto el RGPD como la LGPD ponen la carga de la prueba sobre ti. De cada persona, guarda:

  • el número de teléfono y tu identificador interno de usuario
  • a qué accedió, el texto exacto que vio, la versión de tu aviso y la hora
  • cuándo le dijiste que hablaba con una IA
  • cada baja: el id del mensaje, las palabras y la hora
  • cada solicitud de supresión y la fecha en que la completaste

Los servidores de whasp no guardan mensajes. WhatsApp guarda los chats en el teléfono del número, como cualquier teléfono, y el teléfono y sus datos se borran cuando termina el número. Un mensaje entrante te llega una sola vez, en el evento message.received, y los archivos que envía la gente quedan descargables durante 24 horas. El historial, la conservación y la supresión son cosa de tu sistema. Escribe una regla de conservación por tipo de dato, cuéntasela a los usuarios en tu aviso y ejecuta la supresión según lo previsto. La memoria de conversación explica un esquema con caducidad, y la gestión de webhooks explica cómo recibir los eventos con seguridad.

¿Qué debes hacer ahora?

  1. Añade el manejador de baja de arriba y prueba “stop” en minúsculas, “por favor, para” y los idiomas de tus usuarios.
  2. Escribe tu aviso: quién eres, qué hace el agente, que es una IA, qué guardas y durante cuánto tiempo, y cómo darse de baja o pedir la supresión.
  3. Muestra el aviso antes de que empiece el chat y di “IA” en el perfil y en el primer mensaje.
  4. Registra los consentimientos y las bajas con la hora, y fija una regla de conservación.

Este artículo describe los textos de las leyes y las políticas a 19 de octubre de 2026. No es asesoramiento legal; pide a un abogado que revise tu aviso y tu base jurídica.

Preguntas

¿Necesito consentimiento para ejecutar un chatbot de IA en WhatsApp?

No siempre. Según el RGPD el consentimiento es una de seis bases jurídicas, y responder a una persona que te escribió para pedir un servicio puede apoyarse en el contrato. Necesitas consentimiento explícito para datos de categorías especiales, como los de salud (artículo 9.2.a), y una persona siempre puede oponerse al marketing directo (artículo 21.2).

¿Qué cuenta como baja (opt-out) para un agente de IA de WhatsApp en whasp?

Un mensaje que sea exactamente STOP, UNSUBSCRIBE, OPTOUT, CANCEL, END o QUIT (en mayúsculas), o cualquier grafía de "opt out". Los envíos a ese chat devuelven entonces 403 chat_opted_out. Las peticiones corteses como "por favor, para" te toca detectarlas a ti.

¿Tiene que decir un agente de IA de WhatsApp que es una IA?

En la UE, sí, salvo que sea obvio para una persona razonablemente informada: el artículo 50.1 del AI Act se aplica desde el 2 de agosto de 2026. California y Nueva York añaden obligaciones para los chatbots de compañía. Decirlo en el perfil y en el primer mensaje es el hábito más sencillo.

¿Cuánto tiempo puedo conservar el historial de chats de WhatsApp?

No hay un plazo fijo. El RGPD dice que los datos personales no se conserven más tiempo del necesario para la finalidad (artículo 5.1.e), y debes informar a los usuarios del plazo o de los criterios (artículo 13.2.a). Fija una regla de conservación, escríbela y borra según lo previsto.

¿Guarda whasp los mensajes de mis usuarios?

No. whasp pasa los mensajes a tu webhook o a WhatsApp. Un mensaje entrante te llega una vez, en el evento message.received, y los archivos que envía la gente quedan descargables durante 24 horas. El historial lo guarda tu sistema.