Como conectar as notificações do WhatsApp aos canais do Slack sem usar serviços de terceiros

Integrar notificações do WhatsApp com canais do Slack pode aprimorar significativamente a comunicação da equipe, permitindo atualizações em tempo real do WhatsApp diretamente no seu espaço de trabalho do Slack. Embora serviços de terceiros como Zapier, Onlizer ou ChatArchitect ofereçam integrações perfeitas, algumas empresas preferem evitar dependências externas por motivos como privacidade de dados, custo ou necessidades de personalização. Este guia fornece uma abordagem detalhada e especializada para configurar notificações de eventos do WhatsApp em canais do Slack sem serviços de terceiros, utilizando a API do WhatsApp Business e a API do Slack. O foco é alcançar uma integração segura, escalável e personalizável, adaptada às necessidades do seu negócio.

Por que integrar o WhatsApp com o Slack?

Antes de nos aprofundarmos na configuração técnica, vamos explorar por que essa integração é valiosa:

  • Comunicação centralizada : consolide consultas de clientes, atualizações da equipe ou alertas críticos do WhatsApp em um único canal do Slack para melhor colaboração.
  • Notificações em tempo real : Receba instantaneamente mensagens do WhatsApp ou alertas de eventos (como novas mensagens e atualizações de status) no Slack, reduzindo o tempo de resposta.
  • Sem dependência de terceiros : evite custos recorrentes, preocupações com a privacidade dos dados ou limitações impostas por plataformas externas.
  • Personalização : Crie uma solução sob medida para seus fluxos de trabalho específicos, como filtrar mensagens de alta prioridade ou encaminhá-las para canais específicos.

Este guia pressupõe que você tenha acesso administrativo a uma conta da API do WhatsApp Business, um espaço de trabalho do Slack e conhecimento básico de programação (por exemplo, Node.js ou Python). A solução utiliza webhooks, APIs e um servidor leve para lidar com a integração.

Pré-requisitos

Para configurar as notificações do WhatsApp no ​​Slack sem usar serviços de terceiros, você precisará de:

  1. Conta da API do WhatsApp Business:
    • Uma conta WhatsApp Business registrada com acesso à API.
    • Um número de telefone comercial verificado.
    • Credenciais da API (chave da API, número de telefone e token de acesso).
  2. Espaço de trabalho do Slack:
    • Permissões administrativas ou de proprietário para criar e gerenciar aplicativos do Slack.
    • Um canal específico no Slack para notificações.
  3. Ambiente de desenvolvimento:
    • Um servidor ou plataforma em nuvem (por exemplo, AWS, Heroku ou um servidor Node.js/Python local) para hospedar a lógica de integração.
    • Familiaridade com APIs REST, webhooks e programação básica do lado do servidor.
  4. Ferramentas:
    • Node.js ou Python para programação.
    • Ngrok (para testes locais de webhooks).
    • Para testes de API, utilize cURL ou Postman.

Guia de integração passo a passo

Passo 1: Configurar o Webhook da API do WhatsApp Business

A API do WhatsApp Business usa webhooks para notificar seu servidor sobre mensagens ou eventos recebidos. Você precisará configurar um endpoint de webhook para receber esses eventos.

  1. Criar um ponto de extremidade de webhook:

Configure um servidor simples usando Node.js ou Python. Por exemplo, use Express.js (Node.js) para criar um endpoint:

