Craft CMS plugin

Webhook Notifier

Rule-driven webhook notifications for Craft CMS, with first-class Microsoft Teams support.

Overview

Webhook Notifier sends a webhook whenever something happens on your Craft site, using rules you set up in the control panel. It can post to Microsoft Teams, Slack, Zapier, Make, or your own endpoint.

Connections keep webhook URLs out of your rules, built-in and custom event sources cover common triggers, and queued delivery with retries and a delivery log gives you a clear record of what was sent.

  • Built for Teams Workflows

    Builds the Adaptive Card and wraps it in the Power Automate envelope Teams now expects.

  • Any Craft event

    Name a class and an event, and a rule fires the moment it happens. No polling.

  • Every send on record

    Deliveries are queued, retried and logged with the request and response, and can be resent.

Features

What it does

  1. Rules in the control panel

    Each rule pairs a trigger with optional conditions, a destination and a payload. The common cases need no code, templates or deployments.

  2. Microsoft Teams Adaptive Cards

    Build a card from a title, body, facts and a button, or write the Adaptive Card JSON yourself. Either way it is wrapped for Power Automate Workflows.

  3. Any webhook

    Raw payload mode posts the Twig template you write as JSON, with no wrapping, for Slack, Zapier, Make or your own endpoint.

  4. Built-in sources

    Entry saved, user registered, activated or moved group, queue job failures, Freeform submissions and a scheduled queue-size check, each with its own variables.

  5. Custom event source

    Trigger a rule on any Craft or Yii event by naming a sender class and an event name. The event object is available to your payload.

  6. Conditions

    Narrow a rule to the cases you care about, such as one section or a queue over 50 jobs. Every condition has to pass.

  7. Connections kept secret

    Webhook URLs are stored encrypted or as an environment variable reference, and each connection has a Send a test button to check it works.

  8. Queued delivery and retries

    Sends run in the background, so a slow webhook never holds up the request that triggered it. Failures are retried, up to five times by default.

  9. Delivery log and resend

    Every attempt is logged with its payload, response and status. Resend re-renders the rule's current card against the delivery's saved context.

  10. Activity at a glance

    The rules list shows a 14-day sparkline of sends and failures for each rule.

  11. Per-environment switch

    A global Enabled setting, readable from a WEBHOOK_NOTIFIER_ENABLED environment variable, silences notifications on staging without touching production.

  12. Hooks for developers

    Report a failure from your own code with reportFailure(), or register your own notification source from a module or plugin through a single event.

Get started

Install Webhook Notifier

  1. Require it with Composer:
    composer require coysh-digital/craft-webhook-notifier
  2. In the control panel, go to Settings → Plugins and install it.
  3. The documentation (opens in a new tab) covers the settings and everything after that.

Questions

Questions people ask

Does it work with Teams now the old connectors have gone?
Yes. In Teams, open the channel, choose ⋯ → Workflows and use the ‘Post to a channel when a webhook request is received’ template. Copy the HTTP POST URL into a new connection. The plugin wraps each Adaptive Card in the envelope Workflows expect.
Why does Teams reject the post with a 401?
UnauthorizedSenderForChannelNotification means the flow ran but its posting identity isn't a member of the team or channel. Recreate the workflow from inside the channel while signed in as a team member, or add the flow's connection account to the team.
Can I send to Slack, Zapier or Make?
Yes. Use Raw payload mode and write the body in Twig. Finish it with |json_encode|raw, or Twig will escape the JSON and most services will reject it.
Does it need a cron job?
Only for the Queue size source, which checks on a schedule: run php craft webhook-notifier/monitor/queue from cron, with --cooldown to limit repeat alerts. Every other source fires instantly.
What happens if a webhook is down?
Sends are queued, so the page that triggered them isn't held up. A failed send is retried with Craft's queue back-off, five times by default, and every attempt appears in the delivery log. You can resend a delivery once the endpoint is back.
Where are webhook URLs stored?
In a connection, either encrypted in the database or as a reference to an environment variable, which keeps the URL out of the database and project config entirely. Restrict the Manage connections permission, because anyone with the URL can post to your channel.
Nothing arrived and nothing was logged. Why?
The rule never fired. Check the global Enabled setting, that the rule is enabled, that its source matches what happened and that its conditions pass. Entry saves from drafts and revisions are skipped.
Do I need Freeform?
No. If Solspace Freeform 5 is installed, a Freeform submission source appears, with every submitted field available to your payload. Without it, that source is hidden and nothing else changes.

Support

Help when you need it

More plugins

From Coysh Digital

All plugins
  • Download Tracker

    Craft CMS $10

    Lightweight, static-cache-friendly download tracking for Craft CMS.

  • Craft Analytics

    Craft CMS Lite free, Pro $69

    Privacy-first, consent-aware analytics that runs inside Craft CMS.

  • Formie Beacon CRM

    Craft CMS Free

    A completely free Beacon CRM integration for Formie.

Get in touch

Use the form below to tell us about your project, or email [email protected] directly. We’ll get back to you as soon as we can to see how we can help.