# Voorkeuren

Een voorkeur is een verklaring over wat iemand wil, vastgelegd bij het adres van die persoon op één kanaal. Op WhatsApp is het adres een telefoonnummer in E.164-formaat. Het is een apart record naast een [suppression](/docs/guides/whatsapp/opt-outs/suppressions), en beide worden gecontroleerd vóór een verzending.

Voorkeuren bereiken je werkruimte op drie manieren: WhatsApp meldt er een, een ontvanger typt een sleutelwoord, of je legt er zelf een vast. Wat je met elk ervan kunt doen, hangt af van wie de verklaring heeft afgelegd.

## Wat een voorkeur bevat

Een verklaring is ofwel `revoked`, een opt-out, ofwel `granted`, toestemming.

Een verklaring heeft ook een dekking, die bepaalt hoeveel verkeer ze tegenhoudt. `non_transactional` dekt marketing en andere niet-essentiële berichten, terwijl transactionele berichten zoals bonnetjes en verificatiecodes gewoon doorlopen. `all` dekt elk bericht. Het tabblad **Preferences** toont deze in de kolom **Covers** als **Non-transactional** en **All messages**.

Een verklaring kan worden beperkt tot één afzender met `sender_scope`, wat op WhatsApp het zakelijke account identificeert. Zonder die beperking geldt de verklaring kanaalbreed in je werkruimte, inclusief accounts die je later koppelt.

Eén persoon kan meerdere rijen hebben op één kanaal, zoals een kanaalbrede opt-out naast een afzendergebonden opt-out. De meest beperkende verklaring bepaalt of een bericht wordt verzonden.

## Voorkeuren die Bird voor je vastlegt

Wanneer Bird een Meta-event ontvangt dat aangeeft dat een ontvanger marketingberichten heeft stopgezet, legt het een voorkeur met oorsprong bij de ontvanger vast voor dat WhatsApp Business Account. De voorkeur dekt niet-transactionele berichten. Er wordt geen suppression voor alle berichten aangemaakt, en de persoon wordt niet afgemeld voor elk account in je werkruimte.

Een ontvanger kan hetzelfde aangeven door `STOP` te antwoorden. Die voorkeur is gekoppeld aan het zakelijke account waarnaar ze het bericht stuurden, net als de voorgaande. Ze dekt alle berichten, omdat een getypt `STOP` breder is dan de marketing-opt-out van WhatsApp. Zie [sleutelwoordregels](/docs/guides/whatsapp/opt-outs/keyword-rules) voor wat Bird herkent en hoe je het antwoord kunt aanpassen.

Een later hervattingsevent werkt de voorkeur van dat account bij. Suppressions en andere van toepassing zijnde voorkeuren blijven gelden, dus een hervattingsevent alleen bewijst niet dat een verzending is toegestaan.

## Voorkeuren die je zelf vastlegt

