Aiuto e guideNotifiche › Webhook a Slack, Discord e Teams

Webhook a Slack, Discord e Teams

4 min di lettura · Notifiche

Un webhook (invio automatico di un messaggio a un indirizzo specificato) è un modo universale per inviare una notifica a qualsiasi applicazione: Slack, Discord, Microsoft Teams o il tuo sistema personalizzato. La connessione richiede pochi minuti ed ePulz.io formatta il messaggio per il servizio di destinazione in modo automatico.

Campo webhook nelle impostazioni delle notifiche
L'indirizzo del webhook si incolla nella sezione Notifiche: il tipo di servizio (Slack, Discord, Teams) lo riconosciamo automaticamente.

ePulz.io riconosce automaticamente il tipo di servizio di destinazione in base all'indirizzo del webhook. Riconosciamo: Slack (hooks.slack.com/services/...), Discord (discord.com/api/webhooks/... e discordapp.com/api/webhooks/...), Microsoft Teams incluso Power Automate / Workflows (*.webhook.office.com, outlook.office.com/webhook/..., *.logic.azure.com/workflows/...). Per gli altri indirizzi usiamo un payload JSON generico.

Connessione di Slack

  1. In Slack apri api.slack.com/apps e clicca su Create New App → From scratch.
  2. Dai un nome all'app (ad esempio "ePulz Alerts") e scegli il workspace a cui deve appartenere.
  3. Nel menu a sinistra scegli Incoming Webhooks e impostali su On.
  4. Clicca su Add New Webhook to Workspace e seleziona il canale su cui vuoi ricevere le notifiche.
  5. Copia l'indirizzo del webhook generato (inizia con https://hooks.slack.com/services/...).
  6. In ePulz.io apri Impostazioni → Notifiche → Webhook, incolla l'indirizzo e salva.

ePulz.io riconosce automaticamente che si tratta di Slack e invia messaggi ben formattati con una barra colorata (rossa in caso di disservizio, verde al ripristino) e un link di ritorno alla dashboard.

Connessione di Discord

  1. Nel tuo server Discord fai clic destro sul canale e scegli Modifica canale → Integrazioni → Webhook.
  2. Clicca su Nuovo webhook, eventualmente dai un nome al bot e imposta un avatar.
  3. Clicca su Copia URL webhook. L'indirizzo ha la forma https://discord.com/api/webhooks/....
  4. In ePulz.io apri Impostazioni → Notifiche → Webhook, incolla l'indirizzo e salva.

Anche per Discord prepariamo il formato del messaggio automaticamente: viene usato un embed di Discord (un messaggio evidenziato con cornice) con il nome del monitor, la descrizione del problema e l'orario.

Test del webhook

Dopo aver salvato l'indirizzo, clicca su Testa nelle impostazioni. Invieremo un messaggio di prova al canale di destinazione, così potrai vedere subito come apparirà la notifica. Se non arriva nulla, verifica di aver copiato l'indirizzo completo correttamente e che il bot abbia accesso al canale.

Microsoft Teams (Adaptive Card)

Per Microsoft Teams (inclusi gli URL Power Automate / Workflow logic.azure.com/workflows/...) inviamo il messaggio in formato Adaptive Card v1.4 incapsulato in un messaggio:

{
  "type": "message",
  "attachments": [{
    "contentType": "application/vnd.microsoft.card.adaptive",
    "content": {
      "type": "AdaptiveCard",
      "version": "1.4",
      "body": [
        {"type": "TextBlock", "text": "Monitor DOWN: Sito di produzione", "weight": "bolder", "size": "large"},
        {"type": "TextBlock", "text": "Non raggiungibile: HTTP 503", "wrap": true}
      ],
      "actions": [
        {"type": "Action.OpenUrl", "title": "Apri in ePulz.io", "url": "https://epulz.io/dashboard/monitor/42"}
      ]
    }
  }]
}

In Teams l'indirizzo del webhook si ottiene dal connettore Incoming Webhook del canale, oppure dal modello Power Automate "Post to Teams when a HTTP request is received".

Webhook personalizzato (endpoint generico)

Se devi inviare notifiche alla tua applicazione, inserisci nelle impostazioni l'indirizzo del tuo endpoint (l'indirizzo di destinazione). ePulz.io vi invia una richiesta con il metodo POST e un corpo in formato JSON:

{
  "event": "down",
  "monitor": {
    "name": "Sito di produzione",
    "target": "https://example.com",
    "url": "https://epulz.io/dashboard/monitor/42"
  },
  "message": "Non raggiungibile: HTTP 503",
  "timestamp": "2026-05-31T14:23:45+00:00",
  "source": "epulzio"
}

Il campo event assume i valori down (disservizio), up (ripristino), ssl (scadenza imminente del certificato SSL), domain (scadenza imminente del dominio), anomaly (anomalia del tempo di risposta) o test (invio di prova). Il campo monitor.name è il nome del monitor, monitor.target è l'indirizzo monitorato e monitor.url è il link di ritorno alla dashboard di ePulz.io.

Verifica della firma (HMAC)

Facoltativamente puoi attivare la firma nelle impostazioni: firmiamo allora ogni richiesta con una chiave segreta (HMAC SHA-256) e aggiungiamo due header:

  • X-ePulzio-Signature - firma nel formato sha256=<hex digest> del corpo della richiesta
  • X-ePulzio-Event - il tipo di evento (lo stesso valore del campo event nel corpo)

Sul tuo endpoint basta calcolare l'HMAC SHA-256 del corpo ricevuto con la stessa chiave segreta e confrontarlo con l'header. Se coincidono, la richiesta è autentica e non è stata alterata durante il transito.

Suggerimento: Per i team più grandi consigliamo un canale Slack o Discord dedicato esclusivamente alle notifiche (ad esempio #alerts). Il canale non viene così invaso da altre discussioni e i messaggi critici non sfuggono a nessuno.
Questa guida è stata utile?