PHPackages                             pju/kirby-webhook-field - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. pju/kirby-webhook-field

ActiveKirby-plugin[DevOps &amp; Deployment](/categories/devops)

pju/kirby-webhook-field
=======================

A Kirby 3 plugin providing a field to easily use webhooks, e.g. for deploying your site to services such as Netlify

1.1.2(4y ago)335.8k↓25%5[5 issues](https://github.com/pju-/kirby-webhook-field/issues)[8 PRs](https://github.com/pju-/kirby-webhook-field/pulls)GPL-3.0-or-laterPHP

Since Jun 10Pushed 3y ago2 watchersCompare

[ Source](https://github.com/pju-/kirby-webhook-field)[ Packagist](https://packagist.org/packages/pju/kirby-webhook-field)[ RSS](/packages/pju-kirby-webhook-field/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (15)Used By (0)

Kirby Webhook Field
===================

[](#kirby-webhook-field)

This plugin provides a panel field for [Kirby CMS](https://getkirby.com/). Use it to easily trigger [webhooks](https://en.wikipedia.org/wiki/Webhook) from the Kirby panel.
Probably the most common use case for a webhook would be to trigger a build or deploy mechanism.

[![](kirby-webhooks.gif)](kirby-webhooks.gif)

Why use this
------------

[](#why-use-this)

If you have a static site that is run by Kirby, you will want to have a mechanism where editors can trigger a new build/deploy and see the current status of the site. This is probably the most common use case for triggering a webhook from inside your CMS. You could also use it to communicate with Zapier, IFTTT, an email app or other services though. Basically any time you want to trigger an outside service that is implemented with a webhook and you want to see the result in the panel, you can use this plugin.

You can even use it just to access any API and to with the data whatever you want, but then you need to manually take care of the state of the panel field.

Installation
------------

[](#installation)

### Manual

[](#manual)

Just download this repo and put the content into `/site/plugins/webhook-field`.

### As git submodule

[](#as-git-submodule)

Run `git submodule add https://github.com/pju-/kirby-webhook-field site/plugins/webhook-field` in the root of your Kirby installation.

### With composer

[](#with-composer)

Run `composer require pju/kirby-webhook-field` in the root of your Kirby installation.

Next Steps
----------

[](#next-steps)

[Quickstart guide](https://github.com/pju-/kirby-webhook-field/tree/master/docs/quickstart.md).

If you want to quickly set up a deploy hook, check the quickstart guide.

[Full options guide](https://github.com/pju-/kirby-webhook-field/tree/master/docs/config.md).

Check out all the options if you have a more advanced setup or want to learn more about the possibilities the plugin offers.

Caveats
-------

[](#caveats)

### Name Change

[](#name-change)

This plugin used to be called `kirby-webhooks` when it was still in beta. After release, I realized that there is now [another plugin that provides a different approach to webhook integration](https://getkirby.com/plugins/errnesto/webhooks). To avoid confusion and make the difference more clear, I have renamed this to `kirby-webhook-field`. *If you have installed the old version*: you will have to rename your field type from `webhooks` to `webhook` and change your config from `pju.webhooks.SETTING` to `pju.webhook-field.SETTING` if you update to the new version.

### Is this ready for production?

[](#is-this-ready-for-production)

I run it on several live sites. For you typical use case you should be able to use it without hesitation. There are some corner cases that I am aware of where behaviour is not ideal. At the moment these concern sites with a large amount of pages or with multiple languages. For these the implementation of the "last modified" date is not ideal. You should [disable the "outdated" option for those sites](https://github.com/pju-/kirby-webhook-field/tree/master/docs/config.md#hook-structure). You can comment on [this ticket](https://github.com/pju-/kirby-webhook-field/issues/8) if you want to see progress there more quickly.

### Can I use this to communicate with an API?

[](#can-i-use-this-to-communicate-with-an-api)

You can certainly use it to send data to an API. You will have access to the result of your API call via the `callback` option. However, if your API call does not result in a subsequent incoming call to the `status` endpoint, you will have to take care of setting the new status yourself. If you need this right now, let me know [in this ticket](https://github.com/pju-/kirby-webhook-field/issues/10) or create your own.

### Is this safe?

[](#is-this-safe)

Incoming request to the `status` endpoint provided by the plugin will only change the state of the field. Invalid states are discarded. However, I would still recommend [setting the name of the endpoint to something safe](https://github.com/pju-/kirby-webhook-field/blob/master/docs/config.md#endpoint). You can treat the name almost like an API token.

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity33

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~124 days

Total

5

Last Release

1670d ago

Major Versions

0.9.0 → 1.0.02020-06-11

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/33719985?v=4)[philipjonas](/maintainers/philipjonas)[@PhilipJonas](https://github.com/PhilipJonas)

---

Top Contributors

[![pju-](https://avatars.githubusercontent.com/u/5202770?v=4)](https://github.com/pju- "pju- (12 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (5 commits)")[![tristantbg](https://avatars.githubusercontent.com/u/4832038?v=4)](https://github.com/tristantbg "tristantbg (1 commits)")

---

Tags

deploydeploymentheadlesskirbykirby-panelkirby-panel-fieldkirby-pluginkirby-pluginskirby3-cmskirby3-pluginnetlifynetlify-deploymentwebhooks

### Embed Badge

![Health badge](/badges/pju-kirby-webhook-field/health.svg)

```
[![Health](https://phpackages.com/badges/pju-kirby-webhook-field/health.svg)](https://phpackages.com/packages/pju-kirby-webhook-field)
```

###  Alternatives

[deployer/deployer

Deployment Tool

11.1k25.4M207](/packages/deployer-deployer)[appwrite/server-ce

End to end backend server for frontend and mobile apps.

55.3k84.2k](/packages/appwrite-server-ce)[pragmarx/health

Laravel Server &amp; App Health Monitor and Notifier

2.0k1.0M2](/packages/pragmarx-health)[felixfbecker/language-server-protocol

PHP classes for the Language Server Protocol

22476.7M6](/packages/felixfbecker-language-server-protocol)[heroku/heroku-buildpack-php

Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku

8161.3M10](/packages/heroku-heroku-buildpack-php)[oblik/kirby-git

Shows you Git changes in the Kirby panel and allows you to add/commit/push them, manually or automatically.

8310.4k](/packages/oblik-kirby-git)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
