Sign inGet started

Supressões

Uma supressão é um endereço para o qual seu espaço de trabalho não enviará mensagens, registrado com um escopo. Bird bloqueia um envio para um endereço suprimido antes que ele chegue a WhatsApp.
Abra a página Suppressions para trabalhar com a lista, ou use a API abaixo. Registros declarados pelo destinatário ficam na aba Preferences da mesma página e seguem regras diferentes.
Uma lista de quatro números bloqueados, cada um com escopo para todas as contas comerciais ou para uma só

Suprimindo uma conta de negócio

Na aba Suppressions, crie uma supressão para um número de telefone e escolha a conta de negócio à qual ela se aplica. Bird bloqueia mensagens dessa conta, e suas outras contas ainda podem enviar mensagens para o número. A coluna Business account da lista mostra a conta à qual a supressão está vinculada, ou exibe All accounts quando ela cobre todo o seu espaço de trabalho.
POST /v1/whatsapp/suppressions registra a mesma coisa via código. waba é a conta à qual vincular o escopo; omita para bloquear o endereço em todo o seu espaço de trabalho, incluindo contas que você conectar depois:
// Omit waba to block the address for the whole workspace, whichever account
// sends. With it, your other accounts keep reaching them, and the same
// address for two accounts is two records.
const suppression = await bird.whatsapp.suppressions.add({
  address: "+15550001234",
  waba: "102290129340398",
});
console.log(suppression.id, suppression.applies_to);
Uma caixa de diálogo para bloquear um número, com o escopo definido para uma única conta comercial

Um escopo, um registro

Uma supressão carrega um escopo, então o mesmo endereço bloqueado para duas contas são dois registros, não um. Para cobrir todo o espaço de trabalho, faça uma chamada sem waba.
Adicionar um endereço que já está suprimido para esse escopo retorna 200 com o registro existente em vez de criar um segundo. Um novo registro retorna 201.
Uma supressão é indexada pelo endereço que você registra. Um destinatário alcançado por número de telefone e o mesmo destinatário alcançado por um ID de usuário com escopo de negócio são duas chaves, então suprimir um não suprime o outro. Registre ambos se você endereça a mesma pessoa de qualquer forma.

Lendo sua lista de supressões

GET /v1/whatsapp/suppressions retorna as supressões em vigor, da mais recente para a mais antiga, como uma página de cursor. address filtra por prefixo e ignora maiúsculas e minúsculas: um valor parcial corresponde a todos os endereços abaixo dele, e um valor completo corresponde apenas àquele endereço. reason restringe a uma categoria, como manual para as que você adicionou:
// address is a prefix, so a partial value matches every address under it.
const suppressions = await bird.whatsapp.suppressions.list({ address: "+1555" });
for (const suppression of suppressions.data ?? []) {
  console.log(suppression.address, suppression.waba ?? "every account");
}
A lista traz o que está em vigor, e registros encerrados ficam de fora. Um endereço ausente não prova que o espaço de trabalho nunca o suprimiu; o registro pode ter sido encerrado. Leia-o pelo ID para confirmar.

Lendo um registro

GET /v1/whatsapp/suppressions/{suppression_id} resolve tanto um registro encerrado quanto um em vigor, informando quando ele foi encerrado e o que o encerrou:
// Resolves a record that has already ended, which the list leaves out.
const suppression = await bird.whatsapp.suppressions.get("was_01krdgeqcxet5s7t44vh8rt9mg");
console.log(suppression.reason, suppression.ended_at ?? "still in force");

Encerrando uma supressão

A ação Delete em uma linha de supressão encerra a supressão em vez de removê-la. O bloqueio para. O registro continua legível e mostra quando foi encerrado e quem o encerrou. DELETE /v1/whatsapp/suppressions/{suppression_id} faz o mesmo e retorna 204:
// Only a manual suppression can be ended; a recipient's own opt-out is
// theirs to reverse. The record is kept and still reads back by id.
await bird.whatsapp.suppressions.remove("was_01krdgeqcxet5s7t44vh8rt9mg");
Uma supressão que você adicionou carrega o motivo manual e pode ser encerrada. O opt-out do próprio destinatário cabe a ele reverter, e a tentativa retorna 422. Chamar isso novamente em uma supressão já encerrada tem sucesso e não altera nada, e um ID que o espaço de trabalho não possui retorna 404.
Encerrar uma supressão exige o ID dela, então consulte a lista primeiro.

Monitorando novas supressões

whatsapp_suppression.created dispara quando uma supressão é registrada, para que seu próprio sistema veja novos bloqueios sem fazer polling. O payload carrega:
  • suppression_id, o identificador do registro.
  • address, o número suprimido no formato E.164.
  • waba, a conta à qual o bloqueio está limitado, ou null quando cobre todo o espaço de trabalho.
  • reason e workspace_id.
Nenhum evento dispara quando uma supressão é encerrada, então releia a lista antes de confiar em uma cópia que você possui. Consulte eventos de WhatsApp para o payload completo.

Próximos passos