Skip to content

Webhooks

I webhooks ti notificano in tempo reale quando avvengono eventi in BladeCRM.

Come Funzionano

  1. Configuri un URL endpoint
  2. Selezioni gli eventi da ricevere
  3. BladeCRM invia POST al tuo URL quando l'evento accade
  4. Il tuo sistema elabora la notifica

Creare un Webhook

Da Dashboard

  1. ImpostazioniWebhooksNuovo
  2. Configura:
    • Nome: Identificativo
    • URL: Endpoint del tuo server
    • Eventi: Quali eventi ricevere
  3. Salva

Via API

http
POST /api/v1/webhooks
json
{
  "name": "Notifiche Slack",
  "url": "https://tuo-server.com/webhook",
  "events": ["contact.created", "deal.won"]
}

Eventi Disponibili

Contatti

EventoDescrizione
contact.createdNuovo contatto
contact.updatedContatto modificato
contact.deletedContatto eliminato

Aziende

EventoDescrizione
company.createdNuova azienda
company.updatedAzienda modificata
company.deletedAzienda eliminata

Trattative

EventoDescrizione
deal.createdNuova trattativa
deal.updatedTrattativa modificata
deal.stage_changedCambio stadio
deal.wonTrattativa vinta
deal.lostTrattativa persa
deal.deletedTrattativa eliminata

Attività

EventoDescrizione
activity.createdNuova attività
activity.completedAttività completata

Appuntamenti

EventoDescrizione
appointment.createdNuovo appuntamento
appointment.updatedAppuntamento modificato
appointment.cancelledAppuntamento annullato

Dettagli eventi →

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"
  }
}

Dettagli payload →

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.

Dettagli sicurezza →

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 ImpostazioniWebhooksLog:

  • 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.

Realizzato con ❤️ da DScom