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
- New here? Start with Installation, then How it works.
- Setting up a destination? See Connections.
- Building your first rule? See Rules and the built-in sources.
- Posting to Microsoft Teams? See Microsoft Teams.
- Posting to Slack, Zapier, Make or your own endpoint? See Payloads and cards and Custom events.
- Something not arriving? See Troubleshooting.
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.