"Lista de bloqueio" de contatos

Falaaaaaaaa comunidade!
Vamos de solução?

Sabe aquela pessoa que você por algum motivo deseja bloquear? Pois é, é trágico mas acontece…

Não existe um recurso de bloqueio propriamente dito, mas existe uma configuração possível para travar esses clientes dentro do fluxo, vou detalhar melhor logo abaixo.

Em primeiro lugar, vou explicar como o blip registra o ID dos usuários, suponha que a pessoa possui o número de telefone 31 987654321, o ID do cliente será [email protected], percebemos o seguinte padrão:

DDI+DDD+NÚ[email protected]ÍNIO_DO_CANAL.

Com o conhecimento acima, vamos acessar o caminho:

  1. Menu … (três pontinhos)
  2. Conteúdos
  3. Recursos

Adicione um novo recurso chamado BLOCKED_USERS com tipo TEXTO e adicione os telefones que deseja bloquear no padrão abaixo:

  1. Entre colchetes []
  2. Cada número entre aspas simples
  3. Cada número separado por vírgula

Exemplo:

[‘5531987654321’, ‘553187654321’, ‘5511987654321’, ‘7bf52947-f5f4-40d9-a708-0c34ed4f6f88.testebruno16’]

Agora acesse o bloco início do seu bot e crie uma ação de saída do tipo executar script e configure-o conforme imagem abaixo.

  1. Variável de entrada: contact.identity *******
  2. Variável de saida: isBlocked
  3. Script:
function run(identity) {
    const blockedList = {{resource.BLOCKED_USERS}};
    identity = identity.split('@')[0];
    return blockedList.includes(identity);
}

Por fim, crie duas condições de saída neste bloco, ambas verificando a variável isBlocked que é retornada do script anterior, caso ela retorne true o cliente é redirecionado para um bloco chamado Bloqueado caso seja false segue o fluxo normalmente.

O bloco Bloqueado deve conter apenas uma entrada do usuário e uma condição de saída do tipo se resposta do usuário existe, devolver para início.

Dessa maneira, o contato indesejado ao falar com o bot terá o número verificado, irá para o bloco bloqueado e ficará presa nesse fluxo sem que receba qualquer interação do bot.

OBSERVAÇÕES

  1. Caso utilize estrutura de roteador com contexto ligado
    1.1 - Configure a BLOCKED_LIST no roteador
  2. Caso utilize estrutura de roteador com contexto desligado
    2.1 Configure a BLOCKED_LIST no sub bot que irá fazer a verificação
    2.2 No script em vez de contact.identity passe a variável tunnel.originator
  3. Caso utilize um bot simples
    3.1 Configure a BLOCKED_LIST no bot
    3.2 No script utilize a variável contact.identity
  4. Alguns números (principalmente mais antigos) ainda possuem registro no servidor do whatsapp com 8 digitos, então na dúvida, inclua as duas variáveis, 8 e 9 dígitos, exemplo: 5531987654321 e 553187654321.

Se preferir, também pode tirar a dúvida consultando o ID do contato no bot conforme documentação Como encontrar o identificador de um usuário.

A solução funciona para outros canais também, eles seguem o mesmo padrão de indetificação, [email protected], portanto, suponha que o ID do cliente do instagram é [email protected], basta adicionar o 56165145165131531241837185 na lista :wink:

8 curtidas

Bom dia, Bruno.
Tudo bem?
Isso não vai impedir o usuário de continuar enviando mensagens para o Bot, certo?
Ainda vamos continuar recebendo fotos, dados pessoais/sensíveis etc. E continuamos com os custos de MAUs e para o WhatsApp os custos de sessões de 24 horas.
Tenho alguns usuários dentro dos nossos canais, que “conversam” com o Bot todos os dias enviando dados não solicitados.

Olá, tudo ótimo, espero que você tb esteja!

Exatamente, essa solução gera uma sensação de bloqueio, é a solução que temos atualmente e pode ser implementada de outras formas, mas com a mesma estratégia.

Perfeito.
Vamos cobrar da Meta uma solução para isso.
Coloquei a parte de custos, mas a parte complicada são os dados sensíveis que recebemos destes usuários. Não preciso nem detalhar os tipos de fotos que recebemos por aqui e que não sabemos o verdadeiro dono.