Elido
Tutto ciò che Elido fa
Pro & Business

Webhook. Eventi in tempo reale, consegnati in modo affidabile.

Gli endpoint webhook per workspace ricevono eventi di clic, conversione e gestione dei link con firme HMAC-SHA256. Tentativi automatici con backoff esponenziale. La modalità SIEM trasmette gli eventi alla tua piattaforma di sicurezza.

  • 10+ tipi di evento - clic, conversioni, modifiche al dominio
  • Firma HMAC-SHA256 su ogni consegna
  • Retry con backoff esponenziale per 72 ore
  • Log di consegna con replay in un clic
Consegna webhook
Sorgente eventolink.clickedlink.createdElidoHMAC-SHA256firma + accodaIl tuo endpointPOST /webhooksapi.acme.com010203
Richiesta in uscita
POSThttps://api.acme.com/webhooks
X-Elido-Signature: sha256=3c4d2e1f8a...
Content-Type: application/json
X-Elido-Event: link.clicked
{
"event": "link.clicked",
"event_id": "evt_01hw...",
"data": { link_id, url, country, device, ts }
}
<2 s di latenza mediana Firmato HMAC-SHA256
<2s
Latenza media di consegna degli eventi
72h
Finestra di tentativo prima del fallimento finale
HMAC-SHA256
Algoritmo di firma delle richieste
10+
Tipi di eventi supportati

Tipi di evento

10+ tipi di evento pronti all’uso

Sottoscrivi per endpoint - ricevi solo gli eventi che ti interessano. Gli eventi di clic ad alto volume vengono consegnati di default in una finestra batch di 5 secondi; la modalità raw-click consegna per clic per i processori di stream.

10+ tipi di evento
  • link.clicked

    Ogni clic di redirect. Modalità batch (finestra 5 s) o raw-click.

  • link.created

    Nel workspace è stato creato un nuovo link corto.

  • link.updated

    Modificati metadati, URL di destinazione o regole del link.

  • link.deleted

    Link rimosso - aggiorna eventuali riferimenti a valle.

  • domain.verified

    Il dominio personalizzato ha superato la verifica DNS.

  • conversion.attributed

    Evento di ricavo associato a un clic tramite Stripe o Shopify.

  • campaign.completed

    La campagna ha raggiunto la data finale o il cap di clic.

  • member.invited

    Membro del workspace aggiunto o provisionato via SCIM.

In più link.expired, link.click_cap_reached, domain.ssl_issued e altri - vedi il catalogo completo degli eventi.

Garanzie di consegna

Backoff esponenziale. Finestra di 72 ore.

Una risposta fuori dal 2xx o un timeout di 30 secondi avvia retry automatici: 30 s → 2 min → 10 min → 30 min → 2 h → 8 h → 24 h → 48 h. Dopo 72 ore la consegna viene marcata come definitivamente fallita e rimossa dalla coda - ma resta nel log di consegna per il replay manuale.

  • Timeout di risposta di 30 secondi
    Restituisci 200 subito; elabora in async se il tuo handler è lento.
  • 8 tentativi in 72 ore
    Backoff esponenziale - nessun effetto valanga al riavvio.
  • Auto-pausa dopo 30 fallimenti consecutivi
    L’admin del workspace riceve un’email. Riprendi dalla dashboard.
  • Replay in un clic dal log
    Payload originale, stesso event_id - il ricevitore deve essere idempotente.
Timeline dei retry di consegna
Finestra di retry di 72 ore
Tentativo 1
14:02:01
500 Internal Server Error
Backoff 30 sesponenziale × 1
Tentativo 2
14:02:31
timeout (30 s)
Backoff 2 minesponenziale × 4
Tentativo 3
14:04:31
200 OK
Timeout di risposta
30 secondi
Tentativi max
8 retry
Finestra
72 ore
Log di consegna webhook
Modalità SIEM
EventoEndpointStatusLatenzaOra
link.clickedapi.acme.com/wh200142ms14:04:31
link.createdapi.acme.com/wh20088ms14:03:19
conversion.attributedlogs.acme.com50030001ms14:02:01
domain.verifiedapi.acme.com/wh20067ms13:58:44
link.deletedlogs.acme.comtimeout30000ms13:55:12
Mostrate 5 di 1.284 consegne · Ultime 24 oreEndpoint attivo

Log di consegna

Log completo. Filtra, ispeziona, replay.

Ogni tentativo viene loggato: ID evento, tipo evento, URL endpoint, status HTTP, corpo della risposta (fino a 4 KB) e latenza. Retention: 30 giorni su Pro, 90 giorni su Business.

  • Filtra per tipo di evento, endpoint, status e intervallo di date
  • Le voci fallite mostrano il corpo della richiesta completo per il debug
  • Il replay invia il payload originale - stesso event_id
  • API: POST /v1/webhooks/deliveries/:id/replay
  • Modalità SIEM: JSON strutturato con garanzia di retry di 7 giorni

