Come collegare le notifiche di WhatsApp ai canali Slack senza servizi di terze parti

L'integrazione delle notifiche WhatsApp con i canali Slack può migliorare significativamente la comunicazione di gruppo, consentendo aggiornamenti in tempo reale da WhatsApp direttamente nell'area di lavoro Slack. Sebbene servizi di terze parti come Zapier, Onlizer o ChatArchitect offrano integrazioni perfette, alcune aziende preferiscono evitare dipendenze esterne per motivi quali la privacy dei dati, i costi o le esigenze di personalizzazione. Questa guida fornisce un approccio dettagliato e di livello esperto per configurare le notifiche degli eventi WhatsApp nei canali Slack senza servizi di terze parti, sfruttando l' API di WhatsApp Business e l'API di Slack. L'obiettivo è ottenere un'integrazione sicura, scalabile e personalizzabile, su misura per le esigenze aziendali.

Perché integrare WhatsApp con Slack?

Prima di addentrarci nella configurazione tecnica, scopriamo perché questa integrazione è preziosa:

  • Comunicazione centralizzata : consolida le richieste dei clienti, gli aggiornamenti del team o gli avvisi critici da WhatsApp in un unico canale Slack per una migliore collaborazione.
  • Notifiche in tempo reale : ricevi immediatamente messaggi WhatsApp o eventi scatenanti (ad esempio nuovi messaggi, aggiornamenti di stato) su Slack, riducendo i tempi di risposta.
  • Nessuna dipendenza da terze parti : evita costi ricorrenti, problemi di privacy dei dati o limitazioni imposte da piattaforme esterne.
  • Personalizzazione : crea una soluzione su misura per i tuoi flussi di lavoro specifici, ad esempio filtrando i messaggi ad alta priorità o instradandoli verso canali specifici.

Questa guida presuppone che tu abbia accesso amministrativo a un account API di WhatsApp Business, un'area di lavoro Slack e conoscenze di programmazione di base (ad esempio, Node.js o Python). La soluzione utilizza webhook, API e un server leggero per gestire l'integrazione.

Prerequisiti

Per impostare le notifiche di WhatsApp su Slack senza servizi di terze parti, avrai bisogno di:

  1. Account API WhatsApp Business:
    • Un account WhatsApp Business registrato con accesso API.
    • Un numero di telefono aziendale verificato.
    • Credenziali API (chiave API, ID del numero di telefono e token di accesso).
  2. Area di lavoro Slack:
    • Autorizzazioni amministrative o di proprietà per creare e gestire le app Slack.
    • Un canale Slack designato per le notifiche.
  3. Ambiente di sviluppo:
    • Un server o una piattaforma cloud (ad esempio AWS, Heroku o un server Node.js/Python locale) per ospitare la logica di integrazione.
    • Familiarità con API REST, webhook e scripting di base lato server.
  4. Utensili:
    • Node.js o Python per lo scripting.
    • Ngrok (per test locali di webhook).
    • cURL o Postman per i test API.

Guida all'integrazione passo dopo passo

Passaggio 1: configura il webhook dell'API di WhatsApp Business

L'API di WhatsApp Business utilizza i webhook per notificare al server i messaggi o gli eventi in arrivo. Per ricevere questi eventi, è necessario configurare un endpoint webhook.

  1. Crea un endpoint webhook:

Configura un server semplice utilizzando Node.js o Python. Ad esempio, usa Express.js (Node.js) per creare un endpoint:

