# Cancelaciones y palabras clave

Cuando alguien envía un mensaje a uno de tus números, Bird compara el mensaje con un catálogo de palabras clave antes de que lo recibas. Una palabra clave de **cancelación** (stop) suprime los mensajes futuros de ese remitente al suscriptor, una palabra clave de **inicio** (start) termina la supresión y **help** responde con información de soporte. Los países compatibles no necesitan configuración para este comportamiento.

Esta guía cubre qué hace Bird por defecto, cómo verlo y cómo cambiarlo.

## Qué sucede por defecto

Un suscriptor envía `STOP` a uno de tus números. Bird:

1. **Lo reconoce** comparándolo con el catálogo de palabras clave del país de ese número.
2. **Registra una supresión** en ese par exacto de remitente y suscriptor.
3. **Lo confirma** respondiendo con el mensaje de cancelación de ese país.

A partir de entonces, un envío de ese remitente a ese suscriptor se rechaza con [`E12077 SMSRecipientSuppressed`](/docs/api/errors/E12077) en lugar de salir. Un `START` termina la supresión y también lo confirma, y `HELP` responde sin cambiar nada.

Una supresión cubre **un remitente y un suscriptor**. No cubre todo tu espacio de trabajo. El alcance técnico de ese bloqueo no otorga permiso para usar otro remitente. Aplica la preferencia declarada del cliente a los mensajes y el programa que pidió detener. Para detener todos los remitentes del espacio de trabajo a la vez, consulta [Cancelar todos los remitentes](#cancelar-todos-los-remitentes) más abajo.

La confirmación está exenta de la supresión que registra. Bird puede responder al mensaje entrante aunque la nueva supresión bloquee los envíos salientes posteriores.

## La cobertura es por país

El catálogo de Bird cubre un **subconjunto de países**. Donde un país tiene cobertura, Bird gestiona las palabras clave de cancelación, activación y ayuda por defecto. Donde no la tiene, Bird no reconoce ninguna palabra clave, no envía respuesta y no registra ninguna cancelación. Si envías a un país sin cobertura, debes gestionar las cancelaciones tú mismo.

Comprueba qué tiene un país antes de depender de ello:

```bash
bird sms keyword-rules list --country NL
```

Un resultado vacío significa que el país no tiene cobertura. Puedes añadir tus propias palabras clave `custom` ahí, pero cualquier otra operación reemplaza algo que Bird incluye de fábrica, así que solo puedes crear una para un país del catálogo de Bird.

## Ver qué se aplica

`GET /v1/sms/keyword-rules` describe cómo se gestionan las respuestas a tus números. Sin filtro, devuelve todo el catálogo de Bird junto con las reglas que hayas creado; acótalo con `country`, `number`, `operation` o `scope`:

- `scope=system` devuelve solo el catálogo de Bird, incluido el valor por defecto que una regla del espacio de trabajo reemplazó.
- `scope=workspace` devuelve solo tus propias reglas.
- `number=+18005551234` devuelve las reglas que se aplican a uno de tus números, en el orden en que se aplican a un mensaje entrante; añade `from_country` para ver qué recibe un remitente que envía desde otro lugar, lo cual puede diferir.

Las reglas se devuelven de la más específica a la más general, y cada una incluye `effective_keywords`: el conjunto de Bird para esa operación y país más lo que hayas añadido.

La lista devuelve dos operaciones además de `stop`, `start` y `help`:

- `info` responde con la información de tu programa y se comporta exactamente como `help`. Existe por separado para que un país cuya respuesta INFO deba diferir de su respuesta HELP pueda tener ambas; donde Bird no incluye una regla `info` para un país, INFO es una de las palabras clave `help` de ese país y responde con la respuesta de `help`.
- `confirm` marca una respuesta de doble confirmación de suscripción, como `JOIN` o `YES`. No envía nada actualmente, así que respóndela desde tu propio handler. Bird retiene esas palabras clave para que una regla `custom` no pueda reclamarlas.

## Cambiar la respuesta

Las respuestas por defecto de Bird son correctas pero genéricas. Para responder con tu propio nombre, crea una regla para ese país y operación:

```bash
bird sms keyword-rules create \
  --operation stop \
  --country NL \
  --reply "You are unsubscribed from MyBrand. Reply START to resume."
```

Tu regla reemplaza la respuesta por defecto de Bird para ese país y **conserva las palabras clave de Bird** a menos que añadas más. También hereda las palabras clave que Bird añada después. No puedes cambiar la operación asignada a una palabra clave de cancelación o activación; Bird rechaza una regla que intente vincular `STOP` a otra operación.

Donde Bird incluye las palabras clave de un país en más de un idioma, cada idioma tiene su propia regla, así que al crear una debes indicar el idioma que reemplaza. Canadá es ese país actualmente: sus reglas `stop`, `start` y `help` vienen en `en` y `fr`. `language` es obligatorio allí y se rechaza para un país que Bird ofrece en un solo idioma.

```bash
bird sms keyword-rules create \
  --operation stop \
  --country CA \
  --language fr \
  --reply "Vous etes desabonne de MyBrand. Repondez DEBUT pour reprendre."
```

Listar las reglas de un país muestra si la división por idioma aplica y qué idiomas están disponibles.

Para limitar una regla a un número en lugar de a todos los números que tienes en el país, establece `number` en vez de depender solo del país.

Si respondes a estos mensajes desde tu propio sistema en lugar de a través de Bird, establece `reply` a null junto con `confirmed_self_managed`. Eso desactiva la respuesta automática de Bird para la regla, mientras la supresión en sí sigue funcionando.

## Palabras clave de campaña

Las reglas `custom` no tienen un comportamiento integrado. Coinciden con las palabras clave que elijas y envían la respuesta que escribas, lo que permite palabras clave de campaña como `PIZZA`. Una regla `custom` no hereda palabras clave, así que necesita al menos una propia, y puede omitir `country` para aplicarse en todos los destinos donde envíes.

Una palabra clave que Bird ha vinculado a una operación de cumplimiento no puede reutilizarse como una personalizada.

## Consultar y gestionar supresiones

`GET /v1/sms/suppressions` lista los pares para los que tus mensajes están detenidos actualmente, del más reciente al más antiguo. Filtra por `destination` para verificar un suscriptor antes de enviarle, por `originator` para uno de tus remitentes o por `reason`:

- `keyword_stop`: el suscriptor envió una palabra clave de cancelación.
- `carrier_opted_out`: su operador reportó la cancelación.
- `manual`: añadido a través de API o del panel de control.

Las supresiones que han terminado no se listan, así que la respuesta identifica a los destinatarios a los que no puedes enviar mensajes en este momento.

Puedes añadir una tú mismo para cumplir una cancelación que un cliente te dio por teléfono:

```bash
bird sms suppressions add --destination +15550001234 --originator +15557654321
```

Una supresión manual bloquea **todas las categorías, incluida la transaccional**, y añadirla es idempotente. Eliminar una es deliberadamente restrictivo: solo una supresión `manual` puede terminarse de esta manera. La cancelación por palabra clave del propio suscriptor y la cancelación del operador se rechazan, porque no te corresponde revertirlas.

## Cancelar todos los remitentes

Una palabra clave de cancelación, y las supresiones manuales anteriores, detienen solo un remitente. Algunos suscriptores quieren salir de todos los remitentes del espacio de trabajo a la vez, por ejemplo alguien que le dice a tu equipo de soporte que detenga todos los mensajes en lugar de responder a cada número individualmente.

Eso es una preferencia declarada y no una supresión, así que se encuentra en la pestaña **Preferences** de **SMS** > **Suppressions**, no en la lista anterior. Abre la pestaña y registra una cancelación con **Every sender in the workspace**: el número deja de recibir SMS de todos los remitentes del espacio de trabajo, incluidos los remitentes que añadas después. Una cancelación registrada en esta pestaña cubre todos los mensajes, incluidos los de autenticación; para registrar una que detenga solo el marketing, usa la página **Contacts** > **Preferences** de todo el espacio de trabajo, cuyo diálogo ofrece la opción de cobertura.

Bird comprueba primero las supresiones de esta guía, así que una cancelación por palabra clave sigue rechazándose con `E12077` como antes. Un envío a un número con una cancelación de todo el espacio de trabajo en archivo se rechaza con [`E25000 PreferenceRevoked`](/docs/api/errors/E25000). Para reanudar los envíos cuando el suscriptor te lo pida, elimina la entrada de la pestaña Preferences (tú la registraste, así que puedes eliminarla) o registra una activación en la página **Contacts** > **Preferences** de todo el espacio de trabajo.

## Próximos pasos

Revisa [consentimiento de campaña y controles de envío](/products/sms/marketing/compliance) antes de un envío a una audiencia, o explora [gestión de cancelaciones de SMS](/products/sms/compliance/opt-out) para tu integración.

- [Envío de SMS](/docs/guides/sms/sending-sms): revisa categorías, remitentes y condiciones de rechazo.
- [Events](/docs/guides/sms/events): gestiona los eventos `sms.*` de envíos y respuestas.
- [Registro de SMS](/docs/guides/sms/sms-log): inspecciona un mensaje, incluido un envío rechazado.

## Related resources

- [How do I collect SMS opt-ins?](/explained/sms/how-do-i-collect-sms-opt-ins) (answer)
- [Preview message segments](/tools/sms-segment-calculator) (tool)
- [SMS compliance](/sms-api/features/compliance) (product)
- [Operate messaging reliably](/learn/paths/reliability) (course)

[Get an implementation brief](/learn/workspace?topic=consent)
