Präferenzen
Eine Präferenz ist eine Angabe darüber, was eine Person wünscht, gespeichert zu ihrem Handle auf einem Kanal. Auf WhatsApp ist das Handle eine Telefonnummer im E.164-Format. Es ist ein eigenständiger Datensatz, getrennt von einer Unterdrückung, und beide werden vor einem Versand geprüft.
Präferenzen erreichen Ihren Workspace auf drei Wegen: WhatsApp meldet eine, ein Empfänger tippt ein Schlüsselwort, oder Sie erfassen selbst eine. Was Sie jeweils tun können, hängt davon ab, wer die Angabe gemacht hat.
Was eine Präferenz enthält
Eine Angabe ist entweder revoked, ein Opt-out, oder granted, eine Einwilligung.
Sie trägt außerdem eine Reichweite, die bestimmt, wie viel Verkehr sie blockiert. non_transactional deckt Marketing- und andere nicht wesentliche Nachrichten ab, während transaktionale Nachrichten wie Quittungen und Bestätigungscodes weiterhin zugestellt werden. all deckt jede Nachricht ab. Der Preferences-Tab zeigt diese in seiner Spalte Covers als Non-transactional und All messages an.
Eine Angabe kann mit sender_scope auf einen Absender eingeschränkt werden, was auf WhatsApp das Geschäftskonto identifiziert. Ohne diesen Wert gilt die Angabe kanalweit für Ihren gesamten Workspace, einschließlich später verbundener Konten.
Eine Person kann mehrere Einträge auf einem Kanal haben, z. B. ein kanalweites Opt-out neben einem absenderbezogenen. Die restriktivste Angabe entscheidet, ob eine Nachricht versendet wird.
Präferenzen, die Bird für Sie erfasst
Wenn Bird ein Meta-Event empfängt, das besagt, dass ein Empfänger Marketing-Nachrichten gestoppt hat, legt es eine empfängerseitige Präferenz für dieses WhatsApp Business Account an. Die Präferenz deckt nicht-transaktionale Nachrichten ab. Sie erzeugt keine Unterdrückung aller Nachrichten und meldet die Person nicht von jedem Konto in Ihrem Workspace ab.
Ein Empfänger kann dasselbe mitteilen, indem er mit STOP antwortet. Diese Präferenz ist auf das Geschäftskonto beschränkt, an das die Nachricht ging, wie die obige. Sie deckt alle Nachrichten ab, weil ein getipptes STOP umfassender ist als das Marketing-Opt-out von WhatsApp. Siehe Schlüsselwortregeln für die Wörter, die Bird erkennt, und wie Sie die Antwort ändern.
Ein späteres Resume-Event aktualisiert die Präferenz dieses Kontos. Unterdrückungen und andere geltende Präferenzen gelten weiterhin, sodass ein Resume-Event allein nicht beweist, dass ein Versand zulässig ist.
Präferenzen, die Sie erfassen
Öffnen Sie die Seite Suppressions und wechseln Sie zum Preferences-Tab. Wenn Sie dort eine mit Every business account in the workspace erfassen, erhält die Adresse keine WhatsApp-Nachrichten mehr von jedem Konto, das Sie halten, einschließlich später verbundener Konten.

Der Dialog Record opt-out in diesem Tab erfasst eine Reichweite für alle Nachrichten.