Open de pagina [**Suppressions**](https://bird.com/dashboard/w/whatsapp/suppressions) en schakel naar het tabblad **Preferences**. Als je daar een voorkeur vastlegt met **Every business account in the workspace**, ontvangt het adres geen WhatsApp-berichten meer van welk account dan ook, inclusief accounts die je later koppelt.

![Een lijst van abonnees die zich hebben aan- of afgemeld, met de dekking van elke verklaring](/images/docs/dashboard-whatsapp-preferences.png)

Het dialoogvenster **Record opt-out** op dat tabblad legt dekking voor alle berichten vast.

![Een dialoogvenster voor het vastleggen van een opt-out, met het werkruimtebrede bereik geselecteerd](/images/docs/dashboard-whatsapp-preference-new.png)

Om er een vast te leggen die alleen marketing stopt, gebruik je de werkruimtebrede pagina **Contacts** > **Preferences**, waarvan het dialoogvenster **Marketing messages** en **All messages** aanbiedt.

## Voorkeuren uitlezen vanuit code

`GET /v1/preferences` geeft de vastgelegde voorkeuren van de werkruimte terug, meest recent aangemaakt eerst. Geef `channel=whatsapp` mee om te beperken tot dit kanaal, en `handle` erbij om alles op te zoeken wat voor één nummer is vastgelegd voordat je ze een bericht stuurt:

**TypeScript**

```typescript
for await (const preference of bird.preferences.list({
  channel: "whatsapp",
  handle: "+15550001234",
})) {
  console.log(preference.status, preference.coverage, preference.sender_scope);
}
```

Examples: [TypeScript](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.ts.md) · [Python](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.py.md) · [Go](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.go.md) · [PHP](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.php.md) · [CLI](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.cli.md) · [cURL](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.curl.md)

`handle` vereist `channel`, omdat hetzelfde adres op meer dan één kanaal kan bestaan.

## Een voorkeur vastleggen vanuit code

`POST /v1/preferences` legt één verklaring vast. Het schrijven is een upsert op basis van kanaal, adres en afzenderbereik, dus een nieuwe verklaring vervangt de huidige op die sleutel:

**TypeScript**

```typescript
const result = await bird.preferences.create({
  channel: "whatsapp",
  handle: "+15550001234",
  status: "revoked",
  coverage: "non_transactional",
});
console.log(result.applied, result.preference?.id);
```

Examples: [TypeScript](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.ts.md) · [Python](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.py.md) · [Go](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.go.md) · [PHP](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.php.md) · [CLI](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.cli.md) · [cURL](/nl-nl/documentatie/guides/whatsapp/opt-outs/preferences.curl.md)

Verklaringen worden gerangschikt op het moment waarop ze zijn afgelegd, niet op het moment van aankomst. De API weigert een verklaring die ouder is dan de huidige op die sleutel en retourneert `applied: false` met de verklaring die bewaard bleef. De weigering blijft in de geschiedenis van de sleutel staan.

Een `201` betekent dat de sleutel geen record had en deze verklaring er een heeft aangemaakt. Een `200` retourneert het bewaard gebleven record van de sleutel, ongeacht of deze verklaring het heeft vervangen, herhaald of geweigerd is.

## Wat je kunt terugdraaien

Een voorkeur die je zelf hebt vastgelegd, kun je verwijderen via het tabblad **Preferences** of met `DELETE /v1/preferences/{preference_id}` zodra de ontvanger je vraagt de verzending te hervatten.

Een verklaring die de persoon zelf heeft afgelegd, kan alleen door diegene worden teruggedraaid. Een uitschrijving of een stopsleutelwoord eindigt wanneer ze opnieuw toestemming geven, en een delete retourneert `422`. Om het berichtenverkeer te hervatten met hun toestemming, leg je een `granted`-verklaring vast met `consented_at`, het moment waarop ze toestemming gaven. De toekenning geldt wanneer dat moment later is dan de opt-out die ze terugdraait, zodat de verandering van mening wordt vastgelegd in plaats van de oorspronkelijke verklaring te wissen.

Een delete wordt gerangschikt als elke andere verklaring, op basis van het moment van ontvangst. Als het record een verklaring bevat die na dat moment is afgelegd, wordt de delete geweigerd en geretourneerd met `applied: false` samen met het bewaard gebleven record.

## Wanneer een afleveringsfout eerder binnenkomt

Een afleveringsfout van de provider kan een stop melden voordat Bird een bijbehorend event heeft vastgelegd. Respecteer de keuze van de ontvanger en onderzoek de voorkeurs- en eventgeschiedenis in plaats van een ontbrekend lokaal record te behandelen als toestemming om te verzenden.

## Volgende stappen

- [Suppressions](/docs/guides/whatsapp/opt-outs/suppressions): de adressen die je werkruimte rechtstreeks blokkeert.
- [Sleutelwoordregels](/docs/guides/whatsapp/opt-outs/keyword-rules): de woorden die een voorkeur vastleggen op je nummers.
- [WhatsApp-events](/docs/guides/whatsapp/events): de `whatsapp.rejected`-payload die een geblokkeerde verzending oplevert.

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/whatsapp-api) (product)

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