jeffersongoncalves / filament-webhooks
Filament v5 UI for jeffersongoncalves/laravel-webhooks — manage outgoing webhooks, events and delivery logs from your panel.
Package info
github.com/jeffersongoncalves/filament-webhooks
pkg:composer/jeffersongoncalves/filament-webhooks
Fund package maintenance!
Requires
- php: ^8.2
- filament/filament: ^5.0
- jeffersongoncalves/filament-plugin-core: ^3.0
- jeffersongoncalves/laravel-webhooks: ^1.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.21
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
- pestphp/pest-plugin-livewire: ^3.0|^4.0
README
Filament Webhooks
A Filament v5 panel UI for jeffersongoncalves/laravel-webhooks. Manage outgoing webhook endpoints, choose which model events they listen to, send test deliveries, and inspect delivery logs — all from your Filament panel.
This package is purely the UI layer. All the heavy lifting (dispatching, signing, queueing, logging, and the SendsWebhooks model traits) lives in the framework-agnostic core package jeffersongoncalves/laravel-webhooks. Install and configure the core package to make your Eloquent models emit webhooks; install this package to manage them visually.
Compatibility
| Version | Branch | Filament | PHP | Laravel |
|---|---|---|---|---|
| 1.x | 1.x |
^3.0 | ^8.1 | ^10.0 |
| 2.x | 2.x |
^4.0 | ^8.2 | ^11.0 |
| 3.x | 3.x |
^5.0 | ^8.2 | ^11.0 | ^12.0 |
Installation
Install the package via Composer:
composer require jeffersongoncalves/filament-webhooks:"^3.0"
The core package jeffersongoncalves/laravel-webhooks is pulled in automatically. Publish and run its migrations so the webhooks and webhook_logs tables exist:
php artisan vendor:publish --tag="laravel-webhooks-migrations" php artisan vendor:publish --tag="laravel-webhooks-config" php artisan migrate
Optionally publish this plugin's configuration:
php artisan vendor:publish --tag="filament-webhooks-config"
Usage
Register the plugin on any Filament panel:
use Filament\Panel; use JeffersonGoncalves\FilamentWebhooks\FilamentWebhooksPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentWebhooksPlugin::make(), ]); }
This registers a Webhooks resource in the panel that lets you:
- Create / edit webhook endpoints — name, URL, optional signing secret (with a one-click random generator), an optional model class to scope deliveries, the model events to listen to (Created / Updated / Deleted), and an active toggle.
- Browse and filter — search by name and URL, filter by active state and event, and copy URLs straight from the table.
- Send a test delivery — the Test row/header action calls
Webhooks::test()from the core package and notifies you whether the call succeeded or failed. - Inspect delivery logs — a read-only Delivery Logs relation manager shows each attempt's event, success state, response code, error message, and timestamp.
Making your models emit webhooks
That part is handled entirely by the core package. Add the SendsWebhooks trait (and optionally ShouldQueueWebhook, CreatedWebhook, UpdatedWebhook, DeletedWebhook, AllWebhooks) to your Eloquent models as documented in jeffersongoncalves/laravel-webhooks. This Filament plugin only manages the Webhook records those traits read from.
Configuration
config/filament-webhooks.php controls how the resource appears in the panel:
return [ 'navigation' => [ 'group' => null, // navigation group label 'sort' => null, // navigation sort order 'icon' => 'heroicon-o-bolt', ], ];
The webhook behaviour itself (queue, logging, table/model overrides) is configured in the core package's config/webhooks.php.
Localization
Translations are provided for English (en) and Brazilian Portuguese (pt_BR). Publish them to customize:
php artisan vendor:publish --tag="filament-webhooks-translations"
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
- Jefferson Gonçalves
- Inspired by dniccum/nova-webhooks
License
The MIT License (MIT). Please see License File for more information.
