Ogni volta che un cliente compila un form sul tuo sito, ricevi una notifica su Slack. Quando qualcuno paga su Stripe, viene aggiunto automaticamente alla tua mailing list. Dietro queste magie quotidiane c'è un meccanismo semplice ma potentissimo: i webhook.
Se stai iniziando a costruire automazioni per la tua azienda, prima o poi ti imbatterai in questo termine. E capirlo davvero ti aprirà possibilità che non immaginavi.
Cos'è un webhook (spiegato semplice)
Immagina un campanello. Quando qualcuno preme il pulsante fuori dalla porta, tu dentro casa senti il suono e sai che c'è qualcuno. Non devi uscire ogni cinque minuti a controllare se è arrivato qualcuno. Il campanello ti avvisa quando serve.
Un webhook funziona esattamente così, ma nel mondo digitale.
In termini tecnici, un webhook è una notifica HTTP automatica che un'applicazione invia a un'altra quando si verifica un evento specifico. Invece di chiedere continuamente "è successo qualcosa?", aspetti che l'applicazione ti avvisi.
Definizione tecnica: Un webhook è un callback HTTP user-defined che viene attivato da eventi specifici. Quando l'evento si verifica, l'applicazione sorgente effettua una richiesta HTTP POST all'URL specificato, inviando dati strutturati (tipicamente JSON).
Facciamo un esempio concreto. Hai un e-commerce e vuoi ricevere una notifica ogni volta che arriva un ordine. Invece di controllare il pannello ogni ora, configuri un webhook: quando arriva un ordine, WooCommerce invia automaticamente i dati a un URL che hai specificato. Quell'URL può essere uno scenario Make, un workflow n8n, o un tuo server personalizzato.
Webhook vs API: la differenza fondamentale
Questa distinzione genera confusione, ma è fondamentale capirla.
Le API funzionano con logica "pull"
Con un'API tradizionale, sei tu a chiedere informazioni. "Dammi gli ordini di oggi", "Qual è lo stato di questo pagamento?", "Ci sono nuovi lead?". Il server risponde solo quando tu chiedi. Questo approccio si chiama polling: interroghi periodicamente per vedere se c'è qualcosa di nuovo.
Il problema? Sprechi risorse. Se controlli ogni minuto ma gli ordini arrivano ogni ora, hai fatto 59 chiamate inutili. Moltiplica per decine di integrazioni e capisci perché il polling è inefficiente.
I webhook funzionano con logica "push"
Con i webhook, è l'applicazione sorgente a contattarti. Non chiedi nulla, aspetti. Quando succede qualcosa di rilevante, ricevi una notifica istantanea con tutti i dati necessari.
Vantaggi concreti dei webhook:
- Efficienza: nessuna chiamata inutile, ricevi dati solo quando servono
- Velocità: reazione istantanea agli eventi, non devi aspettare il prossimo ciclo di polling
- Risparmio: meno chiamate API significa meno costi (molte API hanno limiti o pricing basato su chiamate)
- Semplicità: una volta configurato, il webhook lavora in autonomia
Come funziona: anatomia di un webhook
Un webhook ha tre componenti essenziali:
1. L'evento trigger
È l'azione che fa scattare il webhook. Può essere qualsiasi cosa: un nuovo ordine, un pagamento completato, un form compilato, un messaggio ricevuto, un file caricato. L'applicazione sorgente definisce quali eventi supportano webhook.
2. L'URL di destinazione (endpoint)
È l'indirizzo web a cui verranno inviati i dati. Deve essere un URL pubblicamente accessibile che può ricevere richieste HTTP POST. Quando usi Make o n8n, questo URL viene generato automaticamente dalla piattaforma.
3. Il payload (i dati)
Sono le informazioni inviate insieme alla notifica. Tipicamente in formato JSON, contengono tutti i dettagli dell'evento: chi, cosa, quando, e qualsiasi dato rilevante.
Ecco un esempio di payload webhook per un nuovo ordine:
{
"event": "order.created",
"timestamp": "2026-01-06T10:30:00Z",
"data": {
"order_id": "ORD-2026-001",
"customer": {
"name": "Mario Rossi",
"email": "[email protected]"
},
"total": 149.99,
"items": [
{
"product": "Consulenza SEO",
"quantity": 1,
"price": 149.99
}
]
}
}
Quando il webhook scatta, questo pacchetto di dati viene inviato al tuo endpoint. Da lì puoi processarlo come preferisci: salvarlo in un database, inviare una notifica, aggiornare un CRM, generare una fattura.
Creare webhook con Make
Make è una delle piattaforme no-code più popolari per automazioni, e i webhook sono cittadini di prima classe.
Passo 1: Crea un nuovo scenario
Accedi a Make e clicca su "Create a new scenario". Vedrai una canvas vuota con un grande pulsante "+" al centro.
Passo 2: Aggiungi il modulo Webhooks
Clicca sul "+" e cerca "Webhooks". Seleziona "Custom webhook" dalla lista. Questo è il modulo che riceverà i dati esterni.
Passo 3: Configura il webhook
Clicca su "Add" per creare un nuovo webhook. Assegnagli un nome descrittivo (es. "Ordini WooCommerce" o "Form Contatti"). Make genererà automaticamente un URL univoco.
Consiglio: Copia questo URL con attenzione. Dovrai incollarlo nell'applicazione sorgente. Non condividerlo pubblicamente perché chiunque potrebbe inviarti dati.
Passo 4: Determina la struttura dati
Prima di usare i dati ricevuti, Make deve "capire" la loro struttura. Hai due opzioni:
- Run once: avvia lo scenario, poi invia un webhook di test dall'applicazione sorgente. Make imparerà la struttura automaticamente.
- Manually: definisci tu stesso la struttura JSON. Utile se conosci già il formato.
Passo 5: Aggiungi azioni successive
Dopo il modulo webhook, aggiungi i moduli per le azioni che vuoi compiere. Inviare email con Gmail, aggiungere righe in Google Sheets, creare task in Asana, il limite è la tua fantasia (e il piano Make).
Passo 6: Attiva lo scenario
Clicca su "Scheduling" in basso a sinistra, attiva lo scenario e scegli "Immediately" per processare i webhook in tempo reale. Salva e il tuo webhook è operativo.
Creare webhook con n8n
n8n è l'alternativa open-source a Make. Puoi hostarlo tu stesso (gratis) oppure usare la versione cloud. I webhook in n8n sono altrettanto semplici.
Passo 1: Crea un nuovo workflow
Dalla dashboard n8n, clicca "Add workflow". Ti troverai in un canvas vuoto.
Passo 2: Aggiungi il nodo Webhook
Clicca sul "+" e cerca "Webhook". Aggiungilo al workflow. n8n genererà un URL univoco per questo webhook.
Passo 3: Configura le opzioni
Nel pannello di configurazione puoi specificare:
- HTTP Method: solitamente POST, ma alcuni servizi usano GET
- Path: puoi personalizzare la parte finale dell'URL
- Response Code: cosa rispondere dopo aver ricevuto il webhook
- Response Data: dati da restituire al mittente
Passo 4: Testa con "Listen for Test Event"
n8n ha una funzione comodissima: clicca su "Listen for Test Event", poi invia un webhook di test. n8n catturerà i dati e potrai usarli per costruire il resto del workflow.
Passo 5: Costruisci il workflow
Aggiungi i nodi successivi per processare i dati. n8n offre centinaia di integrazioni: database, CRM, email, messaggistica, storage, e molto altro.
Passo 6: Attiva il workflow
Toggle in alto a destra: "Inactive" diventa "Active". Il tuo webhook è pronto a ricevere richieste 24/7.
n8n self-hosted: Se ospiti n8n tu stesso, assicurati che il server sia raggiungibile dall'esterno. I webhook non funzioneranno se l'URL non è pubblico. Usa un reverse proxy come nginx o Cloudflare Tunnel.
Test e debugging dei webhook
I webhook possono sembrare una scatola nera. Invii qualcosa e speri che funzioni. Ma esistono strumenti per rendere il processo trasparente.
Webhook.site
Vai su webhook.site e ottieni istantaneamente un URL temporaneo. Usalo come endpoint di test: vedrai ogni richiesta in arrivo con tutti i dettagli (header, body, timestamp). Perfetto per capire cosa sta inviando un'applicazione.
RequestBin
Simile a Webhook.site, RequestBin crea endpoint temporanei per ispezionare le richieste HTTP. Utile per debugging avanzato.
Postman
Se vuoi testare l'invio di webhook (simulare un'applicazione sorgente), Postman è lo strumento ideale. Puoi costruire richieste HTTP personalizzate e vedere come risponde il tuo endpoint.
Log delle piattaforme
Sia Make che n8n offrono log dettagliati. In Make, ogni esecuzione mostra input e output di ogni modulo. In n8n, puoi vedere i dati che fluiscono tra i nodi. Usa questi log per capire dove qualcosa va storto.
Errori comuni e soluzioni
- Webhook non ricevuto: verifica che l'URL sia corretto e che lo scenario/workflow sia attivo
- Dati mancanti: l'applicazione sorgente potrebbe non inviare tutti i campi. Controlla la documentazione del webhook
- Timeout: se il tuo workflow impiega troppo tempo, il mittente potrebbe considerarlo fallito. Ottimizza o usa risposte asincrone
- Formato errato: alcuni servizi inviano XML invece di JSON. Assicurati di gestire il formato corretto
Sicurezza: autenticazione e validazione
Un webhook è essenzialmente un URL pubblico che accetta dati. Senza precauzioni, chiunque potrebbe inviarti richieste malevole. Ecco come proteggerti.
Firma HMAC
Molti servizi (Stripe, Shopify, GitHub) firmano i webhook con una chiave segreta condivisa. Insieme al payload, inviano un header con una firma HMAC. Il tuo endpoint può verificare che la firma corrisponda, confermando che il webhook proviene davvero dal servizio dichiarato.
// Esempio verifica firma in JavaScript
const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return signature === expected;
}
Token segreti nell'URL
Un approccio semplice: includi un token segreto nell'URL del webhook. Invece di /webhook, usa /webhook?token=abc123xyz. Verifica il token prima di processare i dati. Non è sicuro come HMAC, ma aggiunge un livello di protezione.
Whitelist IP
Se il servizio pubblica gli IP da cui invia webhook, puoi configurare il tuo server per accettare richieste solo da quegli indirizzi. Efficace ma richiede manutenzione se gli IP cambiano.
HTTPS obbligatorio
Mai accettare webhook su HTTP non cifrato. I dati viaggiano in chiaro e potrebbero essere intercettati. Usa sempre HTTPS. Make e n8n cloud lo garantiscono automaticamente.
Validazione del payload
Non fidarti mai dei dati ricevuti. Valida sempre:
- Il formato è corretto (JSON valido)?
- I campi obbligatori sono presenti?
- I valori sono nel range atteso?
- Non ci sono tentativi di injection?
5 casi d'uso pratici per PMI
1. Notifiche ordini in tempo reale
Scenario: Ogni nuovo ordine WooCommerce invia un messaggio Slack al team vendite con dettagli cliente e prodotti.
Trigger: Webhook WooCommerce "order.created"
Azioni: Formatta messaggio, invia a canale Slack
Valore: Il team sa immediatamente degli ordini, può preparare spedizioni senza ritardi
2. Lead capture automatico
Scenario: Form Typeform compilato genera contatto in HubSpot, notifica commerciale via email, aggiunge riga in Google Sheets per tracking.
Trigger: Webhook Typeform "form_response"
Azioni: Crea contatto HubSpot, invia email, appendi a Sheets
Valore: Zero lead persi, follow-up immediato, storico centralizzato
3. Sincronizzazione inventario
Scenario: Vendita su un canale (Amazon) aggiorna automaticamente lo stock su tutti gli altri (Shopify, eBay, negozio fisico).
Trigger: Webhook piattaforma principale "inventory.updated"
Azioni: Aggiorna stock su ogni piattaforma connessa
Valore: Niente overselling, inventario sempre allineato
4. Fatturazione automatica
Scenario: Pagamento Stripe completato genera fattura in Fatture in Cloud e la invia al cliente.
Trigger: Webhook Stripe "payment_intent.succeeded"
Azioni: Crea fattura, invia PDF via email
Valore: Fatturazione istantanea, nessun lavoro manuale, clienti soddisfatti
5. Monitoring e alerting
Scenario: Errori sul sito (form non funzionante, pagina 500) inviano alert immediato a Telegram del team tecnico.
Trigger: Webhook da servizio monitoring (UptimeRobot, Sentry)
Azioni: Formatta alert, invia a Telegram
Valore: Problemi risolti in minuti invece che ore, meno clienti frustrati
"I webhook hanno trasformato il nostro modo di lavorare. Prima perdevamo lead perché nessuno controllava i form nel weekend. Ora ogni richiesta arriva su Slack in tempo reale, ovunque siamo."
Domande Frequenti
Qual è la differenza tra webhook e API?
Le API funzionano con logica pull: tu chiedi, il server risponde. I webhook funzionano con logica push: quando succede qualcosa, il server ti avvisa automaticamente. Le API richiedono polling continuo, i webhook sono event-driven ed efficienti.
I webhook sono sicuri?
I webhook possono essere molto sicuri se implementati correttamente. Le best practice includono: validazione della firma HMAC, utilizzo di HTTPS, verifica dell'IP di origine, e implementazione di rate limiting. Senza queste misure, l'endpoint webhook potrebbe essere vulnerabile.
Posso usare webhook senza saper programmare?
Assolutamente sì. Piattaforme no-code come Make, Zapier, e n8n permettono di creare webhook con pochi click. Non serve scrivere una riga di codice, solo configurare visualmente il flusso di automazione.
Cosa succede se il webhook fallisce?
Dipende dalla piattaforma che lo invia. La maggior parte dei servizi implementa retry automatici (tipicamente 3-5 tentativi). Se tutti i retry falliscono, l'evento viene loggato o scartato. È importante monitorare i webhook e implementare gestione errori.
Quanti webhook posso avere attivi contemporaneamente?
Non c'è un limite tecnico intrinseco. Il limite dipende dalla piattaforma che usi: Make nel piano gratuito ha limiti sulle operazioni mensili, n8n self-hosted non ha limiti. Il numero di webhook non è il problema, ma il volume di dati che processano.
Vuoi implementare queste automazioni?
Raccontami il tuo progetto. Rispondo entro 24 ore, senza impegno.
Parliamone