Configuração de Webhook
Webhooks são a forma como a Meta entrega toda mensagem de entrada, status de entrega e atualização de template ao Switchbord. Sem um webhook configurado corretamente, sua caixa de entrada não receberá mensagens. Este guia cobre os passos exatos para configurar webhooks da Meta — seja você usando a plataforma hospedada emapp.switchbord.ai ou uma instância self-hosted.
Como Funciona
Quando um usuário envia uma mensagem para o seu número do WhatsApp, a Meta chama sua webhook URL com o payload do evento. O Switchbord:- Verifica a assinatura usando seu App Secret
- Armazena o envelope bruto no Supabase
- Roteia o evento para a caixa de entrada do operador em tempo real
?w= na webhook URL informa ao Switchbord a qual workspace o evento pertence. É assim que o multi-tenancy funciona — cada workspace tem uma callback URL única.
Configuração Passo a Passo
1
Encontre seu Workspace ID
No Switchbord, acesse Settings → General. Copie seu Workspace ID — é um UUID que se parece com
a1b2c3d4-....Você anexará isso à webhook callback URL na próxima etapa.2
Configure a callback URL na Meta
No Meta for Developers, abra seu app e acesse:WhatsApp → Configuration → WebhookClique em Edit e defina:
-
Callback URL:
Substitua
{your-workspace-id}pelo UUID da etapa anterior. Para instâncias self-hosted, substituaapi.switchbord.aipelo seu próprio domínio de API. -
Verify token: Uma string que você escolhe. Você também vai inserir isso nas Settings do Switchbord. Use uma string aleatória — por exemplo,
openssl rand -hex 20em um terminal.
3
Assine os campos de webhook
Após salvar a callback URL, role para baixo até Webhook fields e clique em Manage.Assine os seguintes campos:
Clique em Done.
Você só precisa de
messages para a operação básica da caixa de entrada. Campos adicionais como message_template_status_update
podem ser adicionados depois para notificações de sincronização de templates.4
Defina o verify token no Switchbord
No Switchbord, acesse Settings → Provider → Channel.Insira o Verify token — a mesma string que você usou na configuração do webhook da Meta.Salve as configurações.
5
Defina o signing secret do webhook
O signing secret é o seu Meta App Secret. O Switchbord o usa para verificar o cabeçalho
X-Hub-Signature-256 em cada webhook recebido — se a assinatura não corresponder, o payload é rejeitado.Encontre seu App Secret:No Meta for Developers, abra seu app → App Settings → Basic.Clique em Show ao lado de App secret e copie o valor.No Switchbord, acesse Settings → Provider → Channel e insira o App Secret como o Webhook signing secret.6
Verifique se a configuração está funcionando
Envie uma mensagem de teste para o seu número do WhatsApp a partir de um telefone real. Depois:
- Abra o Switchbord → Inbox — a mensagem deve aparecer em poucos segundos
- Abra o Switchbord → Operations — procure por uma entrada recente de webhook com status
verified
- Verifique a página Operations em busca de webhooks rejeitados (um status vermelho significa que a verificação de assinatura falhou)
- Confirme que o App Secret nas Settings corresponde ao das Meta App Settings → Basic
- Confirme que seu número do WhatsApp está em Live mode (não em Development) — o modo Development só recebe mensagens de testers
Por Que o Parâmetro ?w= É Importante
O Switchbord é multi-tenant. Múltiplos workspaces podem compartilhar um único deployment de API, cada um com seu próprio número do WhatsApp e credenciais.
O parâmetro ?w= é como o Switchbord roteia o webhook de entrada para o workspace correto. Sem ele, o ingress de webhook não consegue determinar a qual workspace atribuir o evento e rejeitará o payload.
Cada workspace recebe sua própria callback URL:
api.switchbord.ai.
Referência de Credenciais
Solução de Problemas
A verificação do webhook falha imediatamente- Garanta que a API esteja acessível publicamente.
localhostnão vai funcionar — use um túnel (ngrok, Cloudflare Tunnel) para desenvolvimento local. - A callback URL deve incluir o parâmetro
?w=com um UUID de workspace válido. - O verify token na Meta deve corresponder exatamente ao das Switchbord Settings.
- Verifique Operations em busca de rejeições de webhook. Um erro
signature_mismatchsignifica que o App Secret no Switchbord não corresponde ao da Meta. - Certifique-se de que o campo
messagesestá assinado no gerenciador de campos de webhook da Meta. - Confirme que o número de telefone está em Live mode, não em modo Development.
- A Meta reenvia webhooks que falharam. Se sua API esteve temporariamente inacessível, os eventos serão reproduzidos automaticamente.
- Verifique a página Operations em busca de uma fila de reproduções pendentes.
- Veja o Runbook de Operações para etapas de escalonamento.
Guias Relacionados
- Conectar WhatsApp — configuração completa de credenciais, incluindo WABA ID, número de telefone e token de System User
- Configuração de Credenciais da Meta — guia detalhado para tokens de System User e configuração de Business Portfolio
- Operações de Webhook — modelo interno de webhook, esquema de envelope e ferramentas de replay