Download the PHP package rezadaulay/filament-whatsapp-notification without Composer
On this page you can find all versions of the php package rezadaulay/filament-whatsapp-notification. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download rezadaulay/filament-whatsapp-notification
More information about rezadaulay/filament-whatsapp-notification
Files in rezadaulay/filament-whatsapp-notification
Package filament-whatsapp-notification
Short Description Filament WhatsApp notification plugin using an external expressjs-baileys HTTP gateway.
License MIT
Homepage https://github.com/rezadaulay/filament-whatsapp-notification
Informations about the package filament-whatsapp-notification
Filament WhatsApp Notification
rezadaulay/filament-whatsapp-notification is a Filament plugin for Laravel that adds a WhatsApp notification channel backed by an external HTTP gateway. It lets your application queue outgoing WhatsApp messages, inspect delivery attempts, monitor gateway connectivity from Filament, and manually test the connection without building the admin tooling yourself.
This package is designed to work especially well with rezadaulay/expressjs-baileys, a Baileys-powered WhatsApp gateway that exposes endpoints such as /status, /qr, /send-message, /restart-socket, /restart, and /logout.
Features
- Laravel notification channel named
whatsapp - Filament plugin with:
- WhatsApp connection page
- notification log resource
- stats widget
- Queue-based delivery flow with retry support
- Delivery log table for auditing and troubleshooting
- Gateway status checks and QR access from the Filament panel
- Configurable send delay, queue name, attempts, timeout, and default country code
How It Works
The package stores outgoing WhatsApp notifications in a database table first. A queued job then processes pending records one by one and sends them to the configured HTTP gateway.
High-level flow:
- Your Laravel notification returns a
WhatsappMessage. - The
whatsappchannel writes a log row intowhatsapp_notification_logs. - A queued job picks the next pending message.
- The job sends the message to the external gateway via HTTP.
- The result is stored back in the log table and shown in Filament.
This design gives you traceability, retry behavior, and safer operational handling than sending directly inside the request lifecycle.
Relationship to rezadaulay/expressjs-baileys#6
This package depends on a separate gateway server and is intended to integrate with rezadaulay/expressjs-baileys.
The pull request rezadaulay/expressjs-baileys#6, merged on July 4, 2026, translated the remaining Indonesian text in that gateway project into English. That matters here because:
- this Filament plugin is now easier to document fully in English end to end
- gateway API responses and operational messages are more consistent for English-speaking teams
- troubleshooting across the Laravel plugin and the gateway is clearer because both sides now use the same language
Functionally, this plugin talks to the gateway through HTTP endpoints. PR #6 did not change that integration contract; it improved the gateway's English-facing developer and operational text.
Requirements
- PHP
^8.2 - Laravel components
^11.0|^12.0 - Filament
^5.0 - A running WhatsApp gateway, such as rezadaulay/expressjs-baileys
- A working Laravel queue worker
Installation
Install the package:
Publish configuration and migrations:
If you are using Filament Panels with a custom theme, add the package views to your theme or app CSS source list:
Then refresh Filament assets if needed:
Gateway Setup
Point this package to a running HTTP gateway. The default configuration expects:
If you are using rezadaulay/expressjs-baileys, make sure the gateway is running, paired with WhatsApp, and reachable from your Laravel app.
Typical gateway endpoints used by this package:
GET /statusGET /qrPOST /send-messagePOST /restart-socketPOST /restartPOST /logout
Filament Registration
Register the plugin in your Filament panel provider:
You can enable or disable individual pieces:
Or selectively disable them:
Configuration
Published config: config/filament-whatsapp-notification.php
Recommended .env example:
Usage
1. Route the recipient
Your notifiable model can define a WhatsApp routing method:
2. Create a notification
3. Send the notification
4. Override destination or country code when needed
Running the Queue
This package relies on Laravel queues for actual delivery. Make sure a worker is running:
If you want to process a dedicated queue:
Without a queue worker, notifications will be logged but not sent.
Filament Features
After registering the plugin, you get:
- a WhatsApp Connection page to inspect gateway status
- QR access through a signed proxy route
- actions to refresh status, restart the socket, reset the session, and log out
- a log resource for outgoing notifications
- a stats widget for operational visibility
The connection page also supports:
- direct test sending through the gateway
- queue-based test messages through the package pipeline
Operational Notes
- Messages are processed sequentially with a lock to reduce concurrent-send issues.
- A random delay is applied between sends to avoid sending messages back to back too aggressively.
- Failed sends can return to
pendinguntil the configured max attempts is reached. - Stale
processingrecords are released automatically back topending. - If
check_status_before_sendis enabled, the package verifies gateway connectivity before each send attempt.
Troubleshooting
Messages stay pending
Check these first:
- Laravel queue worker is running
- queue connection is configured correctly
- gateway URL is reachable from Laravel
WHATSAPP_NOTIFICATION_ENABLED=true
Gateway status fails in Filament
Usually one of these is the cause:
- the gateway server is offline
- the gateway base URL is wrong
QR does not load
The package shows the QR through a signed proxy route:
If the gateway itself is healthy but the QR is unavailable, the WhatsApp session may not have produced a QR yet, or it may already be connected.
Notifications fail repeatedly
Inspect the log resource in Filament and confirm:
- phone number format is valid
- default country code is correct
- the paired WhatsApp session is still connected
- the external gateway can send to that number
Testing
Run the package test suite with:
Changelog
See CHANGELOG.md for recent changes.
License
This package is open-sourced under the MIT license.
All versions of filament-whatsapp-notification with dependencies
filament/filament Version ^5.0
illuminate/notifications Version ^11.0|^12.0
illuminate/support Version ^11.0|^12.0
spatie/laravel-package-tools Version ^1.15.0