Introduction
What is Voodflow?
Voodflow is a visual workflow automation plugin for FilamentPHP that brings self-hosted automation directly inside your Laravel application.
Unlike SaaS automation platforms, Voodflow runs on your infrastructure. Workflow definitions, execution history, credentials, and secrets never need to leave your servers.
Key principles
Data sovereignty
All workflow definitions, execution history, credentials, secrets, and runtime data are stored in your own database. This fits environments with strict privacy requirements (GDPR, NDA-bound data, internal tools, etc.).
Self-hosted by design
Voodflow does not require a Voodflow cloud account to execute workflows. It is a Laravel package that runs in your PHP processes and queue workers.
Human-in-the-loop (0.2)
Automations can pause for people. The Request Approval node notifies approvers by email and/or the Filament Approvals inbox, then resumes when they decide — optionally on branded approval pages.
FilamentPHP native
Voodflow registers Filament resources and pages via a plugin class and follows your panel auth, navigation, and theming.
What’s new in 0.2
| Feature | Summary |
|---|---|
| Human approvals | request_approval + Approvals inbox + signed links |
| Approval page layouts | Brand decide / result screens |
| Waits & signals | wait_for_signal, date_reached_node, resume APIs/commands |
| Secrets | Encrypted store + {{secrets.key}} |
| Ops | Workflow versions, dry-run runs, chat webhook templates |
| Execution state | New waiting status while paused |
Start here: Upgrading to 0.2 · Human approvals
Use cases
| Domain | Example |
|---|---|
| Marketing | Schedule posts, require editor approval before publish |
| CRM | Follow-ups on deal changes with manager sign-off |
| Finance | Pause payouts until an approver confirms |
| E-commerce | Order → enrich → human fraud check → fulfill |
| Reporting | Aggregate data, wait until a go-live date, then email |
| Webhooks | Receive events, wait for an external “paid” signal, continue |
| Ops notify | Slack / Discord / Teams / Telegram via webhook templates |
How it works
Voodflow models an automation as a directed graph of nodes:
- A trigger starts execution (schedule, Laravel event, webhook, or manual).
- Action / data nodes transform context and pass it forward.
- Flow-control nodes branch, loop, or join paths.
- Human / wait nodes pause the execution until a decision, signal, or datetime.
- The engine records every node result for observability.
[Manual Trigger]
│
▼
[Dummy Data / Data Model]
│
▼
[Request Approval] ── waiting until Approve / Reject
│
▼
[If approved] ──▶ [Send Mail / System Notification]