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.


A note on this project

AI tools helped with parts of the development process and with drafting this documentation. The code has been reviewed, tested, and implemented by developers, and the documentation has been checked against the plugins themselves.

Digital help you can trust.