Webhooks
I webhooks ti notificano in tempo reale quando avvengono eventi in BladeCRM.
Come Funzionano
- Configuri un URL endpoint
- Selezioni gli eventi da ricevere
- BladeCRM invia POST al tuo URL quando l'evento accade
- Il tuo sistema elabora la notifica
Creare un Webhook
Da Dashboard
- Impostazioni → Webhooks → Nuovo
- Configura:
- Nome: Identificativo
- URL: Endpoint del tuo server
- Eventi: Quali eventi ricevere
- Salva
Via API
http
POST /api/v1/webhooksjson
{
"name": "Notifiche Slack",
"url": "https://tuo-server.com/webhook",
"events": ["contact.created", "deal.won"]
}Eventi Disponibili
Contatti
| Evento | Descrizione |
|---|---|
contact.created | Nuovo contatto |
contact.updated | Contatto modificato |
contact.deleted | Contatto eliminato |
Aziende
| Evento | Descrizione |
|---|---|
company.created | Nuova azienda |
company.updated | Azienda modificata |
company.deleted | Azienda eliminata |
Trattative
| Evento | Descrizione |
|---|---|
deal.created | Nuova trattativa |
deal.updated | Trattativa modificata |
deal.stage_changed | Cambio stadio |
deal.won | Trattativa vinta |
deal.lost | Trattativa persa |
deal.deleted | Trattativa eliminata |
Attività
| Evento | Descrizione |
|---|---|
activity.created | Nuova attività |
activity.completed | Attività completata |
Appuntamenti
| Evento | Descrizione |
|---|---|
appointment.created | Nuovo appuntamento |
appointment.updated | Appuntamento modificato |
appointment.cancelled | Appuntamento annullato |
Payload
Ogni webhook invia un payload JSON:
json
{
"event": "contact.created",
"timestamp": "2025-01-15T10:30:00Z",
"data": {
"id": 123,
"first_name": "Mario",
"last_name": "Rossi",
"email": "mario@example.com"
}
}Sicurezza
Firma HMAC
Ogni richiesta include un header di firma:
X-BladeCRM-Signature: sha256=abc123...Verifica la firma per assicurarti che la richiesta provenga da BladeCRM.
Retry
Se il tuo server non risponde (timeout o errore):
- 1° retry: dopo 1 minuto
- 2° retry: dopo 5 minuti
- 3° retry: dopo 30 minuti
- Poi il webhook viene segnato come fallito
Log
Monitora i webhook in Impostazioni → Webhooks → Log:
- Richieste inviate
- Risposte ricevute
- Errori
Esempio Ricezione
Node.js (Express)
javascript
app.post('/webhook', (req, res) => {
const event = req.body.event;
const data = req.body.data;
switch(event) {
case 'contact.created':
console.log('Nuovo contatto:', data);
break;
case 'deal.won':
console.log('Trattativa vinta:', data);
break;
}
res.status(200).send('OK');
});PHP
php
$payload = json_decode(file_get_contents('php://input'), true);
$event = $payload['event'];
$data = $payload['data'];
switch($event) {
case 'contact.created':
// Gestisci nuovo contatto
break;
}
http_response_code(200);TIP
Usa i webhooks invece del polling per notifiche in tempo reale. È più efficiente e rispetta i rate limits.