Manual · Atendimento WhatsApp Painel Inbox

Manual do Atendimento WhatsApp

O sistema conecta o número oficial de WhatsApp da sua empresa ao seu sistema interno. O bot atende sozinho (2ª via de fatura, dúvidas, IA), passa a conversa para um atendente quando precisa e envia comunicados, tudo pela API oficial da Meta.

AdministradorConfigura o painel: fluxos, IA, integrações, usuários. Seções 3 a 6 e 9.
AtendenteAtende os clientes pela inbox. Seção 8.
Equipe de TIIntegra o sistema da empresa (ERP). Seção 7.

1. O que o sistema faz

RecursoO que fazOnde fica
Bot de atendimentoResponde 24h seguindo um fluxo (menus, perguntas, consultas ao seu sistema). Já vem um modelo pronto de 2ª via de fatura.Painel → Fluxos
IAResponde perguntas livres usando as instruções e a base de conhecimento da empresa, e pode consultar o seu sistema.Painel → Configurações e Conhecimento
Atendimento humanoFila de conversas, assumir, responder, enviar arquivos, devolver ao bot e encerrar, em tempo real.Inbox
ComunicadosEnvio em massa para quem aceitou receber (avisos de fatura, manutenção, cobrança).API (seção 7)
TemplatesModelos de mensagem aprovados pela Meta, obrigatórios para falar com o cliente depois de 24h sem resposta.Painel → Templates
IntegraçõesConsultas ao seu sistema (cliente, faturas, segunda via), com credenciais guardadas criptografadas.Painel → Integrações
Verificação de identidadeSó libera dados do cliente se ele falar do número cadastrado; de outro número, faz perguntas de segurança.Automático (seção 7.3)
GovernançaBloqueia pedidos de senhas e dados internos, vazamento de dados de terceiros e links falsos. Registra tudo.Painel → Governança
LGPDAviso de privacidade, opt-in/opt-out (cliente envia SAIR), retenção automática, exportação e exclusão de dados.Painel → Configurações

2. Como funciona

O cliente fala com o número da empresa; a Meta entrega a mensagem ao módulo; o módulo decide quem responde (bot, IA ou atendente) e, quando precisa de dados, consulta o seu sistema.

A integração tem dois sentidos: o seu sistema chama o módulo para enviar mensagens e comunicados (7.1), e o módulo chama o seu sistema para buscar dados durante o atendimento (7.2). Por isso, sim: a sua equipe de TI precisa criar alguns endpoints.

Cada empresa paga a Meta diretamente pelo próprio número (conversas iniciadas pela empresa são cobradas; respostas dentro de 24h, em geral, não).

3. Configuração inicial

3.1 Operador da plataforma (uma vez)

  1. Gere os segredos de produção com npm run secrets e preencha o que faltar (credenciais da Meta, chave da Anthropic, SMTP, e-mail de alertas, IPs da VPN). Detalhes no arquivo SECURITY.md.
  2. Abra o Console em /admin (só pela VPN). No primeiro acesso entre com a ADMIN_API_KEY e o código do autenticador e cadastre os operadores: cada pessoa recebe login, senha provisória e QR Code do autenticador. A partir daí, a chave não abre mais o console.
  3. Em Nova empresa, informe o nome da empresa e o administrador dela. O sistema mostra uma única vez a API key, o segredo dos avisos e a senha provisória: entregue por canais separados.
  4. Em Gerenciar → Gerar link de conexão do WhatsApp, envie o link à empresa.

3.2 Empresa

  1. Conectar o WhatsApp: abra o link recebido, entre com a conta do Facebook da empresa e escolha o número. O pagamento das mensagens fica na conta da própria empresa na Meta.
  2. Primeiro acesso ao painel (/editor): entre com a senha provisória, defina uma nova senha e ative a verificação em duas etapas (Google ou Microsoft Authenticator). Guarde os 10 códigos de recuperação.
  3. Configurações: horário de atendimento, aviso de privacidade (LGPD), IA ligada ou não, tempo de sessão.
  4. Integrações: peça à TI os endereços dos endpoints (seção 7.2) e cadastre-os, com a credencial de acesso se o sistema exigir token.
  5. Fluxos: clique em Usar modelo de faturas, informe o endereço base do seu sistema, teste no Simulador e clique em Ativar.
  6. Usuários: cadastre os atendentes. Cada um troca a senha e ativa o 2FA no primeiro acesso.

