Skip to main content

Visão Geral

O Bloqueio Inteligente é um sistema completo para gerenciar contatos que não devem receber mensagens. Essencial para:

Conformidade Legal

Respeitar LGPD, opt-outs e requisitos regulatórios

Qualidade de Comunicação

Evitar envio para números inválidos ou desativados

Proteção de Reputação

Manter boa reputação com WhatsApp Business

Economia de Recursos

Não desperdiçar mensagens com contatos não receptivos

Como Funciona

1. Métodos de Bloqueio

Individual

Bloquear um único número através da API ou interface web

Importação em Massa

Importar CSV com até 1000 números por vez

Banco de Dados

Importar direto de bancos PostgreSQL configurados

2. Filtro Automático

O filtro é aplicado automaticamente em TODAS as campanhas, sem necessidade de configuração adicional.
Processo de filtragem:

3. Normalização Inteligente

Todos os números são normalizados automaticamente:
EntradaSaída Normalizada
(11) 99999-99995511999999999
011 99999-99995511999999999
+55 11 99999-99995511999999999
119999999995511999999999
9999999995511999999999
Regras de normalização:
  • Remove caracteres especiais: ()-.
  • Remove zeros à esquerda
  • Adiciona código do país (55) quando ausente
  • Adiciona código de área quando detectável
  • Padroniza para formato E.164

Interface Web

Acesso

1

Navegue para Configurações

Acesse o menu Configurações no painel lateral
2

Clique em Bloqueio Inteligente

Selecione “Gerenciar Contatos Bloqueados”
3

Gerencie sua lista

Adicione, remova ou importe contatos

Funcionalidades

Adicionar Individual

Digite o número e motivo do bloqueio

Importar CSV

Faça upload de arquivo com múltiplos números

Buscar Contato

Pesquise números específicos na lista

Desbloquear

Remova contatos da lista de bloqueio

Integração com Bancos de Dados

Configuração

  1. Configure um banco PostgreSQL no painel Super Admin
  2. Defina a query SQL que retorna números bloqueados
  3. Use na importação de contatos bloqueados

Exemplo de Query

-- Query deve retornar coluna 'phone' ou 'phoneNumber'
SELECT 
    telefone as phone,
    'Opt-out via sistema' as reason
FROM 
    clientes
WHERE 
    optout = true
    AND telefone IS NOT NULL

Mapeamento de Colunas

Coluna SQLCampo no Sistema
phone ou phoneNumberNúmero do telefone
reason (opcional)Motivo do bloqueio
name (opcional)Nome do contato

API Reference

Bloquear Contato Individual

POST /api/blocked-contacts
curl -X POST https://api.exemplo.com/api/blocked-contacts \
  -H "X-Access-Token: seu-token" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "11999999999",
    "reason": "Solicitou opt-out via WhatsApp"
  }'

Importar em Massa

POST /api/blocked-contacts/import
const contatos = [
  { phoneNumber: '11999999999', reason: 'Lista opt-out mensal' },
  { phoneNumber: '11888888888', reason: 'Número inválido' }
];

const response = await fetch('https://api.exemplo.com/api/blocked-contacts/import', {
  method: 'POST',
  headers: {
    'X-Access-Token': 'seu-token',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(contatos)
});

Verificar Múltiplos Contatos

POST /api/blocked-contacts/check
const numeros = ['11999999999', '11888888888', '11777777777'];

const response = await fetch('https://api.exemplo.com/api/blocked-contacts/check', {
  method: 'POST',
  headers: {
    'X-Access-Token': 'seu-token',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ phoneNumbers: numeros })
});

// Resposta
{
  "11999999999": true,   // bloqueado
  "11888888888": false,  // não bloqueado
  "11777777777": true    // bloqueado
}

Restrições por Empresa

A funcionalidade de Bloqueio Inteligente pode ser desabilitada por empresa através do painel Super Admin.
Quando desabilitada:
  • O botão fica inativo na interface
  • A API continua funcionando
  • Mensagem informativa é exibida
  • Contatos NÃO são filtrados automaticamente

Boas Práticas

1. Sempre Documente o Motivo

{
  phoneNumber: "11999999999",
  reason: "Opt-out via email em 15/01/2024 - Ticket #12345"
}

2. Use Importação em Massa

// Uma única requisição para múltiplos contatos
await api.importBlockedContacts(listaDeContatos);

3. Valide Antes de Grandes Campanhas

// Verificar impacto antes de criar campanha
const verificacao = await api.checkBlockedContacts(contatosCampanha);
const bloqueados = Object.values(verificacao).filter(b => b).length;

console.log(`${bloqueados} de ${contatosCampanha.length} serão filtrados`);

Performance e Limites

Importação

Máximo 1000 números por requisição

Lista Total

Sem limite de contatos bloqueados

Verificação

Recomendado lotes de 1000

Otimizações

  • Cache inteligente para verificações frequentes
  • Índices otimizados no banco de dados
  • Queries em batch para melhor performance
  • Suporta milhões de registros por empresa

Histórico e Auditoria

Informações Registradas

Cada ação de bloqueio/desbloqueio registra:
CampoDescrição
blockedByEmail do usuário que executou
blockedAtData e hora do bloqueio
unblockedAtData e hora do desbloqueio
reasonMotivo fornecido
sourceOrigem (API, Web, Import)

Soft Delete

  • Contatos desbloqueados não são deletados
  • Histórico completo é preservado
  • Possível reativar bloqueios anteriores
  • Auditoria completa disponível

Integração com Campanhas

Resposta ao Criar Campanha

{
  "id": 123,
  "name": "Campanha de Janeiro",
  "status": "SCHEDULED",
  "totalContacts": 950,           // Apenas contatos válidos
  "blockedContactsRemoved": 50,   // Quantidade filtrada
  "createdAt": "2024-01-15T10:00:00Z"
}

Transparência Total

  • Número original é sempre informado
  • Quantidade filtrada é destacada
  • Lista de bloqueados pode ser consultada
  • Logs detalham todo o processo

FAQ

Sim, através da interface web em Configurações > Bloqueio Inteligente ou via API com DELETE /api/blocked-contacts/{phoneNumber}.
Não, apenas campanhas criadas APÓS o bloqueio serão afetadas. Campanhas em execução continuam normalmente.
Não há limite técnico. O sistema foi otimizado para suportar milhões de registros por empresa.
Configure o banco no painel Super Admin, crie uma query que retorne os números, e use a opção de importação do banco.
Não, cada empresa tem sua lista independente. Um número bloqueado na empresa A pode receber mensagens da empresa B.

Próximos Passos

I