Webhook in uscita
Avvisa un altro sistema nell'istante in cui succede qualcosa nel CRM. Registri un indirizzo, spunti gli eventi che ti interessano e SellioCRM invia un POST con JSON firmato ogni volta che uno di essi accade. Serve a integrare strumenti di automazione, un back-end tuo oppure l'ERP aziendale.
L'integrazione a interrogazione periodica è lenta e costosa: qualcuno chiede ogni minuto se è cambiato qualcosa. Il webhook fa il contrario: è il CRM ad avvisare. Quando viene creato un record, quando un'approvazione viene decisa o quando qualcuno risponde a una cadenza, il sistema invia una richiesta all'indirizzo che hai indicato, con i dati dell'evento.
Come si registra
- Apri Impostazioni e vai al gruppo Canali e comunicazione.
- Clicca su Webhook.
- In URL di destinazione indica l'indirizzo che riceverà le chiamate, che deve iniziare per https.
- In Eventi spunta quelli che ti interessano. Arrivano già spuntati record.created e record.updated.
- Clicca su Crea webhook.
- Copia il segreto mostrato nel riquadro Segreto del webhook. Compare una volta sola.
Eventi disponibili
- Record: record.created e record.updated, generati alla creazione e all'aggiornamento di qualsiasi record dei tuoi oggetti.
- Cadenze e flussi: flow.enrolled, flow.message_sent, flow.replied, flow.step_completed e flow.completed.
- Approvazioni: approval.requested, approval.approved e approval.rejected.
Come verificare che la chiamata arrivi da SellioCRM
Ogni chiamata porta due intestazioni oltre al tipo di contenuto: x-sellio-event, con il nome dell'evento, e x-sellio-signature, nel formato sha256 seguito dal codice di autenticazione calcolato sul corpo esatto della richiesta con il tuo segreto. Sul tuo server ricalcola quel codice a partire dal corpo ricevuto e confronta. Se non coincide, scarta la chiamata: l'origine non è il tuo CRM.
POST https://tuo-sistema.com/webhook
x-sellio-event: record.created
x-sellio-signature: sha256=<codice calcolato con il tuo segreto>
content-type: application/json
{
"event": "record.created",
"tenantId": "...",
"objectApiName": "opportunity",
"recordId": "...",
"data": { "name": "Metalmeccanica Andrade", "amount": 48000 },
"timestamp": "2026-03-12T15:42:10.000Z"
}Consegne recenti
Sotto l'elenco dei webhook, la tabella Consegne recenti mostra gli ultimi tentativi di invio con l'orario, l'evento e l'esito: un segno verde con il codice di risposta quando è andata a buon fine, un segno rosso con l'errore quando non è andata. È da lì che si scopre un indirizzo irraggiungibile o un server che restituisce errore.
Limiti e comportamento
- L'invio avviene sul momento, con un'attesa massima di quattro secondi, e non blocca l'operazione di chi ha salvato il record.
- Non c'è alcun nuovo tentativo automatico. Se il tuo server è irraggiungibile, l'evento compare come fallito nella tabella delle consegne e non viene rispedito. Progetta il tuo lato per tollerarlo.
- Sono accettati soltanto indirizzi http e https che puntano alla rete pubblica. Gli indirizzi interni, di rete locale o dei servizi di metadati cloud vengono rifiutati per sicurezza.
- L'interruttore Attivo e In pausa accanto a ogni webhook interrompe gli invii senza cancellare la configurazione.
- Il segreto non può essere mostrato di nuovo. Se lo hai perso, elimina il webhook e creane un altro.
Chi può farlo
Creare, mettere in pausa ed eliminare webhook richiede il permesso di amministrare le impostazioni, perché l'operazione manda fuori dal CRM i dati dei tuoi record. L'elenco delle consegne è limitato alla tua organizzazione.
Domande frequenti
- Ricevo l'evento ma il corpo sembra incompleto: ogni evento porta il proprio insieme di campi. Quelli dei record portano oggetto, identificativo del record e i dati; quelli dei flussi portano il flusso, l'iscrizione e il record; quelli delle approvazioni portano la richiesta, l'oggetto della richiesta e lo stato.
- Posso ricevere eventi di cancellazione? L'elenco degli eventi disponibili è quello che vedi sulla schermata.
- La firma non coincide mai: calcola il codice sul corpo grezzo ricevuto, senza riserializzare il JSON, perché qualsiasi cambiamento di spaziatura altera il risultato.