Skip to content

Webhooks ​

I webhook collegano dAio ai vostri sistemi. Invece di interrogare la piattaforma in continuazione, lasciate che sia dAio ad avvisarvi: non appena si verifica un evento — un'allerta meteo attivata, un rischio elevato rilevato — dAio invia in tempo reale una richiesta HTTP firmata all'endpoint di vostra scelta. Automatizzate così i vostri flussi di lavoro: apertura di ticket, notifiche interne, aggiornamento di un cruscotto aziendale o attivazione di un piano d'azione sul campo.

È il ponte tra gli avvisi di dAio e il vostro sistema informativo.

Elenco dei webhook configurati

Suggerimento : iniziate con un solo webhook abbonato a un unico tipo di evento, convalidate la catena dall'inizio alla fine, poi ampliate. Eviterete di sommergere i vostri sistemi di notifiche prima di aver reso affidabile l'elaborazione.

Configurare un webhook ​

  1. Accedete a Impostazioni > Webhook.
  2. Fate clic su Nuovo webhook.
  3. Inserite l'URL di destinazione: l'endpoint HTTPS del vostro server (es. https://votre-serveur.com/webhook).
  4. Selezionate gli eventi da ascoltare facendo clic sulle etichette corrispondenti.
  5. Confermate con Crea.

Alla creazione viene generato automaticamente un segreto. Serve a firmare ogni richiesta con HMAC-SHA256 (vedere più avanti): conservatelo lato server, poiché vi permette di verificare che ogni chiamata provenga effettivamente da dAio.

Attenzione : l'URL deve essere in HTTPS e accessibile pubblicamente. Un endpoint in HTTP semplice o dietro un firewall chiuso non potrà ricevere le consegne.

Eventi disponibili ​

EventoDescrizione
weather.alertÈ stata attivata un'allerta meteo su un sito
weather.thresholdÈ stata superata una soglia meteo personalizzata
air_quality.alertÈ stata emessa un'allerta sulla qualità dell'aria
pollen.alertÈ stata emessa un'allerta pollini
marine.alertÈ stata emessa un'allerta condizioni marine
frost.alertÈ stata attivata un'allerta gelo
storm.alertÈ stata attivata un'allerta temporale / tempesta
business.risk_highÈ stato rilevato un livello di rischio elevato per la vostra attività

Suggerimento : abbonate ogni webhook solo agli eventi effettivamente utilizzati dal sistema destinatario. Un endpoint «ticket» non ha bisogno di ricevere gli stessi eventi di un endpoint «cruscotto».

Formato del payload ​

Ogni consegna è una richiesta POST il cui corpo è un oggetto JSON. La struttura generale è la seguente:

json
{
  "event": "weather.alert",
  "timestamp": "2026-06-30T08:15:00Z",
  "data": {
    "site_id": 42,
    "site_name": "Entrepôt Nord",
    "severity": "high",
    "message": "Vent fort attendu (rafales > 80 km/h)"
  }
}

Il campo event identifica il tipo di evento, timestamp indica la data di emissione (UTC, formato ISO 8601) e data contiene i dettagli specifici dell'evento.

Autenticazione HMAC-SHA256 ​

Ogni richiesta è firmata con il vostro segreto tramite HMAC-SHA256. La firma è trasmessa nell'header X-Daio-Signature, nel formato sha256=<signature>.

Verificate sistematicamente questa firma prima di elaborare una richiesta: è ciò che garantisce che la chiamata provenga da dAio e che il payload non sia stato alterato.

Verifica lato server (Python):

python
import hmac, hashlib

def verify_webhook(payload, signature, secret):
    expected = hmac.new(
        secret.encode(), payload, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Attenzione : calcolate la firma sul corpo grezzo della richiesta (i byte ricevuti), prima di qualsiasi deserializzazione JSON. La minima riformattazione modifica l'hash e fa fallire la verifica.

Testare e fare il debug ​

  • Fate clic sull'icona Testa (▶) accanto a un webhook per inviare un evento fittizio al vostro endpoint.
  • Una risposta HTTP 2xx conferma che il vostro server ha ricevuto e accettato la richiesta.
  • Espandete il webhook per consultare le sue ultime consegne: codice HTTP, tipo di evento e marca temporale.
  • Un punto colorato indica lo stato del webhook: verde = attivo, rosso = disattivato dopo ripetuti fallimenti.

Cronologia delle consegne ​

Ogni invio viene registrato. Espandete un webhook per vedere, per ogni tentativo:

  • Il codice HTTP di risposta (verde se < 300, rosso altrimenti)
  • Il tipo di evento consegnato
  • La data e l'ora del tentativo

Un contatore di fallimenti compare sul webhook quando alcune consegne sono fallite.

Tentativi e affidabilità ​

dAio ritenta automaticamente la consegna in caso di fallimento, con intervalli crescenti. Il vostro endpoint deve quindi essere idempotente: una stessa consegna può arrivare più volte, e la vostra elaborazione deve produrre lo stesso risultato senza effetti collaterali.

Attenzione : il vostro endpoint deve rispondere entro 10 secondi con un codice HTTP 2xx. Oltre tale soglia, o in caso di codice di errore, la consegna è considerata fallita e verrà ritentata. Dopo ripetuti fallimenti, il webhook viene disattivato automaticamente.

Buone pratiche ​

  • Verificate sempre la firma HMAC prima di elaborare un payload: non fidatevi mai di una richiesta non autenticata.
  • Rispondete in fretta: restituite un 200 immediatamente, poi elaborate il carico di lavoro in background. Eviterete timeout e ritentativi inutili.
  • Rendete idempotente la vostra elaborazione per assorbire senza rischi le consegne multiple.
  • Filtrate all'origine: abbonate ogni webhook solo agli eventi utili al suo sistema destinatario.
  • Sorvegliate il contatore di fallimenti e la cronologia delle consegne per individuare rapidamente un endpoint guasto prima che venga disattivato.
  • Usate il pulsante Testa dopo ogni modifica da parte vostra (deployment, cambio di URL) per convalidare la catena senza attendere un evento reale.

Suggerimento : abbinate i vostri webhook agli avvisi e alla configurazione del vostro team per instradare automaticamente l'informazione giusta verso il sistema giusto. La disponibilità dei webhook dipende dal vostro abbonamento.

Guide utilisateur dAio Business