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:

  1. A trigger starts execution (schedule, Laravel event, webhook, or manual).
  2. Action / data nodes transform context and pass it forward.
  3. Flow-control nodes branch, loop, or join paths.
  4. Human / wait nodes pause the execution until a decision, signal, or datetime.
  5. The engine records every node result for observability.
TEXT
[Manual Trigger]
      │
      ▼
[Dummy Data / Data Model]
      │
      ▼
[Request Approval]  ── waiting until Approve / Reject
      │
      ▼
[If approved] ──▶ [Send Mail / System Notification]

Next steps