Cosa puoi fare

  • Eventi di clic, conversione, link e dominio
  • Firma delle richieste HMAC-SHA256
  • Tentativi automatici - fino a 72 ore
  • Modalità SIEM per l'inoltro degli eventi di sicurezza
  • Filtraggio dei topic per tipo di evento
  • Registro di consegna dei webhook con replay

Cosa consegnano i webhook di Elido e come funziona la consegna

I webhook sono utili solo quanto la loro affidabilità. Le sezioni seguenti coprono le garanzie di consegna, la verifica della firma, il comportamento dei tentativi e la modalità SIEM.

Tipi di eventi
01

Eventi di clic, conversione, ciclo di vita del link e dominio - configurabili per endpoint

Ogni endpoint webhook può iscriversi a uno o più tipi di evento: click.created (ogni clic di reindirizzamento), conversion.created (evento di conversione ricevuto da Stripe, Shopify o endpoint personalizzato), link.created, link.updated, link.deleted, link.expired, link.click_cap_reached, domain.verified, domain.ssl_issued, domain.ssl_error, workspace.member.added, workspace.member.removed. Gli eventi di clic ad alto volume possono essere rumorosi - per impostazione predefinita, i webhook click.created vengono inviati con una finestra di aggregazione di 5 secondi (consegna in batch, fino a 100 eventi per payload). Se hai bisogno di una consegna in tempo reale per singolo clic (ad esempio, per alimentare uno stream processor), abilita la modalità raw-click sull'endpoint; tieni presente che questo può produrre migliaia di richieste al minuto per i workspace trafficati e dovrebbe essere abilitato solo per gli endpoint in grado di gestire tale throughput.

Verifica della firma
02

Ogni richiesta è firmata con HMAC-SHA256 - verifica l'header X-Elido-Signature prima di elaborare

Elido firma ogni corpo della richiesta webhook con HMAC-SHA256 utilizzando il segreto condiviso configurato sull'endpoint. La firma è inclusa nell'header X-Elido-Signature come 'sha256=<hex_digest>'. Per verificare: calcola HMAC-SHA256 sul corpo grezzo della richiesta utilizzando il segreto condiviso, confronta il risultato con il valore dell'header utilizzando una funzione di confronto in tempo costante (per prevenire attacchi di temporizzazione). Non elaborare mai un payload webhook prima di aver verificato la firma. Il segreto viene mostrato una sola volta alla creazione dell'endpoint; ruotalo nella dashboard con una finestra di sovrapposizione a tempo zero (il vecchio segreto rimane valido per 15 minuti dopo la generazione di uno nuovo). Esempi di codice per la verifica della firma in Node.js, Python e Go sono disponibili nella guida ai webhook su /docs/guides/webhooks.

Comportamento dei tentativi
03

Tentativi automatici con backoff esponenziale - fino a 72 ore prima che una consegna sia segnata come fallita

Se un endpoint restituisce un codice di stato non-2xx o va in timeout (timeout della risposta di 30 secondi), Elido riprova la consegna con backoff esponenziale: 30 secondi, 2 minuti, 10 minuti, 30 minuti, 2 ore, 8 ore, 24 ore, 48 ore. Dopo la finestra di 72 ore, la consegna viene contrassegnata come fallita permanentemente e rimossa dalla coda dei tentativi. Le consegne fallite appaiono nel registro di consegna dei webhook con il codice di stato HTTP finale (o 'timeout'). Puoi riprodurre qualsiasi consegna fallita dalla dashboard o tramite API (POST /v1/webhooks/deliveries/:id/replay) - utile per recuperare un batch di eventi dopo un'interruzione a valle. Gli endpoint che restituiscono 5xx per più di 30 consegne consecutive vengono messi in pausa automaticamente e l'amministratore del workspace viene informato via email. Riprendi l'endpoint dalla dashboard una volta risolto il problema sottostante.

Modalità SIEM
04

La modalità SIEM trasmette gli eventi di audit del workspace a Splunk, Datadog o qualsiasi endpoint di ingestione log HTTPS

La modalità SIEM è una configurazione speciale dei webhook per l'inoltro degli eventi di sicurezza. Invece degli eventi applicativi (clic, conversioni), la modalità SIEM consegna gli eventi di audit del workspace: accessi SSO, accessi falliti, creazione/rotazione/eliminazione di chiavi API, eventi di provisioning SCIM, modifiche dei ruoli, rotazioni dei segreti dei webhook e azioni amministrative (eliminazione di link, esportazioni massive). Il formato del payload è JSON strutturato con uno schema standard (timestamp, attore, azione, target, workspace_id, indirizzo IP, user agent) progettato per l'ingestione nelle comuni piattaforme SIEM. I webhook SIEM hanno una consegna garantita con tentativi fino a 7 giorni e sono firmati separatamente dai webhook applicativi. Integrazioni testate: Splunk HTTP Event Collector (HEC), Datadog Logs API, input HTTP di Elastic Logstash e qualsiasi endpoint log HTTPS generico. La modalità SIEM è una funzionalità esclusiva per i piani Business.

