Uma automação bidirecional entre Slack e WhatsApp com n8n exige dois fluxos: um recebe eventos do Slack e envia mensagens ao WhatsApp; o outro recebe eventos do WhatsApp e publica no canal correto. O protótipo é simples. Torná-lo confiável exige autenticação, prevenção de loops, idempotência, tratamento de mídia, filas e observabilidade.
Arquitetura recomendada
- Slack → n8n: Slack Trigger recebe a mensagem e valida a assinatura do Slack.
- Normalização: o fluxo transforma usuário, canal, texto, anexos e identificadores em um formato comum.
- Roteamento: uma tabela associa canal do Slack, número do WhatsApp e conversa de destino.
- n8n → WhatsApp: o node WhatsApp Business Cloud ou uma chamada HTTP envia a mensagem.
- Fluxo inverso: WhatsApp Trigger recebe a resposta, evita duplicidade e publica no Slack.
O que você precisa antes de começar
- Uma instância do n8n acessível por HTTPS.
- Um app do Slack com Event Subscriptions, scopes adequados e Signing Secret.
- Um canal de teste no Slack.
- Uma conta e um app na plataforma WhatsApp Business da Meta.
- Credenciais válidas para o WhatsApp Business Cloud.
- Uma tabela de mapeamento entre canais e conversas.
- Um local para registrar IDs de mensagens processadas e impedir duplicidade.
O n8n possui nodes nativos para ações do Slack, eventos do Slack, ações do WhatsApp Business Cloud e eventos do WhatsApp. Operações ainda não expostas pelos nodes podem ser feitas pelo node HTTP Request, desde que a API utilizada esteja disponível para a conta.
Fluxo 1: enviar mensagens do Slack para o WhatsApp
1. Crie e conecte o app do Slack
Crie um app no Slack, habilite eventos e adicione somente os scopes necessários. Nas credenciais do n8n, configure o token e o Slack Signing Secret. A documentação do n8n recomenda essa validação para confirmar que as requisições realmente vieram do Slack.
2. Configure o Slack Trigger
Adicione o node Slack Trigger e escolha o evento New Message Posted to Channel. Durante o protótipo, limite o fluxo a um canal específico. A opção de observar todo o workspace gera uma execução para cada evento recebido pelo app e pode aumentar custo e ruído.
Inclua filtros para ignorar mensagens de bots, mensagens editadas sem relevância, eventos de subtipo e o próprio app de integração. Esse filtro é a primeira barreira contra loops.
3. Normalize a mensagem
Use Edit Fields ou Code para criar um objeto estável, por exemplo: source, source_message_id, channel_id, author_id, author_name, text, files e created_at. Separar o formato interno do payload de cada plataforma facilita manutenção e testes.
4. Descubra o destino no WhatsApp
Consulte uma tabela de mapeamento. Ela pode estar em PostgreSQL, Airtable, Google Sheets durante o protótipo ou em um serviço próprio. Não codifique números e canais diretamente em vários nodes: isso cria divergências quando um projeto muda de canal ou número.
| Campo | Exemplo | Função |
|---|---|---|
| slack_channel_id | C0123456789 | Identifica o canal de origem |
| whatsapp_phone_number_id | 1234567890 | Identifica o número empresarial remetente |
| conversation_id | cliente-acme | Identifica a conversa ou contato de destino |
| direction | bidirectional | Define se o fluxo permite enviar, receber ou ambos |
| status | active | Permite pausar a conexão sem apagar a configuração |
5. Envie pelo WhatsApp Business Cloud
Use o node WhatsApp Business Cloud para mensagens e mídia suportadas. As credenciais por API key exigem um Access Token e o WhatsApp Business Account ID. Para mensagens iniciadas pela empresa fora da janela de atendimento, podem existir requisitos de template conforme as regras da plataforma.
Fluxo 2: enviar respostas do WhatsApp para o Slack
1. Configure o WhatsApp Trigger
O WhatsApp Trigger recebe eventos e inicia o workflow. Configure as credenciais OAuth2 indicadas pelo n8n e associe o webhook ao app correto na Meta. Registre também eventos de status quando você precisar acompanhar envio, entrega e leitura.
2. Normalize e identifique a conexão
Extraia o ID da mensagem, o número remetente, o texto, o tipo de mídia e o timestamp. Consulte o mesmo mapeamento para descobrir em qual canal do Slack a mensagem deve aparecer.
3. Publique no Slack
Use o node Slack para enviar a mensagem ao canal. Inclua o nome de quem escreveu no WhatsApp e um identificador visual da integração. Isso evita que a equipe confunda uma mensagem do cliente com uma mensagem interna.
Teste e produção: o detalhe que costuma quebrar a integração
O n8n fornece URLs diferentes para teste e produção. A URL de produção é registrada quando o workflow é publicado. No Slack, um app aceita uma única Request URL para eventos; portanto, alternar entre teste e produção exige atualizar a URL ou usar apps separados. Um fluxo que funciona em teste e para de funcionar quando ativado costuma estar apontando para a URL errada.
Como evitar mensagens em loop
- Ignore eventos criados pelo bot ou app da integração.
- Salve o ID externo de cada mensagem processada com uma chave única.
- Antes de enviar, consulte se o mesmo evento já foi processado.
- Inclua um campo de origem, como
slackouwhatsapp. - Não gere uma nova mensagem de saída a partir de eventos de confirmação, entrega ou leitura.
- Defina um tempo de retenção para as chaves de idempotência.
Grupos do WhatsApp exigem validação adicional
A disponibilidade de APIs para grupos depende dos recursos liberados pela Meta e da elegibilidade da conta. O node padrão do n8n pode não expor todas as operações da Groups API. Para um projeto com grupos, valide a documentação e a conta antes de desenhar a solução; quando a operação existir na API, o HTTP Request pode cobrir recursos ainda ausentes no node nativo.
Mídia, arquivos e áudios
Arquivos não devem ser tratados como texto. O fluxo precisa baixar a mídia da origem, validar tipo e tamanho, armazenar temporariamente de forma segura e fazer upload no destino. Defina limites e uma política de exclusão. A documentação do node WhatsApp Business Cloud suporta trabalho com imagens, áudios, documentos e outros tipos, mas o mapeamento varia conforme a operação.
Reenvio, filas e observabilidade
- Use retries com atraso exponencial para falhas transitórias.
- Separe erros permanentes, como destinatário inválido, de indisponibilidades temporárias.
- Mantenha uma fila de mensagens pendentes e uma forma de reprocessar.
- Registre latência, direção, conexão, ID de origem, ID de destino e resultado.
- Crie alertas para credenciais expiradas, webhooks inativos e crescimento de erros.
- Nunca grave tokens, conteúdo sensível ou arquivos em logs sem necessidade.
n8n ou Zapier?
n8n oferece mais controle sobre transformação, banco de dados, idempotência, execução própria e chamadas HTTP. Zapier reduz o esforço inicial quando os conectores cobrem exatamente o caso. Para um espelhamento bidirecional com estado, mídia, filas e auditoria, o n8n tende a oferecer maior flexibilidade; a contrapartida é assumir infraestrutura e manutenção.
Protótipo versus operação de produção
- Um protótipo pode usar dois workflows, uma planilha de mapeamento e mensagens de texto.
- Produção exige controle de acesso, idempotência, mídia, filas, retries, auditoria, alertas e suporte a mudanças das APIs.
- Quando a integração passa a ser um canal oficial com clientes, ela deixa de ser somente uma automação e se torna parte da infraestrutura de comunicação da empresa.
Perguntas frequentes
É possível integrar Slack e WhatsApp sem programar?
É possível montar um protótipo principalmente com nodes do n8n. Regras de roteamento, mídia, idempotência, grupos e operações não suportadas podem exigir expressões, Code ou HTTP Request.
O workflow precisa ficar ativo para receber eventos?
Sim. Webhooks de produção são registrados e atendidos quando o workflow está publicado e ativo. A URL de teste serve para desenvolvimento e não deve ser usada como endpoint permanente.
Posso usar o mesmo app do Slack para teste e produção?
Pode, mas o Slack aceita uma única Request URL por app. Para reduzir interrupções, ambientes separados costumam usar apps separados.
Essa automação substitui uma integração mantida?
Não necessariamente. Para poucos eventos e baixo risco, ela pode ser suficiente. Quando há clientes, arquivos, grupos, auditoria, alta disponibilidade e compromissos de atendimento, o custo de manter a automação cresce.
Próximo passo
Evite transformar uma automação crítica em dívida operacional
A Twinia entrega a conexão WhatsApp–Slack como produto, com identidade, regras por conexão, monitoramento e continuidade operacional.
