Configurazione di un webhook
È necessario il ruolo Owner o Admin.Aggiungere un webhook
Fare clic su Aggiungi webhook, incollare l’URL HTTPS pubblico del proprio endpoint e scegliere i tipi di evento che si desidera ricevere.
Salvare il segreto di firma
Flowella genera un segreto di firma unico per il webhook. Copiatelo: lo userete per verificare le richieste in arrivo.
Tipi di evento
È possibile sottoscrivere uno qualsiasi di questi eventi di prodotto:| Evento | Quando si attiva |
|---|---|
message.received | È arrivato un messaggio WhatsApp in entrata da un contatto |
message.sent | Flowella ha accettato il messaggio in uscita e lo ha inviato a Meta |
message.delivered | Meta ha confermato che il messaggio è stato consegnato al dispositivo del destinatario |
message.read | Il destinatario ha aperto il messaggio |
message.failed | Meta ha restituito un errore per il messaggio |
conversation.opened | Una conversazione è passata allo stato aperto |
conversation.closed | Una conversazione è stata chiusa |
optout.created | Un contatto si è dissociato da un canale specifico |
template.status_updated | Meta ha modificato lo stato di un modello (approvato, rifiutato, in pausa, disattivato) |
webhook.test viene inviato solo quando si fa clic su Invia test, senza sottoscriverlo esplicitamente.
Formato della richiesta
Flowella invia un corpo JSON al vostro URL con queste intestazioni:Verifica delle firme
Ogni richiesta include un’intestazioneX-Flowella-Signature. Il valore è il digest esadecimale HMAC-SHA256 del corpo della richiesta raw UTF-8, codificato con il segreto di firma del webhook.
Verificare prima dell’elaborazione:
Risposte, tentativi e timeout
- Timeout: Flowella attende fino a 10 secondi per la risposta dell’endpoint.
- Successo: qualsiasi risposta di
2xxviene considerata come una consegna riuscita. - Ripetizioni: le consegne non riuscite vengono ritentate fino a 3 tentativi con backoff.
- Autodisabilitazione: se un webhook accumula 10 fallimenti consecutivi, Flowella lo disattiva. Sarà necessario riattivarlo da Impostazioni → Webhooks dopo aver sistemato l’endpoint.
Idempotenza
I webhook possono essere ritentati, quindi lo stesso evento logico può arrivare più di una volta. Per elaborare in modo sicuro:- Utilizzare la
data.iddell’evento (o una chiave derivata comeevent + data.messageId) come chiave di idempotenza. - Mantenere una cache di breve durata delle chiavi elaborate (qualche ora è sufficiente per i tentativi).
- Trattare i duplicati come no-op.
Elencare e gestire le consegne
Impostazioni → Webhooks mostra i tentativi di consegna recenti per ogni webhook, inclusi:- Timestamp
- Tipo di evento
- Stato della risposta
- Un corpo di risposta troncato (fino a ~1 KB) per il debugging
Sviluppo locale
Il modo più semplice per sviluppare localmente con i webhook è quello di inoltrare un tunnel pubblico (ad esempio, ngrok o Cloudflare Tunnel) al proprio server di sviluppo e puntare l’URL del webhook all’host del tunnel. Usare Invia test per lanciare i payload su richiesta senza attendere l’attività reale di WhatsApp.Correlato
Impostazioni → Webhooks
Configurare endpoint, segreti di firma e tentativi nell’app.
Introduzione all'API
Autorizzazione, errori, paginazione e limiti di velocità per l’API REST.
Chiavi API
Creare e ruotare i token bearer di cui l’endpoint può avere bisogno.
Eventi di notifica
Gli stessi eventi vengono trasmessi nel feed in-app e nelle e-mail.

