Sign inGet Started

Règles de mots-clés

Bird fournit le catalogue de mots-clés : un destinataire qui répond STOP à l'un de vos numéros capables de recevoir est désinscrit sans aucune configuration de votre part. START annule cette désinscription. Une règle que vous créez remplace le comportement par défaut de Bird pour la portée qu'elle couvre.
Cette page décrit ce que Bird reconnaît, comment un message entrant est comparé aux mots-clés, et comment modifier le texte de réponse ou ajouter des mots-clés. La page Keywords est l'équivalent dans le tableau de bord.
Une liste de règles de mots-clés, avec les règles de l'espace de travail au-dessus des règles par défaut qu'elles remplacent

Ce que Bird reconnaît par défaut

Neuf mots enregistrent une désinscription :
stop, stop all, stopall, unsubscribe, cancel, end, quit, revoke, optout
Deux l'annulent : start et unstop.
La correspondance porte sur le message entier et non sur une sous-chaîne. Comme cancel et end sont des mots-clés, cette distinction compte : "cancel my 3pm delivery" est un message ordinaire et non un retrait de consentement. La casse, les accents, les espaces répétés et la ponctuation finale sont ignorés : Stop! et STOP correspondent tous les deux. La ponctuation avant ou à l'intérieur du mot n'est pas ignorée : #stop ne correspond pas.

Cas où les mots-clés ne sont pas comparés

Un mot-clé dans un message de groupe est ignoré : un participant ne peut pas se désinscrire en y répondant. Respectez la désinscription exprimée par un membre du groupe dans votre propre logique d'envoi.

Quand la préférence est enregistrée

La classification s'exécute en parallèle de l'événement whatsapp.received, et non avant. Une intégration qui surveille cet événement peut donc voir un STOP arriver avant que la préférence qu'il enregistre n'existe. Si votre gestionnaire réagit au message entrant en envoyant quelque chose, relisez les enregistrements du destinataire au lieu de supposer l'ordre des événements.

Voir ce qui s'applique

GET /v1/whatsapp/keyword-rules décrit comment les réponses à vos numéros sont traitées. Sans filtre, il renvoie le catalogue de Bird ainsi que les règles que vous avez créées. Affinez avec country, waba, operation ou scope :
  • scope=system renvoie le catalogue de Bird, y compris la règle par défaut qu'une de vos règles remplace.
  • scope=workspace renvoie vos propres règles.
const rules = await bird.whatsapp.keywordRules.list({ operation: "opt_out" });
for (const rule of rules.data ?? []) {
  console.log(rule.scope, rule.effective_keywords);
}
Les règles sont renvoyées de la plus spécifique à la moins spécifique, c'est-à-dire l'ordre dans lequel un message entrant est comparé à celles-ci. Chacune contient effective_keywords : l'ensemble de Bird pour cette opération et ce pays, plus ce que vous avez ajouté.
Pour une de vos règles sans country, effective_keywords affiche l'ensemble mondial de Bird, car la règle n'a pas de pays et celui de l'expéditeur est inconnu tant qu'un message n'arrive pas. Cette règle est comparée à l'ensemble de Bird pour le pays de l'expéditeur, qui peut être plus large. Définissez un country sur votre règle pour voir exactement ce que ces expéditeurs déclenchent.
country est le pays de l'expéditeur, déterminé à partir de son propre numéro de téléphone et non du numéro qu'il a contacté. C'est le signal de pays que WhatsApp envoie. Un expéditeur identifié par un identifiant utilisateur au niveau du compte n'a pas de pays : un message provenant de celui-ci saute les règles par pays et correspond à une règle mondiale à la place.

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 :
const rule = await bird.whatsapp.keywordRules.create({
  operation: "opt_out",
  country: "US", // the SENDER's country, from their own number
  reply: "You're off the list. ACME Courier won't message you again.",
});
// effective_keywords is Bird's set plus any of your own.
console.log(rule.id, rule.effective_keywords);
Votre règle remplace la réponse de Bird pour cette portée et conserve les mots-clés de Bird. Vos keywords sont des ajouts et non un remplacement : un mot-clé que Bird expédie plus tard commence à correspondre sans modification de votre part.
Pour n'envoyer aucune réponse tout en enregistrant la désinscription, omettez reply lorsque vous créez la règle. Pour rendre muette une règle existante, définissez reply à null dans un corps JSON lors de la mise à jour ci-dessous ; un indicateur CLI ne peut pas contenir null.
Un dialogue pour ajouter une règle de mot-clé, avec des champs pour les mots-clés supplémentaires et une réponse

Ajouter vos propres mots-clés

// Omitting keywords leaves the set alone; an empty array clears your additions
// back to Bird's. reply: null switches the auto-reply off and still records
// the opt-out.
const rule = await bird.whatsapp.keywordRules.update("wkr_01m2kj8x4te9p0rr7e5w2n1abc", {
  keywords: ["no more texts", "remove me"],
});
console.log(rule.effective_keywords);
Omettre keywords laisse vos ajouts en place. Envoyer un tableau vide les réinitialise à l'ensemble de Bird.

Portée des règles et doublons

Une règle se restreint à un seul compte WhatsApp Business Account avec waba, à un seul pays d'expéditeur avec country, aux deux, ou à aucun. Vous ne pouvez avoir qu'une seule règle par combinaison d'opération, de pays et de compte. Une deuxième écriture pour la même combinaison renvoie une erreur de doublon.
Bird rejette une règle qui lie stop à opt_in, que le mot provienne du catalogue de Bird ou d'une autre de vos règles : un mot de désinscription ne peut pas être utilisé pour accorder un consentement.

Supprimer une règle

Supprimer votre règle transfère cette portée à la règle suivante dans l'ordre de correspondance, qui n'est pas toujours l'une des vôtres. L'ordre est le suivant :
  1. Votre règle pour un compte et un pays.
  2. Votre règle pour le compte.
  3. Votre règle pour le pays.
  4. La règle de Bird pour le pays de l'expéditeur.
  5. Votre règle mondiale.
  6. La règle mondiale de Bird.
Supprimer votre règle pour un pays transfère donc la portée à la règle de Bird pour ce pays avant votre propre règle mondiale :
// The next rule in the ladder answers the scope, which is another rule of yours if you hold a less specific one; STOP never stops working.
await bird.whatsapp.keywordRules.delete("wkr_01m2kj8x4te9p0rr7e5w2n1abc");
Supprimer une règle n'arrête pas le fonctionnement de STOP. Le texte de réponse et l'ensemble de mots-clés reviennent à la règle suivante dans cet ordre.

Étapes suivantes