4. Usando o painel

AbaPara que serve
FluxosMonta o roteiro do bot: passos à esquerda, edição no meio e o mapa da conversa à direita (clique num passo do mapa para editar). Só um fluxo fica ativo por vez.
SimuladorConversa com o bot sem enviar nada ao WhatsApp. Use antes de ativar qualquer mudança. Como o simulador usa um número fictício, ele sempre cai nas perguntas de segurança da verificação de identidade.
ConhecimentoDocumentos (PDF, TXT, MD, CSV) que a IA consulta para responder. Veja a seção 6.
TemplatesCria e acompanha modelos de mensagem da Meta (aprovação leva de minutos a horas). Use variáveis {{1}}, {{2}} com exemplos.
IntegraçõesEndpoints do seu sistema (ações) e credenciais de acesso (token, usuário e senha, OAuth2). As credenciais nunca aparecem depois de salvas.
UsuáriosAdministradores (painel e inbox) e atendentes (só inbox). Redefinir senha, resetar 2FA, desbloquear e desativar.
GovernançaBloqueios de segurança da IA e o histórico de quem alterou o quê, quando e de onde.
ConfiguraçõesBot e IA, verificação de identidade pelo número, horário, privacidade, chaves de integração (gerar nova API key) e dados de clientes (exportar e excluir, LGPD).
Minha contaTrocar senha, 2FA e códigos de recuperação.

5. Fluxos do bot

Um fluxo é uma sequência de passos. Os textos aceitam variáveis, por exemplo {{contact.firstName}} (nome do cliente no WhatsApp) e {{customer.nome}} (nome vindo do seu sistema).

PassoO que faz
MensagemEnvia um texto e segue.
Botões / ListaMostra até 3 botões ou uma lista de até 10 opções; cada opção leva a um passo.
PerguntaPede um dado (CPF/CNPJ, e-mail, número, data) e valida antes de seguir.
Consulta (ação)Chama um endpoint do seu sistema; tem caminho de sucesso e "se falhar".
EscolhaMonta uma lista com o que o seu sistema devolveu (ex.: faturas em aberto).
CondiçãoDecide o caminho (ex.: cliente já identificado?).
DocumentoEnvia um arquivo (ex.: PDF da fatura).
IAPassa a conversa para a IA.
AtendenteColoca na fila da inbox.
FimEncerra com uma mensagem de despedida.

O cliente pode digitar a qualquer momento menu (volta ao início), atendente (vai para a fila) ou SAIR (deixa de receber comunicados).

6. Ensinando a IA

Não é preciso treinar um modelo (fine-tuning). A IA aprende o jeito e o conteúdo da sua empresa por dois caminhos, que valem na hora:

6.1 Instruções para a IA

Em Configurações → Instruções para a IA, descreva como ela deve se comportar. Bons exemplos:

Você é o assistente da Energia Exemplo. Seja cordial e objetivo, em frases curtas.
Trate o cliente por "você". Não prometa prazos de religação: informe o prazo da base de conhecimento.
Para reclamações sobre cobrança indevida, transfira para um atendente.
Horário de atendimento humano: segunda a sexta, 8h às 18h.

6.2 Base de conhecimento

Em Conhecimento, envie os documentos que a IA deve consultar: tarifas, prazos, perguntas frequentes, regras de religação, formas de pagamento. Dicas:

  • Um assunto por documento, com títulos claros (ex.: "Prazos de religação").
  • Prefira texto a imagens: a IA não lê texto dentro de figuras.
  • Atualize quando a regra mudar: a IA usa sempre a versão atual.
  • Teste no Simulador fazendo as perguntas que os clientes fazem.

