# Preferenze

Una preferenza è una dichiarazione su ciò che una persona desidera, registrata sul suo handle in un canale. Su WhatsApp l'handle è un numero di telefono in formato E.164. È un record separato da una [soppressione](/docs/guides/whatsapp/opt-outs/suppressions), ed entrambi vengono verificati prima di un invio.

Le preferenze raggiungono il tuo spazio di lavoro in tre modi: WhatsApp ne segnala una, un destinatario digita una keyword, oppure ne registri una tu stesso. Cosa puoi fare con ciascuna dipende da chi l'ha dichiarata.

## Cosa contiene una preferenza

Una dichiarazione è `revoked`, un opt-out, oppure `granted`, un consenso.

Contiene anche una copertura, che determina quanto traffico blocca. `non_transactional` copre i messaggi di marketing e altri messaggi non essenziali, mentre i messaggi transazionali come ricevute e codici di verifica continuano a essere recapitati. `all` copre ogni messaggio. La scheda **Preferences** li mostra nella colonna **Covers** come **Non-transactional** e **All messages**.

Una dichiarazione può restringersi a un singolo mittente con `sender_scope`, che su WhatsApp identifica l'account business. Senza di esso, la dichiarazione copre il canale nell'intero spazio di lavoro, compresi gli account che colleghi in seguito.

Una persona può avere più righe su un canale, ad esempio un opt-out a livello di canale accanto a uno con ambito mittente. La dichiarazione più restrittiva decide se un messaggio viene inviato.

## Preferenze che Bird registra per te

Quando Bird riceve un evento Meta che indica che un destinatario ha interrotto i messaggi di marketing, registra una preferenza di origine destinatario per quell'account business WhatsApp. La preferenza copre i messaggi non transazionali. Non crea una soppressione per tutti i messaggi e non esclude la persona da ogni account nel tuo spazio di lavoro.

Un destinatario può dichiarare la stessa cosa rispondendo `STOP`. Quella preferenza ha come ambito l'account business a cui ha scritto, come quella precedente. Copre tutti i messaggi, perché un `STOP` digitato è più ampio dell'opt-out marketing di WhatsApp. Consulta le [regole keyword](/docs/guides/whatsapp/opt-outs/keyword-rules) per sapere cosa riconosce Bird e come modificare la risposta.

Un evento di ripresa successivo aggiorna la preferenza di quell'account. Le soppressioni e le altre preferenze applicabili restano in vigore, quindi un evento di ripresa da solo non dimostra che un invio sia consentito.

## Preferenze che registri tu

Apri la pagina [**Suppressions**](https://bird.com/dashboard/w/whatsapp/suppressions) e passa alla scheda **Preferences**. Registrandone una con **Every business account in the workspace** impedisci all'indirizzo di ricevere messaggi WhatsApp da ogni account che possiedi, compresi quelli che colleghi in seguito.

![Un elenco di iscritti che hanno scelto di ricevere o non ricevere messaggi, con la copertura di ogni dichiarazione](/images/docs/dashboard-whatsapp-preferences.png)

Il dialog **Record opt-out** in quella scheda registra una copertura per tutti i messaggi.

![Una finestra di dialogo per registrare un opt-out, con l'ambito a livello di spazio di lavoro selezionato](/images/docs/dashboard-whatsapp-preference-new.png)

Per registrarne una che blocchi solo il marketing, usa la pagina **Contacts** > **Preferences** a livello di spazio di lavoro, il cui dialog offre **Marketing messages** oltre a **All messages**.

## Leggere le preferenze da codice

`GET /v1/preferences` restituisce le preferenze registrate dello spazio di lavoro, dalla più recente alla meno recente. Passa `channel=whatsapp` per restringere a questo canale e `handle` insieme per consultare tutto ciò che è registrato per un numero prima di inviargli un messaggio:

**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](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.ts.md) · [Python](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.py.md) · [Go](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.go.md) · [PHP](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.php.md) · [CLI](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.cli.md) · [cURL](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.curl.md)

`handle` richiede `channel`, poiché lo stesso handle può esistere su più di un canale.

## Registrare una preferenza da codice

`POST /v1/preferences` registra una dichiarazione. La scrittura è un upsert con chiave su canale, handle e ambito mittente, quindi una nuova dichiarazione sostituisce quella corrente della chiave:

**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](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.ts.md) · [Python](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.py.md) · [Go](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.go.md) · [PHP](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.php.md) · [CLI](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.cli.md) · [cURL](/it-it/documentazione/guides/whatsapp/opt-outs/preferences.curl.md)

Le dichiarazioni sono ordinate in base a quando sono state fatte, non a quando arrivano. API rifiuta una dichiarazione con data anteriore a quella corrente della chiave e restituisce `applied: false` con la dichiarazione rimasta in vigore. Il rifiuto resta nella cronologia della chiave.

Un `201` significa che la chiave non aveva alcun record e questa dichiarazione ne ha creato uno. Un `200` restituisce il record rimasto in vigore della chiave, sia che questa dichiarazione lo abbia sostituito, ripetuto o sia stata rifiutata.

## Cosa puoi annullare

Una preferenza che hai registrato tu puoi rimuoverla dalla scheda **Preferences** o con `DELETE /v1/preferences/{preference_id}` quando il destinatario ti chiede di riprendere l'invio.

Una dichiarazione fatta dalla persona stessa spetta a lei annullarla. Un'annullamento dell'iscrizione o una keyword di stop termina quando la persona effettua di nuovo l'opt-in, e un'eliminazione restituisce `422`. Per riprendere l'invio con il suo consenso, registra una dichiarazione `granted` con `consented_at`, il momento in cui ha acconsentito. Il consenso si applica quando quel momento è successivo all'opt-out che annulla, registrando così il cambio di decisione anziché cancellare la dichiarazione originale.

Un'eliminazione è ordinata come qualsiasi altra dichiarazione, in base al momento in cui viene ricevuta. Se il record contiene una dichiarazione fatta dopo quel momento, l'eliminazione viene rifiutata e restituita con `applied: false` insieme al record rimasto in vigore.

## Quando un errore di recapito arriva prima

Un errore di recapito del provider può segnalare uno stop prima che Bird abbia registrato un evento corrispondente. Rispetta la scelta del destinatario e indaga la cronologia delle preferenze e degli eventi anziché trattare l'assenza di un record locale come permesso di inviare.

## Passaggi successivi

- [Soppressioni](/docs/guides/whatsapp/opt-outs/suppressions): gli indirizzi che il tuo spazio di lavoro blocca direttamente.
- [Regole keyword](/docs/guides/whatsapp/opt-outs/keyword-rules): le parole che registrano una preferenza sui tuoi numeri.
- [Eventi WhatsApp](/docs/guides/whatsapp/events): il payload `whatsapp.rejected` prodotto da un invio bloccato.

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