Salta ai contenuti

Webhooks

Un webhook è la forma più semplice di collegamento: un messaggio HTTP verso un indirizzo che stabilisci tu. Slack, Discord e Microsoft Teams accolgono messaggi del genere direttamente come contributo in un canale; i sistemi propri possono farne quello che vogliono.

Impieghi tipici: l’indirizzo di supporto segnala le nuove richieste nel canale del team. La conferma d’ordine mette in moto il gestionale. L’allarme del server di un cliente compare in Discord.

  1. Apri Impostazioni → Integrazioni → Webhooks e attiva Abilita webhooks.
  2. Scegli Aggiungi endpoint e inserisci un Nome e l’URL.
  3. In Modello predefinito del payload scegli Slack, Discord, Microsoft Teams o Generic JSON. Il modello compila il Template del payload (JSON) con una struttura di base adatta, che puoi modificare liberamente.
  4. Testa invia un messaggio di prova con dati di esempio: con Slack e simili lo vedi subito nel canale.

L’URL lo ottieni presso il servizio corrispondente:

  • Slack: su api.slack.com/apps crea un’app con Incoming Webhooks; l’URL generato è l’endpoint.
  • Discord: impostazioni del canale → Integrazioni → Webhooks.
  • Teams: nel canale, tramite l’app Workflows con il modello per pubblicare quando arriva una richiesta webhook.
  • Sistemi propri: qualsiasi indirizzo che accetti JSON via HTTP POST o PUT.

Sono possibili più endpoint, ognuno si può disattivare singolarmente: il canale di supporto e uno script tuo possono convivere.

L’invio passa esclusivamente dall’ automazione: l’azione Invia webhook in una regola, con l’endpoint che scegli come destinazione.

Che cosa viene inviato esattamente lo stabilisce il template del payload dell’endpoint. Lì inserisci le variabili tra doppie parentesi graffe, che al momento dell’invio vengono riempite con i dati del messaggio che ha fatto scattare la regola: {{subject}}, {{from}}, {{from_name}}, {{to}}, {{cc}}, {{date}}, {{preview}} (l’inizio del testo), {{tags}}, {{mailbox}}, {{account_id}} e {{rule_name}}. Il Riferimento variabili sotto il template le spiega una per una. Una segnalazione Slack per il canale di supporto ha per esempio questo aspetto:

{ "text": "Nuova richiesta da {{from_name}}: {{subject}}" }
  • Firma: se inserisci un Segreto HMAC (opzionale), ogni richiesta contiene l’intestazione X-YouniqMail-Signature: sha256=… con una firma HMAC-SHA256 del contenuto. Con essa il tuo server verifica che il messaggio venga da te.
  • Ripetizioni: in caso di errori del server (5xx) e problemi di rete YouniqMail ritenta fino a tre volte, con pause di 1, 2 e 4 secondi. I rifiuti (4xx) non vengono ripetuti. Il timeout lo imposti per ogni endpoint, al massimo 30 secondi.
  • Metodo: POST è il predefinito, PUT solo se il tuo endpoint lo richiede. I reindirizzamenti non vengono seguiti.
  • Il messaggio va all’endpoint che indichi tu. Controlla con cura l’URL, perché chiunque lo conosca può scrivere nel canale. Tratta gli URL dei webhook come password.
  • Il contenuto lo stabilisci tu: viene trasmesso quello che sta nel template. Chi inserisce solo oggetto e mittente, passa solo quelli.
  • Funzione Pro: i webhook fanno parte dell’ insieme Pro.