# Désinscriptions et mots-clés

Quand quelqu'un envoie un SMS à l'un de vos numéros, Bird compare le message à un catalogue de mots-clés avant que vous ne le receviez. Un mot-clé **stop** reconnu bloque les envois futurs de cet expéditeur à cet abonné, un mot-clé **start** met fin à la suppression, et **help** répond avec des informations d'assistance. Les pays pris en charge ne nécessitent aucune configuration pour ce comportement.

Ce guide couvre ce que Bird fait par défaut, comment le consulter et comment le modifier.

## Ce qui se passe par défaut

Un abonné envoie `STOP` à l'un de vos numéros. Bird :

1. **Le reconnaît** en le comparant au catalogue de mots-clés du pays de ce numéro.
2. **Enregistre une suppression** sur cette paire exacte expéditeur-abonné.
3. **Le confirme** en répondant avec le message de désinscription de ce pays.

Dès lors, un envoi de cet expéditeur vers cet abonné est refusé avec [`E12077 SMSRecipientSuppressed`](/docs/api/errors/E12077) au lieu de partir. Un `START` met fin à la suppression et le confirme également, et `HELP` répond sans rien modifier.

Une suppression couvre **un expéditeur et un abonné**. Elle ne couvre pas l'ensemble de votre espace de travail. La portée technique de ce blocage n'établit pas l'autorisation d'utiliser un autre expéditeur. Appliquez la préférence déclarée du client aux messages et au programme qu'il a demandé d'arrêter. Pour arrêter tous les expéditeurs de l'espace de travail d'un coup, voir [Désinscription de tous les expéditeurs](#désinscription-de-tous-les-expéditeurs) ci-dessous.

La confirmation est exemptée de la suppression qu'elle enregistre. Bird peut répondre au message entrant même si la nouvelle suppression bloque les envois sortants ultérieurs.

## La couverture est par pays

Le catalogue de Bird couvre un **sous-ensemble de pays**. Quand un pays est couvert, Bird gère par défaut les mots-clés de désinscription, de réinscription et d'aide. Quand il ne l'est pas, Bird ne reconnaît aucun mot-clé, n'envoie aucune réponse et n'enregistre aucune désinscription. Si vous envoyez vers un pays non couvert, vous devez honorer les désinscriptions vous-même.

Vérifiez ce qu'un pays propose avant de vous y fier :

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

Un résultat vide signifie que le pays n'a aucune couverture. Vous pouvez y ajouter vos propres mots-clés `custom`, mais toute autre opération remplace quelque chose que Bird fournit, donc vous ne pouvez en créer une que pour un pays présent dans le catalogue de Bird.

## Voir ce qui s'applique

`GET /v1/sms/keyword-rules` décrit comment les réponses à vos numéros sont gérées. Sans filtre, il renvoie l'intégralité du catalogue de Bird ainsi que toutes les règles que vous avez créées ; affinez avec `country`, `number`, `operation` ou `scope` :

- `scope=system` renvoie uniquement le catalogue de Bird, y compris la valeur par défaut qu'une règle d'espace de travail a remplacée.
- `scope=workspace` renvoie uniquement vos propres règles.
- `number=+18005551234` renvoie les règles qui s'appliquent à l'un de vos numéros, dans l'ordre où elles sont appliquées à un message entrant ; ajoutez `from_country` pour voir ce qu'obtient un expéditeur envoyant depuis un autre pays, ce qui peut différer.

Les règles sont renvoyées de la plus spécifique à la moins spécifique, et chacune porte `effective_keywords` : l'ensemble de Bird pour cette opération et ce pays, plus tout ce que vous avez ajouté.

La liste renvoie deux opérations au-delà de `stop`, `start` et `help` :

- `info` répond avec les informations de votre programme et se comporte exactement comme `help`. Il est séparé pour qu'un pays dont la réponse INFO doit différer de sa réponse HELP puisse porter les deux ; quand Bird ne fournit aucune règle `info` pour un pays, INFO est l'un des mots-clés `help` de ce pays et répond avec la réponse `help`.
- `confirm` marque une réponse de double opt-in, comme `JOIN` ou `YES`. Il n'envoie rien actuellement, donc traitez-le depuis votre propre gestionnaire. Bird détient ces mots-clés pour qu'une règle `custom` ne puisse pas les revendiquer.

## Modifier la réponse

Les réponses par défaut de Bird sont correctes mais génériques. Pour répondre en votre propre nom, créez une règle pour ce pays et cette opération :

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

Votre règle remplace la réponse par défaut de Bird pour ce pays et **conserve les mots-clés de Bird** sauf si vous en ajoutez d'autres. Elle hérite aussi des mots-clés que Bird ajoutera ultérieurement. Vous ne pouvez pas changer l'opération assignée à un mot-clé de désinscription ou de réinscription ; Bird rejette une règle qui tente de lier `STOP` à une autre opération.

Quand Bird fournit les mots-clés d'un pays dans plusieurs langues, chaque langue a sa propre règle, donc une création doit nommer la langue qu'elle remplace. Le Canada est ce pays : ses règles `stop`, `start` et `help` existent en `en` et `fr`. `language` y est obligatoire et rejeté pour un pays que Bird ne fournit que dans une seule langue.

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

Lister les règles d'un pays montre si la séparation s'applique et quelles langues sont disponibles.

Pour limiter une règle à un seul numéro plutôt qu'à tous les numéros que vous détenez dans le pays, définissez `number` au lieu de vous fier au pays seul.

Si vous répondez à ces messages depuis votre propre système plutôt que via Bird, définissez `reply` à null conjointement avec `confirmed_self_managed`. Cela désactive la réponse automatique de Bird pour la règle tandis que la suppression elle-même continue de fonctionner.

## Mots-clés de campagne

Les règles `custom` ne portent aucun comportement intégré. Elles correspondent aux mots-clés que vous choisissez et envoient la réponse que vous rédigez, ce qui prend en charge les mots-clés de campagne tels que `PIZZA`. Une règle `custom` n'hérite d'aucun mot-clé, elle a donc besoin d'au moins un mot-clé propre, et elle peut omettre `country` pour s'appliquer partout où vous envoyez.

Un mot-clé que Bird a lié à une opération de conformité ne peut pas être réutilisé comme mot-clé personnalisé.

## Consulter et gérer les suppressions

`GET /v1/sms/suppressions` liste les paires pour lesquelles vos messages sont actuellement bloqués, les plus récentes en premier. Filtrez par `destination` pour vérifier un abonné avant de lui envoyer un message, par `originator` pour l'un de vos expéditeurs, ou par `reason` :

- `keyword_stop` : l'abonné a envoyé un mot-clé stop.
- `carrier_opted_out` : son opérateur a signalé la désinscription.
- `manual` : ajouté via API ou le tableau de bord.

Les suppressions terminées ne sont pas listées, donc la réponse identifie les destinataires auxquels vous ne pouvez pas envoyer de message en ce moment.

Vous pouvez en ajouter une vous-même pour honorer une désinscription qu'un client vous a communiquée par téléphone :

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

Une suppression manuelle bloque **toutes les catégories, y compris transactionnelles**, et l'ajout est idempotent. La levée d'un blocage est strictement limitée : seule une suppression `manual` peut être levée de cette manière. Vous ne pouvez pas lever ainsi un blocage créé par le mot-clé stop d'un abonné ou par une désinscription signalée par son opérateur, car vous n'êtes pas autorisé à annuler ces désinscriptions.

## Désinscription de tous les expéditeurs

Un mot-clé stop et les suppressions manuelles ci-dessus ne bloquent qu'un seul expéditeur. Certains abonnés veulent se désinscrire de tous les expéditeurs de l'espace de travail d'un coup, par exemple quelqu'un qui demande à votre équipe d'assistance d'arrêter tous les SMS plutôt que de répondre à chaque numéro individuellement.

Il s'agit d'une préférence déclarée plutôt que d'une suppression, elle se trouve donc dans l'onglet **Preferences** de **SMS** > **Suppressions**, et non dans la liste ci-dessus. Ouvrez l'onglet et enregistrez une désinscription avec **Every sender in the workspace** : le numéro cesse de recevoir des SMS de tous les expéditeurs de l'espace de travail, y compris ceux que vous ajouterez ultérieurement. Une désinscription enregistrée dans cet onglet couvre tous les messages, textes d'authentification compris ; pour n'en enregistrer une que pour le marketing, utilisez la page **Contacts** > **Preferences** à l'échelle de l'espace de travail, dont la boîte de dialogue propose le choix de couverture.

Bird vérifie d'abord les suppressions décrites dans ce guide, donc un simple mot-clé stop continue de rejeter avec `E12077` comme avant. Un envoi vers un numéro ayant une désinscription à l'échelle de l'espace de travail est rejeté avec [`E25000 PreferenceRevoked`](/docs/api/errors/E25000). Pour reprendre les envois une fois que l'abonné vous le demande, supprimez l'entrée de l'onglet Preferences (vous l'avez enregistrée, donc vous pouvez la supprimer), ou enregistrez une réinscription sur la page **Contacts** > **Preferences** à l'échelle de l'espace de travail.

## Étapes suivantes

Consultez [le consentement de campagne et les contrôles d'envoi](/products/sms/marketing/compliance) avant un envoi à une audience, ou explorez [la gestion des désinscriptions SMS](/products/sms/compliance/opt-out) pour votre intégration.

- [Envoi de SMS](/docs/guides/sms/sending-sms) : consultez les catégories, les expéditeurs et les conditions de rejet.
- [Events](/docs/guides/sms/events) : gérez les événements `sms.*` pour les envois et les réponses.
- [Journal SMS](/docs/guides/sms/sms-log) : inspectez un message, y compris un envoi rejeté.

## 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)
