Como integrar Slack e WhatsApp com n8n: automação bidirecional passo a passo

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.

CampoExemploFunção
slack_channel_idC0123456789Identifica o canal de origem
whatsapp_phone_number_id1234567890Identifica o número empresarial remetente
conversation_idcliente-acmeIdentifica a conversa ou contato de destino
directionbidirectionalDefine se o fluxo permite enviar, receber ou ambos
statusactivePermite 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 slack ou whatsapp.
  • 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.

Fontes oficiais e documentação