Registro di consegna
05

Registro di consegna completo con corpo della richiesta, codice di risposta e replay con un clic per le consegne fallite

Ogni tentativo di consegna dei webhook viene registrato: ID evento, tipo di evento, URL dell'endpoint, timestamp di consegna, codice di stato HTTP, corpo della risposta (fino a 4KB) e latenza. Il registro di consegna è interrogabile per tipo di evento, endpoint, intervallo di date e stato (consegnato, in fase di riprovo, fallito). Le consegne fallite includono il corpo completo della richiesta in modo da poter ispezionare l'evento che ha fallito senza riprodurlo. Replay: POST /v1/webhooks/deliveries/:id/replay invia il payload originale (non un nuovo evento) all'endpoint - è richiesta l'idempotenza sul tuo ricevitore. La conservazione del registro di consegna è di 30 giorni nel piano Pro, 90 giorni nel piano Business. Per un audit permanente degli eventi webhook, configura un endpoint SIEM o abilita l'esportazione pianificata del registro di audit.

Team di ingegneria che utilizzano i webhook di Elido in produzione

I nomi sono segnaposto - i casi di studio reali dei clienti verranno pubblicati qui man mano che vengono prodotti.

Consumiamo i webhook click.created in modalità batch per alimentare la nostra pipeline di analytics. La verifica della firma HMAC e il registro di consegna con replay ci hanno risparmiato ore di debug durante un'interruzione parziale - abbiamo riprodotto il batch di eventi mancanti dalla dashboard senza ricostruire l'evento dalla sorgente.

P
Platform engineering, SaaS B2B, Amsterdam
Senior Platform Engineer

La modalità SIEM che trasmette gli eventi di audit del workspace al nostro Splunk HEC era la funzionalità enterprise richiesta dal nostro team InfoSec. Gli eventi di accesso SSO e le rotazioni delle chiavi API in Splunk, con lo schema corretto, ci hanno permesso di correlare gli eventi di accesso di Elido con le nostre regole di avviso SIEM entro un giorno dalla configurazione.

S
Security engineering, fintech, Monaco
Information Security Engineer

I webhook link.expired attivano il nostro workflow interno per aggiornare il database dei materiali stampati - quando un link di un codice QR scade, il nostro team operativo riceve un'attività automatica per aggiornare l'etichetta fisica. Zero monitoraggio manuale degli stati di scadenza dei link.

I
Integration engineering, SaaS logistica, Riga
Integration Engineer

Webhook di Elido vs Bitly vs Short.io

Né Bitly né Short.io offrono webhook in uscita con firma HMAC e garanzie di tentativo. Questo confronto è sincero riguardo al divario.

FeatureElidoBitlyShort.io
Webhook in uscitaSì - endpoint per workspace, iscrizione per tipo di eventoNon disponibileSì - webhook di base sul clic
Firma HMAC-SHA256Sì - ogni consegna firmata, esempi di codice fornitiNon applicabileParziale - header della firma presente, non documentato
Tentativi automaticiSì - backoff esponenziale, finestra di 72 oreNon applicabileNessun tentativo - fire and forget
Registro di consegna con replaySì - 30 giorni Pro, 90 giorni Business, replay con un clicNon applicabileNessun registro di consegna
Modalità eventi di audit SIEMSì - Business, JSON strutturato per ingestione SIEMNon disponibileNon disponibile
Auto-pausa dell'endpoint in caso di erroreSì - in pausa dopo 30 fallimenti consecutivi, amministratore notificatoNon applicabileNon disponibile
Tipi di eventiClic, conversione, ciclo di vita del link, dominio, eventi di auditNon applicabileSolo clic

Domande sui webhook

Come posso verificare la firma HMAC-SHA256?

Leggi il corpo della richiesta grezza come byte (prima di qualsiasi analisi JSON), calcola HMAC-SHA256 sui byte grezzi utilizzando il segreto condiviso del tuo endpoint, codifica in base16 (hex) il risultato e confrontalo con il valore nell'header X-Elido-Signature dopo aver rimosso il prefisso 'sha256='. Usa una funzione di confronto in tempo costante (ad es. hmac.compare_digest in Python, crypto.timingSafeEqual in Node.js) per prevenire attacchi di temporizzazione. Non confrontare mai la firma con un operatore di uguaglianza di stringhe standard. Esempi di codice per Node.js, Python e Go sono disponibili su /docs/guides/webhooks#verification.

