Webhook Server plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Webhook Server

Send webhooks from Filament apps.

Tags: Developer Tool Spatie Integration
Supported versions:
5.x 4.x 3.x 2.x
Josie Darang avatar Author: Josie Darang

Documentation

Version:

Latest Version on Packagist Total Downloads

#Screenshots

image1 image2

This package provides a Filament page that you can send webhook server. You'll find installation instructions and full documentation on spatie/laravel-webhook-server.

#Installation

You can install the package via composer:

composer require marjose123/filament-webhook-server

You can publish and run the migrations with:

php artisan vendor:publish --tag="filament-webhook-server-migrations"
php artisan migrate

Add the plugin to your panel and you're ready to go


use Marjose123\FilamentWebhookServer\WebhookPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugins([
              WebhookPlugin::make()
                    ->icon(Heroicon::AcademicCap) // Set the icon for the plugin
                    ->enableApiRoutes() // Enable the API routes
                    ->includeModels([]) // Include the models you want to be able to receive webhooks for that is not automatically included
                    ->excludedModels([]) // Exclude the models you don't want to be able to receive webhooks for
                    ->keepLogs() // Keep the logs of the webhooks
                    ->sort(1) // Set the sort order of the webhooks plugin in the navigation
                    ->polling(10) // Set the polling interval in seconds for the webhook plugin
                    ->customPageUsing(webhookPage: Webhooks::class, webhookHistoryPage: WebhookHistory::class) // Set the custom pages for the webhooks plugin if you want to use your own
                    ->enablePlugin(),
        ]);  
       
}

#Usage

  1. All the models will automatically be part of the webhook as an option during creation.
  2. This package will automatically register the Webhook-Server. You'll be able to see it when you visit your Filament admin panel.

#Webhook payload Structure

[
  {
    "event": "created",  // <== Type of Event
    "module": "Testing", // <== Module name, were the event happend
    "triggered_at": "2023-01-18T05:07:37.748031Z", // <== Based on the Date and time the Event happen
    "data": { // <== Actual information depending on what you selected "Summary, All or Custom"
      "id": 34,
      "created_at": "2023-01-18T05:07:37.000000Z"
    }
  }
]

For a custom option you need to implement Webhookable interface and create your toWebhookPayload method in your models

class YourModel extends Model implements Webhookable
{
 //......
 
 public function toWebhookPayload(): array
 {
    return [
        'customAttribute' => $this->yourAttribute
    ];
 }
}

#Changelog

Please see CHANGELOG for more information on what has changed recently.

#Contributing

Please see CONTRIBUTING for details.

#Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

#Credits

#License

The MIT License (MIT). Please see the License File for more information.