Webhook firmati per eventi CRM
I webhook inviano eventi firmati HMAC su contatti e campagne, con retry esponenziale, log di consegna e pannello di configurazione per tenant.
Aggiunto
- Piattaforma
Webhook in uscita per ogni tenant: configura un endpoint esterno a cui SmartCQ inoltra gli eventi del tuo spazio. Da `Impostazioni → Webhook` scegli evento, URL e una etichetta; SmartCQ ti restituisce un secret HMAC da copiare al volo. Tutte le richieste outbound viaggiano con header `x-smartcq-signature: sha256=<hex>` e id di delivery univoco per idempotenza.
- Contatti
Evento `contact.email_status_changed`: emesso quando lo stato email di un contatto cambia (bounce, segnalazione spam, disiscrizione, riattivazione manuale). Payload con `from`/`to`/`reason` — un solo evento copre tutti i casi, niente eventi paralleli per ogni esito.
- Lead
Evento `campaign.completed`: emesso quando una campagna ha finito il dispatch — utile per dashboard esterne o data warehouse che vogliono sapere subito quante email sono partite e quante sono fallite, senza polling.
- Piattaforma
Pannello "Webhook" in `Impostazioni`: lista subscription con switch per attivare/disattivare, vista degli ultimi eventi generati (con stato `consegnato`, `retry`, `in coda`) e ultime consegne con HTTP status code e messaggio di errore se ce n'è uno.
- Piattaforma
Documentazione webhook: nuova pagina su `smartcq.it/docs/piattaforma/webhooks` con eventi disponibili, formato payload, snippet di verifica firma in Node.js e Python, schema retry e buone pratiche per il consumer.
Migliorato
- Piattaforma
Retry esponenziale automatico sulle consegne webhook: 1 minuto, 5 minuti, 30 minuti, 2 ore, 12 ore. Dopo cinque tentativi falliti l'evento entra in stato `parked` con motivo loggato — niente loop infiniti, niente perdita silenziosa.
- Piattaforma
Audit trail integrazioni: ogni operazione su webhook (creazione, abilita/disabilita, eliminazione) finisce nel registro attività del tenant.