Cosa dovrebbe restituire il mio ricevitore webhook?

Restituisci HTTP 200 (o qualsiasi codice di stato 2xx) entro 30 secondi. Il corpo della risposta viene ignorato - puoi restituire un corpo vuoto o { ok: true }. Se l'elaborazione richiede più di 30 secondi, restituisci immediatamente 200 ed elabora l'evento in modo asincrono (metti in coda a una coda interna, restituisci 200, elabora fuori dal percorso della richiesta). Restituire 4xx è trattato come 5xx ai fini del tentativo - entrambi attivano un nuovo tentativo. Restituisci 200 anche se l'evento non è pertinente per la tua integrazione (ad esempio, un evento link.created di cui non hai bisogno) per evitare tentativi spuri.

Come funziona l'idempotenza per gli eventi webhook?

Ogni payload webhook include un campo event_id (UUID). Usa questo come chiave di idempotenza sul tuo ricevitore: se ricevi lo stesso event_id due volte (a causa di un tentativo dopo un fallimento parziale), elaboralo una sola volta. Memorizza gli ID degli eventi ricevuti in una tabella di deduplicazione con un TTL di almeno 72 ore (la finestra dei tentativi). Il payload del tentativo è identico all'originale - stesso event_id, stesso corpo - quindi un semplice controllo 'ho già visto questo event_id?' è sufficiente.

Perché il mio endpoint viene messo in pausa automaticamente?

Gli endpoint vengono messi in pausa automaticamente dopo 30 fallimenti di consegna consecutivi (non-2xx o timeout). Questo impedisce a Elido di martellare indefinitamente un endpoint rotto. Risolvi il problema sottostante (solitamente: l'URL dell'endpoint è cambiato, il server è giù o il timeout di 30 secondi viene superato a causa di un'elaborazione lenta), quindi riprendi l'endpoint nella dashboard. Una volta ripreso, Elido non riproduce automaticamente gli eventi saltati durante la pausa - riproducili manualmente dal registro di consegna se hai bisogno di recuperarli.

Posso ricevere eventi di clic in tempo reale per ogni singolo clic?

Sì - abilita la modalità raw-click sull'endpoint. In modalità raw-click, Elido consegna gli eventi click.created individualmente senza finestra di batching, entro 2 secondi dal clic. Tieni presente che un workspace trafficato può produrre migliaia di eventi al minuto in modalità raw-click; assicurati che il tuo ricevitore possa gestire il throughput. Per la maggior parte dei casi d'uso di analytics, l'aggregazione batch predefinita di 5 secondi (fino a 100 clic per payload) è sufficiente e produce molte meno richieste HTTP.

Qual è il limite di dimensione del payload per gli eventi webhook?

I singoli payload degli eventi sono inferiori a 10KB. I payload dei clic in batch (modalità predefinita) possono contenere fino a 100 eventi per batch, con un limite totale della dimensione del payload di 100KB. Se un batch dovesse superare i 100KB, viene diviso automaticamente in più consegne. I campi di metadati di grandi dimensioni sui clic (ad es. URL referer lunghi) vengono troncati a 2KB per campo. Se il tuo ricevitore impone un limite rigoroso alla dimensione del payload, configura la modalità raw-click (un evento per consegna) invece della modalità batch.

Esiste un modo per testare i webhook localmente durante lo sviluppo?

Usa uno strumento come ngrok, Cloudflare Tunnel o localtunnel per esporre il tuo server locale con un URL HTTPS pubblico, quindi registra quell'URL come endpoint webhook nel tuo workspace di test. In alternativa, usa il pulsante di test del webhook nella dashboard per inviare un payload di esempio per qualsiasi tipo di evento a un endpoint registrato senza attivare un evento reale. Anche la CLI di Elido (elido webhook test --event click.created --endpoint https://...) funziona per test locali tramite script.

Cosa succede agli eventi webhook durante una finestra di manutenzione pianificata?

Gli eventi generati durante una finestra di manutenzione vengono messi in coda nel nostro flusso di eventi e consegnati al termine della finestra di manutenzione. La pagina di stato di Elido (status.elido.app) annuncia in anticipo le finestre di manutenzione pianificate. L'SLA di consegna dei webhook esclude le finestre di manutenzione annunciate. Per la tipica finestra di manutenzione di 30–60 minuti, la finestra di tentativo di 72 ore garantisce che nessun evento vada perso permanentemente - verranno consegnati nell'ordine in cui sono stati generati una volta che l'endpoint sarà di nuovo raggiungibile.

Pronto a provarlo?

Inizia con il piano gratuito, effettua l'upgrade quando hai bisogno di un dominio personalizzato.