Skip to content

Webhook Notifier

What it is

Webhook Notifier sends a webhook whenever something happens on your Craft site, based on rules you set up in the control panel.

It started life as a Microsoft Teams notifier. Microsoft retired the old Incoming Webhook connectors in 2026, and the replacement (Power Automate Workflows) needs its Adaptive Cards wrapped in a particular envelope, which this plugin handles for you. It has since grown into a general webhook tool: it can post to any webhook - Slack, Zapier, Make, your own endpoint - with whatever payload you define.

So there are two halves to it:

  • A trigger side - built-in sources for common events, plus a Custom event source that fires on any Craft or Yii event you name.
  • A delivery side - a Microsoft Teams Adaptive Card, or a raw payload of your own choosing sent to any other webhook.

A rule joins the two: when this happens, send this payload to this destination.

What you get

  • A rules engine in the control panel. Each rule pairs a trigger with a destination and a payload. No code required for the common cases.
  • Named connections. A destination is a webhook URL, stored encrypted or as a reference to an environment variable, so the secret stays out of your database and out of version control.
  • Two payload formats. Build a Microsoft Teams Adaptive Card (from structured fields or raw card JSON), or send a raw payload - a Twig template whose output is posted to the webhook as-is, for any non-Teams target.
  • Instant and scheduled triggers. Most sources fire the moment the event happens. The Queue size source runs on a schedule you control.
  • A delivery log. Every attempt is recorded with what was sent and what came back, and you can resend any delivery with a click.
  • Extensible. Register your own sources from another plugin or module through a single event.

Where to next

A webhook URL is a secret

Anyone holding a connection's URL can post to your channel. Store it as a reference to an environment variable rather than pasting it in, and restrict the Manage connections permission to people who should see it. See Connections.

A note on AI

In the spirit of being upfront: I used AI tooling while building this plugin, to think through approaches, to speed up some of the groundwork, and to help draft these docs. It was a tool on the bench, not the builder. Every line of code was reviewed, tested and put in place by a developer who understood it, and nothing shipped that I couldn't explain and stand behind. The judgement calls and the final code are mine.

Digital help you can trust.