GLPI notification integrations: Slack, Teams, email templates

GLPI notification integrations: Slack, Teams, email templates

Email is the default channel for GLPI notifications, but for fast operational response it's often not enough. For P1 tickets you need a channel that pings, not one that gets buried in an Outlook unread folder. For team-wide incident response you want a single shared channel where everyone sees the progress without having to click into GLPI individually. That's where Slack, Teams, and similar platforms come in.

Native webhooks in GLPI 11

GLPI 11 introduced native webhooks, replacing the older plugins. Under Setup → Webhooks → Add:

  1. Name — for example "Slack #it-incidents".
  2. URL — the incoming webhook URL from Slack/Teams (generated in the target platform's admin panel).
  3. Event — pick triggers (Ticket created, Status changed to Solved, Validation requested).
  4. Payload — JSON template with GLPI placeholders:
{
  "text": "🚨 New ticket #{{id}}: {{name}}",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Priority:* {{priority}}\n*Requester:* {{requester}}\n*<{{url}}|Open ticket>*"
      }
    }
  ]
}

Slack recognises this Block Kit format and renders a card with an "Open ticket" button. Teams uses its own Adaptive Cards format — the payload is equivalent, just shaped differently. The {{url}} placeholder expands to a direct URL, so the technician taps and lands inside the GLPI ticket immediately.

Slack integration: step by step

  1. In Slack admin: Apps → Custom Integrations → Incoming Webhooks → Add. Pick the target channel (e.g. #it-incidents) and a webhook URL is generated.
  2. In GLPI: create a webhook with that URL.
  3. Set the trigger to "Ticket created" + filter "priority >= 4 (high or critical)".
  4. Test: create a P1 ticket in GLPI, watch the Slack channel — the message should arrive in 1 – 2 seconds.

For better signal-to-noise it pays off to set up at least three channels:

  • #it-incidents — only P1 and P2 (critical, high). Mute notifications outside on-call shift.
  • #it-helpdesk — all new tickets, status changes. Important for the L1 team.
  • #it-approvals — approval requests for managers.

Microsoft Teams integration

For Teams use the Incoming Webhook connector. In the target channel: ... → Connectors → Incoming Webhook → Configure → URL. In GLPI you set it up the same way, but the JSON format uses Adaptive Cards:

{
  "@type": "MessageCard",
  "@context": "http://schema.org/extensions",
  "themeColor": "FF0000",
  "summary": "New P1 ticket",
  "sections": [{
    "activityTitle": "🚨 P1 incident: {{name}}",
    "facts": [
      {"name": "Ticket #", "value": "{{id}}"},
      {"name": "Requester", "value": "{{requester}}"}
    ],
    "potentialAction": [{
      "@type": "OpenUri",
      "name": "Open in GLPI",
      "targets": [{"os": "default", "uri": "{{url}}"}]
    }]
  }]
}

Teams Adaptive Cards also support inline actions ("Approve", "Refuse" buttons) that POST back to GLPI via webhook. For validation notifications this is a game-changer — the approver clicks in Teams and the decision is recorded straight in GLPI.

Deduplication and noise

Without controls, the Slack #it-helpdesk channel becomes spam — every ticket change is a new message, sometimes 50 a day. Strategies:

  • Threading — most platforms support threaded responses. On ticket creation, post the parent message; subsequent events (status change, follow-up) attach as threads to the same ticket. The GLPI 11 webhook config lets you set thread_ts from the value returned by the first webhook call.
  • Filter by priority — P3/P4 tickets don't need Slack notifications. Email is enough.
  • Map channels by category — security incidents to #security, hardware to #hardware, software to #software. Mute what doesn't apply to you.
  • Quiet hours — Slack/Teams app preferences support "do not disturb". Even a P1 wouldn't break the silence at 3am, just show a coloured badge.

Email templates per audience

For users outside Slack/Teams (C-level, external suppliers) email remains. Templates should differ by audience: a technical template for L1/L2 (with all the details), an executive template for management (only summary, status, link), a customer-facing template for the end requester (status update without internal comments).

In GLPI you achieve this by creating three different notifications for the same event with three templates and three recipient groups. Maintenance is higher, but the resulting communication quality is incomparable to the "one size fits all" email.

Notification integrations aren't about being everywhere. They're about getting the right information to the right people on the right channel. Slack for L1 and incident response, Teams for approvals, email for executives and externals. Plus quiet hours, threading, and filters so the channels don't turn into noise.

Need help with this topic?

Get in touch