Link di cancellazione
Un destinatario della tua mail di marketing ha due modi per rinunciare: il pulsante di cancellazione che il provider di posta visualizza e un link nel corpo del messaggio. Li inseriamo entrambi in ogni invio marketing, segnaliamo ogni opt-out come evento webhook e registriamo l'opt-out dell'indirizzo in modo che la tua prossima campagna lo salti. Impostare la categoria correttamente è l'unica parte che spetta a te.
Impostare la categoria
Una cancellazione ha senso solo per mail da cui un destinatario può rinunciare, ed è per questo che la categoria viene prima. Un invio è category: "marketing" per impostazione predefinita, quindi campagne, newsletter e annunci vengono gestiti correttamente senza interventi aggiuntivi. Imposta category: "transactional" esplicitamente sulla mail operativa, e noi la lasciamo com'è. Una ricevuta o un reset della password non ha link di cancellazione e non viene mai bloccata dall'opt-out precedente di qualcuno.
Dietro a questo ci sono due obblighi. I mittenti massivi sono obbligati da Gmail e Yahoo a offrire la cancellazione con un clic sulla mail di marketing, e un link visibile nel corpo del messaggio è richiesto separatamente dalla legge nella maggior parte dei mercati. Un invio marketing li ha entrambi.
Il pulsante di cancellazione con un clic
È il controllo di cancellazione che i provider di posta disegnano nell'intestazione del messaggio. Deriva da una coppia di header, List-Unsubscribe e List-Unsubscribe-Post, e i provider offrono la versione con un solo tocco solo quando entrambi sono presenti e l'endpoint di opt-out accetta un POST non autenticato senza passaggio di conferma. Questo è il contratto che Gmail e Yahoo verificano.
La mail di marketing esce con quegli header già presenti, indipendentemente da come la invii: un broadcast dalla dashboard o un messaggio marketing tramite POST /v1/email/messages. Niente da costruire, niente da ospitare.
Poiché quella coppia di header sulla mail di marketing è gestita da noi, impostare un proprio List-Unsubscribe o List-Unsubscribe-Post su un invio marketing viene rifiutato con un 422. Su un invio transactional non aggiungiamo alcun header di cancellazione, e puoi impostare il tuo tramite il campo headers se hai motivo di farlo.
Un destinatario che usa il pulsante del provider genera un evento email.list_unsubscribed.
Il link nel corpo del messaggio
Il secondo percorso è un link di cancellazione visibile nel messaggio stesso. Ne aggiungiamo uno al corpo HTML dei tuoi invii marketing, in modo che il destinatario abbia sempre qualcosa su cui cliccare. Puoi aggiungere anche un tuo link, che punti a un centro preferenze da te ospitato, e il nostro resta accanto come base di conformità.
Per impostazione predefinita il link appare come un piccolo footer alla fine del corpo. Per scegliere tu la posizione, inserisci la variabile riservata {{ bird.unsubscribe_url }} dove vuoi che compaia il link:
Esempio di codice
<p>
You received this because you subscribed to our newsletter. You can {{ bird.unsubscribe_url }} at
any time.
</p>Il link viene allora renderizzato lì anziché aggiunto in coda al footer, come un'ancora il cui testo è "unsubscribe". Puoi anche usarlo come valore href (<a href="{{ bird.unsubscribe_url }}">Leave this list</a>) per mantenere testo e stile personalizzati.
La sostituzione avviene solo sulla copia in uscita, quindi rileggendo il messaggio tramite API ottieni il contenuto originale con la variabile ancora presente.
Personalizza la pagina di destinazione in Email > Unsubscribe page. Imposta il nome del mittente, lo sfondo, il testo e i colori dei pulsanti. Il nome del mittente assume per impostazione predefinita il nome della tua organizzazione. Usa il link di esempio per visualizzare l'anteprima del risultato.
Un destinatario che usa il link nel corpo del messaggio genera un evento email.unsubscribed, distinto da email.list_unsubscribed in modo da poter distinguere i due percorsi.
Cosa fa un opt-out
Smettiamo di inviare al destinatario senza che tu debba agire sul webhook. Entrambi gli eventi registrano l'indirizzo del destinatario come cancellato dalla mail non transazionale, il che significa:
- Gli invii marketing verso l'indirizzo vengono rifiutati con email.rejected e rejection_reason: "recipient_suppressed". Quel motivo segnala qualsiasi blocco a livello di destinatario, sia una soppressione sia una preferenza dichiarata, quindi è quello su cui filtrare in ogni caso.
- Gli invii transactional passano comunque, perché una cancellazione indica che il destinatario non vuole più campagne. L'indirizzo in sé continua a funzionare.
Una cancellazione è una preferenza dichiarata, non una soppressione: compare nella scheda Preferences di Email > Suppressions e nella pagina di dettaglio del contatto, non nella lista delle soppressioni. Solo quell'indirizzo ne è interessato, e il record mostra chi ha rinunciato e quando.
Gli eventi webhook ti permettono di replicare l'opt-out nel tuo database, cambiare un flag di iscrizione o registrarlo. Entrambi includono i campi identificativi di ogni evento email: email_id, recipient_id, workspace_id, l'indirizzo recipient e il suo recipient_role. Includono anche tags e metadata dell'invio originale, così puoi riconciliarli con i tuoi record senza un'ulteriore ricerca, e broadcast_id che indica il broadcast di cui faceva parte la mail, oppure null quando l'invio non aveva un broadcast associato. Un link di cancellazione proveniente da mail inviate prima dell'aggiunta del campo non indica alcun broadcast, quindi un opt-out tramite un tale link riporta null su entrambi gli eventi, che la mail sia stata inviata con un broadcast o meno. Iscriviti a questi eventi nello stesso modo di qualsiasi altro evento email; il riferimento agli eventi contiene i payload completi.
Una cancellazione è una dichiarazione del destinatario stesso, quindi non puoi rimuoverla tramite API delle soppressioni come faresti con una soppressione. Per riprendere a inviare all'indirizzo, registra un opt-in su Contacts > Preferences, oppure chiama POST /v1/preferences con status: granted. Quella pagina a livello di spazio di lavoro registra le dichiarazioni per ogni canale, mentre la scheda su Email > Suppressions mostra quelle email. In ogni caso, scavalcare l'opt-out richiede consented_at, il momento in cui il destinatario ha acconsentito, e l'opt-in ha effetto solo quando quel momento è successivo all'opt-out che annulla.
Prossimi passi
- Categorie: perché marketing è ciò che rende effettiva una cancellazione
- Soppressioni: la lista dei fatti di recapitabilità e in cosa si distingue da una preferenza dichiarata
- Eventi email: i payload completi di email.unsubscribed e email.list_unsubscribed
- Requisiti di Gmail e Yahoo: dove la cancellazione con un clic è richiesta per i mittenti massivi
- Webhook: iscrizione di un endpoint, verifica della firma e ripetizione dei tentativi
Risorse correlate
Prosegui con la documentazione, le guide e gli esempi per questo argomento. Le risorse sono in inglese.
Guarda la guidaGetting started with emailEsplora la funzionalitàEmailSegui il percorso di apprendimentoBuild your first integrationGuida all'implementazioneSend your first email
Prova l'esercitazione e ottieni un brief di implementazione