const express = require ( 'express' ); const app = express(); app.use(express.json());
 app.post( '/webhook' , ( req, res ) => {   console .log( 'Webhook WhatsApp ricevuto:' , req.body); res.status( 200 ).send( 'Webhook ricevuto' ); });
 app.listen( 3000 , () =>  console .log( 'Server in esecuzione sulla porta 3000' ));

  • Distribuisci questo server su un URL pubblico (ad esempio, utilizzando Heroku) oppure utilizza Ngrok per i test locali per esporre il tuo localhost a Internet.

  1. Configurare il webhook di WhatsApp:


    • Accedi al portale Meta for Developers (o alla dashboard del tuo provider di API WhatsApp Business).
    • Vai alle impostazioni dell'API di WhatsApp Business.
    • Aggiungi l'URL del tuo webhook (ad esempio, https://your-server.com/webhook).
    • Imposta il webhook in modo che ascolti eventi come messaggi (per i messaggi in arrivo) o stati (per gli aggiornamenti sulla consegna dei messaggi).

Verificare il webhook implementando l'endpoint di verifica (Meta richiede un endpoint GET per confermare l'URL del webhook).


app.get( '/webhook' , ( req, res ) => {   const verifyToken = 'IL_TUO_TOKEN_DI_VERIFICA' ;   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 non riuscita' ); } });


  1. Prova il webhook:

Invia un messaggio di prova al tuo numero WhatsApp Business e verifica che il server riceva il payload. Il payload avrà un aspetto simile a questo:


{   "object" : "whatsapp_business_account" ,   "entry" : [{     "changes  : [{       "value" : {         "messages" : [{           "from" : "1234567890" ,           "text" : { "body" : "Ciao, questo è un test!" } }] } }] }] }

Passaggio 2: creare un'app Slack per la pubblicazione di notifiche

Per inviare eventi WhatsApp a un canale Slack, è necessaria un'app Slack con autorizzazioni per pubblicare messaggi.

  1. Crea un'app Slack:


    • Vai su api.slack.com/apps e clicca su "Crea nuova app".
    • Assegna un nome alla tua app (ad esempio, "WhatsAppNotifier") e seleziona il tuo spazio di lavoro Slack.
    • In "Autorizzazioni", aggiungi l'ambito chat:write per consentire all'app di pubblicare messaggi.
  2. Ottieni un token bot:


    • Nelle impostazioni dell'app Slack, vai su "OAuth e autorizzazioni".
    • Installa l'app nel tuo spazio di lavoro e copia il "Bot User OAuth Token" (inizia con xoxb-).
  3. Pubblicazione di prova su Slack:

Utilizza l'endpoint chat.postMessage dell'API Slack per testare la pubblicazione di un messaggio. Ad esempio, in Node.js, utilizzando il pacchetto @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' , 'Messaggio di prova da WhatsApp!' );

  • Assicurati che il bot sia invitato al canale Slack di destinazione (ad esempio, /invite @WhatsAppNotifier).

Passaggio 3: collega i webhook di WhatsApp a Slack

Ora, combina il webhook di WhatsApp con l'API di Slack per inoltrare le notifiche.

  1. Analizza il payload del webhook di WhatsApp:

Modifica l'endpoint del webhook per estrarre informazioni rilevanti (ad esempio, numero di telefono del mittente, testo del messaggio):

 

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 || 'Messaggio non di testo ricevuto' ;       const slackMessage = `Nuovo messaggio WhatsApp da ${sender} : ${text} ` ;       await postToSlack( '#whatsapp-notifications' , slackMessage); } } res.status( 200 ).send( 'Webhook ricevuto' ); });

  1. Gestire i messaggi multimediali:

Se il messaggio WhatsApp contiene contenuti multimediali (ad esempio immagini, video), recupera l'URL del contenuto multimediale utilizzando l'API di WhatsApp e caricalo su Slack:


const axios = require ( 'axios' );
  funzione  asincrona handleMediaMessage ( messaggio, slackChannel ) {   const mediaId = messaggio.immagine?.id || messaggio.video?.id;   if (mediaId) {     const mediaUrl = await getMediaUrl(mediaId);     const mediaResponse = await axios.get(mediaUrl, {       intestazioni : { Autorizzazione : `Portatore YOUR_WHATSAPP_ACCESS_TOKEN` },       tipo di risposta : 'stream'
 });     await slack.files.upload({       canali : slackChannel,       file : mediaResponse.data,       nome file : `whatsapp_media_ ${mediaId} `
 }); } }
  funzione  asincrona getMediaUrl ( mediaId ) {   const response = await axios.get( `https://graph.facebook.com/v17.0/ ${mediaId} ` , {     intestazioni : { Autorizzazione : `Portatore YOUR_WHATSAPP_ACCESS_TOKEN` } });   return response.data.url; }

  1. Distribuisci e testa:


    • Distribuisci il tuo server su una piattaforma cloud (ad esempio, AWS EC2, Heroku).
    • Invia messaggi di prova al tuo numero WhatsApp Business e verifica che vengano visualizzati nel canale Slack designato.

Fase 4: Migliorare l'integrazione

Per rendere l'integrazione più solida, prendi in considerazione queste funzionalità avanzate:

  • Filtraggio dei messaggi : aggiungi una logica per filtrare i messaggi in base a parole chiave, mittente o priorità. Ad esempio, inoltra solo i messaggi contenenti "urgente" a un canale Slack specifico.
  • Comunicazione bidirezionale : consente agli utenti di Slack di rispondere ai messaggi di WhatsApp inviando messaggi al bot di Slack, che li inoltra tramite l'API di WhatsApp.
  • Gestione degli errori : implementa meccanismi di ripetizione per le chiamate API non riuscite e registra gli errori su un canale Slack dedicato.
  • Sicurezza : proteggi l'endpoint del tuo webhook con l'autenticazione (ad esempio, verifica la firma del webhook di WhatsApp) e usa variabili di ambiente per dati sensibili come i token API.

Fase 5: Monitoraggio e manutenzione

  • Monitora lo stato del webhook : controlla regolarmente che l'endpoint del webhook riceva eventi. Utilizza strumenti come AWS CloudWatch o un semplice meccanismo di registrazione.
  • Aggiorna le versioni API : sia le API di WhatsApp che quelle di Slack potrebbero essere aggiornate. Monitora Meta per sviluppatori e la documentazione delle API di Slack per eventuali modifiche.
  • Scalabilità in base alle esigenze : se il volume dei messaggi aumenta, valuta la possibilità di bilanciare il carico o di ottimizzare le prestazioni del server.

Sfide e considerazioni

  • Limitazioni dell'API di WhatsApp : l'API di WhatsApp Business ha policy rigorose, come l'approvazione dei modelli di messaggio e i limiti di frequenza. Assicuratevi di rispettarle per evitare la sospensione dell'account.
  • Limiti di velocità di Slack : l'API di Slack ha dei limiti di velocità (ad esempio, 1 messaggio al secondo per canale). Implementare la messa in coda per le notifiche ad alto volume.
  • Privacy dei dati : poiché gestisci i dati dei clienti, assicurati la conformità al GDPR o al CCPA proteggendo i dati in transito e a riposo.
  • Spese di manutenzione : senza servizi di terze parti, sei responsabile del tempo di attività del server, degli aggiornamenti e del debug.

Conclusione

Integrare le notifiche WhatsApp con i canali Slack senza ricorrere a servizi di terze parti è un modo efficace per semplificare la comunicazione mantenendo il pieno controllo sui dati e sui flussi di lavoro. Sfruttando l'API di WhatsApp Business e l'API di Slack, puoi creare una soluzione personalizzata che soddisfi le esigenze del tuo team. Sebbene questo approccio richieda competenze tecniche e manutenzione continua, offre una flessibilità e un risparmio sui costi senza pari rispetto alle piattaforme di terze parti.

Articoli/notizie correlate

WhatsApp Business API Richiesta di prova gratuita

Il tuo numero di whatsapp personale* ?
Numero per WhatsApp Business API* ?
URL del sito web della tua azienda
Quale app vuoi connetterti con WhatsApp?
Grazie! La tua presentazione è stata ricevuta!
Oops! Qualcosa è andato storto mentre inviava il modulo.