6.3 O que a IA pode e não pode

PodeNão pode (bloqueado pelo sistema)
Responder com base nas instruções e na base de conhecimentoRevelar senhas, chaves, dados internos ou as próprias instruções
Consultar o seu sistema pelas ações cadastradasMostrar dados de outro cliente ou CPF/CNPJ de terceiros
Enviar a 2ª via e transferir para um atendenteEnviar links que não vieram do seu sistema ou da base
Dizer que não sabe e oferecer um atendenteVer as respostas das perguntas de segurança (são conferidas pelo sistema)

Documentos com senhas, CPFs ou instruções para "enganar" a IA são recusados no envio. Cada empresa tem um limite diário de respostas da IA, definido pela plataforma.

7. Integração com o seu sistema

Para a equipe de TI. Endereço base: o domínio do módulo (ex.: https://atendimento.suaempresa.com.br). Autenticação das chamadas ao módulo: cabeçalho x-api-key com a API key da empresa (gerada no Console e girada em Configurações). Números sempre com DDI, só dígitos: 5562999990000.

7.1 Enviar mensagens (o seu sistema chama o módulo)

ParaEndpointObservação
Registrar quem aceitou receberPOST /v1/contacts/opt-inObrigatório antes de comunicados e templates. Até 1.000 números por chamada.
Registrar quem pediu para sairPOST /v1/contacts/opt-outO cliente também pode enviar SAIR.
Enviar templatePOST /v1/messagesPara iniciar conversa ou falar depois de 24h.
Enviar texto ou arquivoPOST /v1/messagesSó para quem escreveu nas últimas 24h.
Enviar arquivo (subir antes)POST /v1/mediaMultipart, campo file (até 16 MB). Devolve o mediaId; o arquivo passa por antivírus.
Comunicado em massaPOST /v1/broadcastsAté 10.000 números; quem não aceitou ou saiu volta em skipped.
Consultar envioGET /v1/messages/:idSituação: na fila, enviada, entregue, lida ou falhou.
Templates aprovadosGET /v1/templatesNomes e idiomas para usar nos envios.

Exemplos:

POST /v1/contacts/opt-in
x-api-key: wak_...
{ "waIds": ["5562999990000"], "source": "contrato-assinado" }

POST /v1/messages
{ "to": "5562999990000", "type": "template",
  "content": { "name": "aviso_fatura", "language": { "code": "pt_BR" },
               "components": [{ "type": "body", "parameters": [
                 { "type": "text", "text": "Maria" }, { "type": "text", "text": "R$ 312,40" } ] }] } }

POST /v1/messages        (cliente escreveu há menos de 24h)
{ "to": "5562999990000", "type": "text", "content": { "body": "Sua religação foi concluída." } }

POST /v1/broadcasts
{ "to": ["5562999990000", "5562988887777"], "type": "template",
  "content": { "name": "manutencao_programada", "language": { "code": "pt_BR" } },
  "reference": "manutencao-out-2026" }

Respostas de erro mais comuns: 403 contato sem opt-in ou que pediu para sair · 422 fora da janela de 24h (use template) · 429 limite de envio por minuto ou por dia atingido.

7.2 Endpoints que o seu sistema expõe (o módulo chama o seu sistema)

Durante o atendimento, o módulo faz POST nos endereços cadastrados em Integrações. O modelo de faturas usa três:

AçãoEndereço sugeridoRecebeResponde (200 + JSON)
identificar_cliente/identificar-clienteinput.documento (CPF/CNPJ){ id, nome, telefones, verificacao } ou 404 se não existir
listar_faturas/faturascustomer.id{ items: [{ id, referencia, valor, vencimento, status }] }
segunda_via/segunda-viainput.faturaId{ pdfUrl, filename, pix?, linhaDigitavel? }

Toda chamada tem este formato:

POST https://seu-sistema/whatsapp/segunda-via
Authorization: Bearer ...          (se você cadastrou uma credencial)
x-timestamp: 1792268000
x-signature-v2: t=1792268000,sha256=<HMAC-SHA256 de "x-timestamp.corpo" com o segredo dos avisos>
{ "action": "segunda_via",
  "input": { "faturaId": "f-2026-10" },
  "contact": { "waId": "5562999990000", "name": "Maria" },
  "customer": { "id": "c1", "nome": "Maria Silva" } }
  • Valide a assinatura e recuse chamadas com x-timestamp de mais de 5 minutos.
  • Use o customer.id para buscar os dados, nunca um CPF vindo do texto: assim um cliente não acessa dados de outro.
  • O pdfUrl precisa ser HTTPS público, de preferência um link temporário (expira em minutos).
  • Responda em até 15 segundos (ajustável em cada ação, de 1 a 60). 404 = não encontrado (o fluxo segue por "se falhar"); outros erros = o bot avisa e chama um atendente.
  • Endereços internos (rede local, localhost) são bloqueados por segurança: o endpoint precisa ser HTTPS acessível pela internet, protegido pelo token e pela assinatura.

Você pode criar outras ações (consumo, religação, protocolo) em Integrações: a IA as usa automaticamente, guiada pela descrição de cada uma. Marque "exige cliente identificado" em toda ação que devolve dados pessoais.

7.3 Verificação de identidade

Para não entregar dados a quem só sabe o CPF de outra pessoa, o módulo confere quem está falando, depois que o seu sistema encontra o CPF/CNPJ:

SituaçãoO que acontece
O WhatsApp é um dos telefones do titularIdentificado na hora.
É outro número2 perguntas de segurança (data de nascimento e mais uma sorteada). Acertou: segue. Errou 2 vezes: vai para um atendente e fica registrado.
O cadastro não tem telefone nem dados para perguntarVai para um atendente, que confirma a identidade.

Para isso, o identificar_cliente deve devolver:

{ "id": "c1", "nome": "Maria Silva",
  "telefones": ["5562999990000"],
  "verificacao": { "dataNascimento": "1985-03-14", "nomeMae": "Ana Souza Silva",
                   "nomeCompleto": "Maria Aparecida Silva", "cep": "74000-000",
                   "email": "maria@exemplo.com" } }

Telefones em qualquer formato (com ou sem DDI, 9º dígito ou máscara). As respostas certas não ficam guardadas (só uma impressão digital delas), e as respostas do cliente não passam pela IA. Telefones e dados de verificação são descartados depois da conferência.

7.4 Avisos de eventos (opcional)

Se a empresa informar uma URL de avisos, o módulo envia POST a cada mensagem recebida e a cada mudança de situação de envio (message.received, message.sent, message.delivered, message.read, message.failed), com a mesma assinatura do item 7.2 e o cabeçalho x-event-id. Ignore eventos com id repetido: o módulo tenta de novo por até 8 vezes se o seu sistema estiver fora do ar.

8. Inbox dos atendentes

  1. Entre em /inbox com e-mail, senha e código do autenticador.
  2. Na fila estão as conversas que pediram atendente. Clique numa e em Assumir.
  3. Responda pelo campo de mensagem; use o clipe para enviar arquivos (imagens, PDF, documentos).
  4. Ao terminar, Encerrar (a próxima mensagem do cliente abre uma nova conversa) ou Devolver ao bot.

Depois de 24h sem mensagem do cliente, o WhatsApp não permite texto livre: aparece um aviso, e só é possível enviar um template aprovado. Arquivos recebidos passam por antivírus antes de abrir.

9. Segurança e LGPD

Já vem prontoA empresa precisa
Senha forte, 2FA obrigatório, bloqueio após 5 erros, alertas por e-mail de novo acessoGuardar os códigos de recuperação e desativar usuários que saem da empresa
Mensagens, tokens e credenciais criptografados; antivírus nos arquivosProteger os endpoints com token e validar a assinatura (7.2)
Verificação de identidade pelo número (7.3)Enviar telefones e dados de verificação no identificar_cliente
Opt-in/opt-out, aviso de privacidade, retenção automáticaRegistrar o consentimento (/v1/contacts/opt-in) e preencher o aviso de privacidade
Exportação e exclusão de dados por clienteAtender pedidos de titulares em Configurações → Dados de clientes
Auditoria de tudo que é alterado no painelRevisar a aba Governança periodicamente

Desligar a verificação pelo número exige administrador e avisa os demais por e-mail. Não é recomendado.

10. Problemas comuns

SintomaCausa provável e solução
Aviso vermelho "conexão com o WhatsApp"Token da Meta vencido ou conta restrita. Refaça a conexão pelo link (Console → Gerar link) ou veja o Gerenciador do WhatsApp na Meta.
Bot responde "Tive um problema para consultar seus dados"O endpoint do seu sistema falhou ou recusou a credencial. Confira em Integrações e nos logs do seu sistema.
Cliente certo cai nas perguntas de segurançaO número dele não está nos telefones que o seu sistema devolve. Atualize o cadastro.
Comunicado com muitos números em skippedContatos sem opt-in ou que enviaram SAIR. Registre o consentimento antes.
Erro 422 ao enviar textoPassaram 24h desde a última mensagem do cliente. Envie um template.
Erro 429Limite de envios por minuto ou por dia. Aguarde, ou peça à plataforma para ampliar o limite.
Template "rejeitado"A Meta recusou o conteúdo. Ajuste o texto (sem promessas enganosas, variáveis com exemplos) e envie de novo.
Esqueci a senha / perdi o celularUse um código de recuperação. Sem códigos, peça a outro administrador "Resetar 2FA" em Usuários.
Conta bloqueada5 tentativas erradas: espere 15 minutos ou peça a um administrador para desbloquear.

11. Integração com a Meta (operador da plataforma)

Feita uma vez, pela empresa que opera a plataforma. Depois disso, cada empresa cliente só clica no link de conexão (seção 3.2). Tempo total: de 1 a 4 semanas, quase tudo esperando aprovações da Meta.

A Meta muda nomes e posições de menu com frequência. Se uma tela estiver diferente, procure pelo termo em negrito na busca do painel da Meta ou na documentação oficial do WhatsApp.

EtapaOndePrazo típico
1. Conta empresarial e verificaçãobusiness.facebook.com2 a 10 dias úteis
2. Criar o appdevelopers.facebook.com15 minutos
3. Publicar o sistema com HTTPSSeu servidor1 dia
4. WebhookPainel do app15 minutos
5. Testar com número de testePainel do app1 hora
6. Embedded SignupPainel do app30 minutos
7. App Review e Tech ProviderPainel do app1 a 3 semanas
8. Publicar o app (modo Live)Painel do app5 minutos

Etapa 1 — Conta empresarial (Meta Business) e verificação

  1. Acesse business.facebook.com com um perfil pessoal do Facebook de um responsável da empresa (use um perfil real e protegido com 2FA: ele será administrador de tudo).
  2. Crie o Portfólio empresarial com o nome jurídico da empresa, e-mail corporativo e site.
  3. Vá em Configurações → Central de segurança → Verificação da empresa e clique em Iniciar verificação.
  4. Informe razão social, CNPJ, endereço e telefone exatamente como no cartão CNPJ. Envie o documento pedido (cartão CNPJ ou contrato social) e confirme pelo método oferecido (e-mail do domínio, telefone ou documento).
  5. Ative a autenticação de dois fatores obrigatória para todos os administradores do portfólio.

Dica: o site e o e-mail precisam ser do mesmo domínio da empresa. Divergência de nome ou endereço é a causa mais comum de recusa.

Etapa 2 — Criar o app

  1. Acesse developers.facebook.com → Meus apps → Criar app.
  2. Escolha o caso de uso de WhatsApp (ou tipo Empresa/Business) e vincule ao portfólio da etapa 1.
  3. No app, adicione o produto WhatsApp (se não vier adicionado).
  4. Em Configurações do app → Básico, preencha: ícone, URL da Política de Privacidade, URL dos Termos de Serviço, categoria e e-mail de contato. Sem a política de privacidade publicada, o App Review é recusado.
  5. Copie o ID do app e a Chave secreta do app (botão Mostrar) para o .env.production:
    META_APP_ID=123456789012345
    META_APP_SECRET=a1b2c3...   (guarde no cofre; nunca compartilhe)

Etapa 3 — Publicar o sistema com HTTPS

A Meta só envia mensagens para endereço público com HTTPS. Siga SECURITY.md e use o deploy/nginx.conf. Confira antes de continuar:

https://SEU-DOMINIO/health        → {"status":"ok"}

Etapa 4 — Webhook (para receber as mensagens)

  1. No app: WhatsApp → Configuração (ou Configuration) → seção Webhook → Editar.
  2. URL de callback: https://SEU-DOMINIO/webhooks/meta
  3. Token de verificação: o valor de META_WEBHOOK_VERIFY_TOKEN do .env.production (gerado pelo npm run secrets).
  4. Clique em Verificar e salvar. Se falhar: o sistema não está acessível pela internet, o token está diferente ou o HTTPS é inválido.
  5. Em Campos do webhook, clique em Gerenciar e assine o campo messages.

O sistema recusa qualquer aviso que não venha assinado com a sua META_APP_SECRET. Se as mensagens chegam na Meta mas não no painel, confira se a chave secreta no .env.production é a do mesmo app.

11.1 Etapa 5 — Testar com o número de teste (antes de qualquer aprovação)

  1. No app: WhatsApp → Configuração da API (ou API Setup). A Meta já oferece um número de teste gratuito.
  2. Em Para, cadastre até 5 celulares que vão testar (cada um confirma por código no WhatsApp).
  3. Copie o Identificador do número de telefone (Phone number ID) e o Identificador da conta do WhatsApp Business (WABA ID).
  4. Gere um token permanente: no portfólio, Configurações → Usuários do sistema → Adicionar (função Administrador), atribua o app e a conta do WhatsApp, e em Gerar token marque whatsapp_business_messaging e whatsapp_business_management, validade Nunca. O token temporário da tela de API expira em 24h: não use em produção.
  5. No Console da plataforma (/admin), crie uma empresa de teste e informe esses dados por PATCH /admin/tenants/<id> (ou peça à TI):
    { "wabaId": "...", "phoneNumberId": "...", "accessToken": "EAAG..." }
  6. Do celular cadastrado, mande "oi" para o número de teste. A conversa deve aparecer no bot e na inbox. Teste o fluxo de faturas, a IA e o atendimento humano.

Etapa 6 — Embedded Signup (para cada empresa conectar o próprio número)

  1. No app, adicione o produto Login do Facebook para Empresas (Facebook Login for Business).
  2. Em Login do Facebook para Empresas → Configurações, adicione o domínio em Domínios permitidos para o SDK JavaScript e URIs de redirecionamento OAuth válidos: https://SEU-DOMINIO/.
  3. Em Configurações → Criar configuração: tipo de login WhatsApp Embedded Signup, tipo de token Token de acesso do usuário do sistema, ativos Contas do WhatsApp Business, permissões whatsapp_business_messaging e whatsapp_business_management.
  4. Copie o ID da configuração para o .env.production: META_ES_CONFIG_ID=...
  5. Teste: no Console, Gerenciar → Gerar link de conexão do WhatsApp, abra o link e conecte um número. (Enquanto o app não for aprovado, só pessoas com função no app conseguem concluir.)

11.2 Etapa 7 — App Review e Tech Provider

Para que outras empresas conectem o número delas pelo seu app, a Meta precisa aprovar o acesso avançado às permissões e o cadastro como Tech Provider (provedor de tecnologia).

  1. No app: Revisão do app → Permissões e recursos. Solicite Acesso avançado a whatsapp_business_messaging e whatsapp_business_management (e business_management, se pedido).
  2. Para cada permissão, descreva o uso (texto sugerido abaixo) e envie um vídeo.
  3. Conclua o cadastro de Tech Provider quando a Meta solicitar (aparece no painel do app ou na seção WhatsApp; exige a empresa verificada da etapa 1).
  4. Acompanhe em Revisão do app → Solicitações. Se recusarem, a Meta diz o motivo; ajuste e reenvie.

Texto sugerido para a descrição do uso:

Somos uma plataforma de atendimento pelo WhatsApp para empresas de energia e serviços.
Cada empresa cliente conecta o próprio número pelo Embedded Signup e paga a Meta diretamente.
whatsapp_business_management: usamos para listar e criar modelos de mensagem (templates) da
conta do cliente e inscrever nosso app nos webhooks da conta conectada.
whatsapp_business_messaging: usamos para enviar e receber mensagens em nome da empresa cliente:
respostas do atendimento automático (2ª via de fatura), atendimento humano pela nossa inbox e
comunicados para clientes que deram consentimento (opt-in), com opção de saída (SAIR).
Os dados ficam criptografados, com controle de acesso por usuário e 2FA.

Roteiro do vídeo (gravação de tela, 3 a 5 minutos, sem cortes nos momentos-chave, áudio ou legendas em inglês ajudam):

TempoO que mostrarPermissão que comprova
0:00–0:30Tela inicial do sistema e explicação em uma frase: plataforma de atendimento WhatsApp para empresas.—
0:30–1:30Console → Gerar link de conexão → abrir o link → login no Facebook → escolher a conta e o número → conexão concluída.Embedded Signup / management
1:30–2:15Painel → Templates: criar um template e mostrar a lista com a situação de aprovação.management
2:15–3:15Celular ao lado da tela: cliente manda "oi", o bot responde, pede 2ª via, recebe o PDF.messaging (receber e enviar)
3:15–4:00Cliente pede atendente; na inbox, o atendente assume e responde; a resposta chega no celular.messaging
4:00–4:30Cliente envia SAIR e recebe a confirmação; mostrar a política de privacidade.consentimento

Dicas: use dados fictícios (o ERP de teste do sistema serve), mostre a URL do navegador, não exiba tokens nem senhas na tela e use o número de teste da etapa 5.

Etapa 8 — Publicar o app

  1. Com o App Review aprovado, no topo do painel do app mude o Modo do app de Desenvolvimento para Ao vivo (Live).
  2. Teste o link de conexão com uma empresa cliente real.
  3. Pronto: a partir daqui, para cada nova empresa basta o Console (seção 3.1).

Erros comuns na Meta

Mensagem ou sintomaSolução
Verificação da empresa recusadaNome, CNPJ e endereço precisam ser idênticos ao cartão CNPJ; site e e-mail do mesmo domínio.
"Não foi possível validar a URL de callback"Sistema fora do ar, sem HTTPS válido, ou token de verificação diferente do .env.production.
Número já registrado no WhatsAppO número está no app comum do celular: apague a conta do WhatsApp nele (ou migre do WhatsApp Business App) antes de conectar.
Mensagens não chegam no painelCampo messages não assinado no webhook, ou a META_APP_SECRET não é a deste app. No número de teste (conectado à mão, sem o link), inscreva o app na conta: POST https://graph.facebook.com/v25.0/<WABA ID>/subscribed_apps com o token. Pelo link de conexão isso é automático.
Aviso vermelho "token inválido" no painelToken temporário expirou ou foi revogado: gere o token permanente de usuário do sistema (etapa 5).
App Review recusado por falta de demonstraçãoO vídeo precisa mostrar cada permissão funcionando de ponta a ponta, com o celular recebendo a mensagem.