Um eine Präferenz zu erfassen, die nur Marketing blockiert, verwenden Sie die Workspace-weite Seite Contacts > Preferences, deren Dialog Marketing messages sowie All messages anbietet.
Präferenzen per Code lesen
GET /v1/preferences gibt die erfassten Präferenzen des Workspace zurück, zuletzt erstellte zuerst. Übergeben Sie channel=whatsapp, um auf diesen Kanal einzuschränken, und handle dazu, um vor dem Versand alles Gespeicherte zu einer Nummer abzurufen:
for await (const preference of bird.preferences.list({
channel: "whatsapp",
handle: "+15550001234",
})) {
console.log(preference.status, preference.coverage, preference.sender_scope);
}for preference in client.preferences.list(channel="whatsapp", handle="+15550001234"):
print(preference.status, preference.coverage, preference.sender_scope)for pref, err := range client.Preferences.List(context.Background(), bird.PreferencesListParams{
Channel: bird.PreferenceChannelWhatsapp,
Handle: "+15550001234",
}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(*pref.Status, *pref.Coverage)
}foreach ($bird->preferences->list(['channel' => 'whatsapp', 'handle' => '+15550001234']) as $preference) {
echo $preference->getStatus(), ' ', $preference->getCoverage(), PHP_EOL;
}bird preferences list --channel whatsapp --handle +15550001234curl "https://us1.platform.bird.com/v1/preferences?channel=whatsapp&handle=%2B15550001234" \
-H "Authorization: Bearer $BIRD_API_KEY"handle erfordert channel, da dasselbe Handle auf mehr als einem Kanal existieren kann.
Präferenz per Code erfassen
POST /v1/preferences erfasst eine einzelne Angabe. Das Schreiben ist ein Upsert mit Schlüssel aus Kanal, Handle und Absenderbereich, sodass eine neue Angabe die aktuelle des Schlüssels ersetzt:
const result = await bird.preferences.create({
channel: "whatsapp",
handle: "+15550001234",
status: "revoked",
coverage: "non_transactional",
});
console.log(result.applied, result.preference?.id);result = client.preferences.create(
channel="whatsapp",
handle="+15550001234",
status="revoked",
coverage="non_transactional",
)
print(result.applied, result.preference.id)result, err := client.Preferences.Create(context.Background(), bird.PreferencesCreateParams{
Channel: bird.PreferenceChannelWhatsapp,
Handle: "+15550001234",
Status: bird.PreferenceStatusRevoked,
Coverage: bird.PreferenceCoverageNonTransactional,
})
if err != nil {
log.Fatal(err)
}
// A newer statement already on file answers Applied false instead of an
// error, with the surviving statement in Preference.
if result.Applied != nil && *result.Applied {
fmt.Println("opt-out recorded")
}$result = $bird->preferences->create(
channel: 'whatsapp',
handle: '+15550001234',
status: 'revoked',
coverage: 'non_transactional',
);
echo var_export($result->getApplied(), true);bird preferences create \
--channel whatsapp \
--handle +15550001234 \
--status revoked \
--coverage non_transactionalcurl -X POST https://us1.platform.bird.com/v1/preferences \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"channel":"whatsapp","handle":"+15550001234","status":"revoked","coverage":"non_transactional"}'Angaben werden nach dem Zeitpunkt sortiert, an dem sie gemacht wurden, nicht nach dem Zeitpunkt ihres Eingangs. API lehnt eine Angabe ab, die älter ist als die aktuelle des Schlüssels, und gibt applied: false zusammen mit der verbliebenen Angabe zurück. Die Ablehnung bleibt in der Historie des Schlüssels.
Ein 201 bedeutet, dass der Schlüssel keinen Datensatz hatte und diese Angabe einen angelegt hat. Ein 200 gibt den verbliebenen Datensatz des Schlüssels zurück, unabhängig davon, ob diese Angabe ihn ersetzt, wiederholt oder abgelehnt wurde.
Was Sie rückgängig machen können
Eine von Ihnen erfasste Präferenz können Sie über den Preferences-Tab oder mit DELETE /v1/preferences/{preference_id} entfernen, sobald der Empfänger Sie bittet, den Versand fortzusetzen.
Eine Angabe, die die Person selbst gemacht hat, kann nur sie selbst rückgängig machen. Ein Unsubscribe oder ein Stop-Schlüsselwort endet, wenn die Person wieder einwilligt, und ein Delete gibt 422 zurück. Um den Versand mit ihrer Einwilligung wieder aufzunehmen, erfassen Sie eine granted-Angabe mit consented_at, dem Zeitpunkt der Einwilligung. Die Einwilligung gilt, wenn dieser Zeitpunkt nach dem Opt-out liegt, das sie aufhebt, sodass sie die Meinungsänderung festhält, statt die ursprüngliche Angabe zu löschen.
Ein Delete wird wie jede andere Angabe anhand des Empfangszeitpunkts eingeordnet. Wenn der Datensatz eine Angabe trägt, die nach diesem Zeitpunkt gemacht wurde, wird das Delete abgelehnt und zusammen mit applied: false neben dem verbliebenen Datensatz zurückgegeben.
Wenn ein Zustellfehler zuerst eintrifft
Ein Zustellfehler des Anbieters kann einen Stopp melden, bevor Bird ein passendes Event aufgezeichnet hat. Respektieren Sie die Entscheidung des Empfängers und untersuchen Sie die Präferenz- und Event-Historie, anstatt einen fehlenden lokalen Datensatz als Versanderlaubnis zu werten.
Nächste Schritte
- Unterdrückungen: die Adressen, die Ihr Workspace direkt blockiert.
- Schlüsselwortregeln: die Wörter, die eine Präferenz auf Ihren Nummern erfassen.
- WhatsApp-Events: der whatsapp.rejected-Payload, den ein blockierter Versand erzeugt.
Verwandte Ressourcen
Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.
Anleitung ansehenConnecting WhatsApp to Bird: from buying a number to a live channelDas Konzept verstehenWhat is the 24-hour customer service window on WhatsApp?Das Tool verwendenWhatsApp message builderDie Funktion erkundenWhatsApp
Übung ausprobieren und ein Implementierungs-Briefing erhalten