const express = require ( 'express' ); const app = express(); app.use(express.json());
 app.post( '/webhook' , ( req, res ) => {   console.log ( 'Webhook do WhatsApp recebido:' , req.body); res.status( 200 ).send( 'Webhook recebido' ); });
 app.listen( 3000 , () =>  console.log ( 'Servidor em execução na porta 3000' ));

  • Implante este servidor em um URL público (por exemplo, usando o Heroku) ou use o Ngrok para testes locais, expondo seu localhost à internet.

  1. Configurar Webhook do WhatsApp:


    • Faça login no portal Meta para Desenvolvedores (ou no painel de controle do seu provedor da API do WhatsApp Business).
    • Acesse as configurações da API do WhatsApp Business.
    • Adicione o URL do seu webhook (por exemplo, https://seu-servidor.com/webhook).
    • Configure o webhook para escutar eventos como mensagens (para mensagens recebidas) ou status (para atualizações de entrega de mensagens).

Verifique o webhook implementando o endpoint de verificação (o Meta requer um endpoint GET para confirmar a URL do webhook).


app.get( '/webhook' , ( req, res ) => {   const verifyToken = 'YOUR_VERIFY_TOKEN' ;   if (req.query[ 'hub.mode' ] === 'subscribe' && req.query[ 'hub.verify_token' ] === verifyToken) { res.status( 200 ).send(req.query[ 'hub.challenge' ]); } else { res.status( 403 ).send( 'Verificação falhou' ); } });


  1. Teste o Webhook:

Envie uma mensagem de teste para o seu número do WhatsApp Business e verifique se o seu servidor recebeu o conteúdo. O conteúdo será semelhante a este:


{   "object" : "whatsapp_business_account" ,   "entry" : [{     "changes" : [{       "value" : {         "messages" : [{           "from" : "1234567890" ,           "text" : { "body" : "Olá, isto é um teste!" } }] } }] }] }

Etapa 2: Crie um aplicativo Slack para publicar notificações

Para enviar eventos do WhatsApp para um canal do Slack, você precisará de um aplicativo do Slack com permissões para publicar mensagens.

  1. Criar um aplicativo Slack:


    • Acesse api.slack.com/apps e clique em “Criar novo aplicativo”.
    • Dê um nome ao seu aplicativo (por exemplo, "WhatsAppNotifier") e selecione seu espaço de trabalho do Slack.
    • Em “Permissões”, adicione a permissão chat:write para permitir que o aplicativo publique mensagens.
  2. Obtenha um token de bot:


    • Nas configurações do aplicativo Slack, acesse “OAuth e permissões”
    • Instale o aplicativo em seu espaço de trabalho e copie o “Token OAuth do usuário do bot” (começa com xoxb-).
  3. Teste de publicação no Slack:

Use o endpoint `chat.postMessage` da API do Slack para testar o envio de uma mensagem. Por exemplo, em Node.js usando o pacote `@slack/web-api`:


const { WebClient } = require ( '@slack/web-api' ); const slack = new WebClient( 'YOUR_SLACK_BOT_TOKEN' );
 async  function  postToSlack ( channel, message ) {   await slack.chat.postMessage({     channel : channel,     text : message }); }
 postToSlack( '#whatsapp-notifications' , 'Mensagem de teste do WhatsApp!' );

  • Certifique-se de que o bot foi convidado para o canal do Slack de destino (por exemplo, /invite @WhatsAppNotifier).

Etapa 3: Conecte os Webhooks do WhatsApp ao Slack

Agora, combine o webhook do WhatsApp com a API do Slack para encaminhar notificações.

  1. Analisar a carga útil do webhook do WhatsApp:

Modifique o endpoint do seu webhook para extrair informações relevantes (por exemplo, número de telefone do remetente, texto da mensagem):

 

app.post( '/webhook' , async (req, res) => {   const payload = req.body;   if (payload.object === 'whatsapp_business_account' ) {     const messages = payload.entry[ 0 ].changes[ 0 ].value.messages;     if (messages && messages.length > 0 ) {       const message = messages[ 0 ];       const sender = message.from;       const text = message.text?.body || 'Mensagem não textual recebida' ;       const slackMessage = `Nova mensagem do WhatsApp de ${sender} : ${text} ` ;       await postToSlack( '#whatsapp-notifications' , slackMessage); } } res.status( 200 ).send( 'Webhook recebido' ); });

  1. Gerenciar mensagens de mídia:

Se a mensagem do WhatsApp contiver mídia (por exemplo, imagens, vídeos), recupere o URL da mídia usando a API do WhatsApp e faça o upload para o Slack:


const axios = require ( 'axios' );
 async  function  handleMediaMessage ( message, slackChannel ) {   const mediaId = message.image?.id || message.video?.id;   if (mediaId) {     const mediaUrl = await getMediaUrl(mediaId);     const mediaResponse = await axios.get(mediaUrl, {       headers : { Authorization : `Bearer YOUR_WHATSAPP_ACCESS_TOKEN` },       responseType : 'stream'
 });     await slack.files.upload({       channels : slackChannel,       file : mediaResponse.data,       filename : `whatsapp_media _${mediaId} `
 }); } }
 async  function  getMediaUrl ( mediaId ) {   const response = await axios.get( `https://graph.facebook.com/v17.0/ ${mediaId} ` , {     headers : { Authorization : `Bearer YOUR_WHATSAPP_ACCESS_TOKEN` } });   return response.data.url; }

  1. Implantar e testar:


    • Implante seu servidor em uma plataforma de nuvem (por exemplo, AWS EC2, Heroku).
    • Envie mensagens de teste para o seu número do WhatsApp Business e verifique se elas aparecem no canal do Slack designado.

Etapa 4: Aprimorar a integração

Para tornar a integração mais robusta, considere estes recursos avançados:

  • Filtragem de mensagens : adicione lógica para filtrar mensagens com base em palavras-chave, remetente ou prioridade. Por exemplo, encaminhe apenas mensagens que contenham a palavra "urgente" para um canal específico do Slack.
  • Comunicação bidirecional : Permite que os usuários do Slack respondam a mensagens do WhatsApp enviando mensagens para o bot do Slack, que as encaminha por meio da API do WhatsApp.
  • Tratamento de erros : Implemente mecanismos de repetição para chamadas de API com falha e registre os erros em um canal dedicado do Slack.
  • Segurança : Proteja seu endpoint de webhook com autenticação (por exemplo, verifique a assinatura do webhook do WhatsApp) e use variáveis ​​de ambiente para dados sensíveis, como tokens de API.

Etapa 5: Monitorar e Manter

  • Monitore a integridade do webhook : verifique regularmente se o seu endpoint de webhook está recebendo eventos. Use ferramentas como o AWS CloudWatch ou um mecanismo de registro simples.
  • Atualização das versões da API : As APIs do WhatsApp e do Slack podem ser atualizadas. Monitore o Meta para Desenvolvedores e a documentação da API do Slack para verificar alterações significativas.
  • Dimensionamento conforme necessário : Se o volume de mensagens aumentar, considere o balanceamento de carga ou a otimização do desempenho do seu servidor.

Desafios e Considerações

  • Restrições da API do WhatsApp : A API do WhatsApp Business possui políticas rigorosas, como aprovação de modelos de mensagens e limites de taxa. Certifique-se de estar em conformidade para evitar a suspensão da conta.
  • Limites de taxa do Slack : A API do Slack possui limites de taxa (por exemplo, 1 mensagem por segundo por canal). Implemente o enfileiramento para notificações de alto volume.
  • Privacidade de dados : Como você está lidando com dados de clientes, assegure a conformidade com o GDPR ou CCPA, protegendo os dados em trânsito e em repouso.
  • Custos de manutenção : Sem serviços de terceiros, você é responsável pelo tempo de atividade do servidor, atualizações e depuração.

Conclusão

Integrar notificações do WhatsApp com canais do Slack sem serviços de terceiros é uma maneira eficaz de otimizar a comunicação, mantendo o controle total sobre seus dados e fluxos de trabalho. Ao utilizar a API do WhatsApp Business e a API do Slack, você pode criar uma solução personalizada que atenda às necessidades da sua equipe. Embora essa abordagem exija conhecimento técnico e manutenção contínua, ela oferece flexibilidade incomparável e economia de custos em comparação com plataformas de terceiros.

Artigos/notícias relacionados

Solicitação de teste gratuito da API do WhatsApp

Seu número pessoal do WhatsApp* ?
Número para a API do WhatsApp Business* ?
URL do site da sua empresa
Qual aplicativo você deseja conectar ao WhatsApp?
Obrigado! Sua inscrição foi recebida!
Ops! Algo deu errado ao enviar o formulário.