PHPackages                             aftandilmmd/laravel-workflow-automation - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. aftandilmmd/laravel-workflow-automation

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

aftandilmmd/laravel-workflow-automation
=======================================

Graph-based workflow automation engine for Laravel — triggers, conditions, actions, loops, and more.

v0.1.7(1mo ago)7241MITPHPPHP ^8.3CI passing

Since Mar 4Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/aftandilmmd/laravel-workflow-automation)[ Packagist](https://packagist.org/packages/aftandilmmd/laravel-workflow-automation)[ RSS](/packages/aftandilmmd-laravel-workflow-automation/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (36)Versions (20)Used By (0)

Laravel Workflow Automation
===========================

[](#laravel-workflow-automation)

**A visual, n8n-style workflow engine that lives inside your Laravel app.**

Build automation flows by dragging nodes onto a canvas — or describe them in plain English and let AI build them for you. No new infrastructure, no external service. Just `composer require` and open `/workflow-editor`.

[![Laravel Compatibility](https://camo.githubusercontent.com/040f6369f21726638d2bda83ded61b81673e8ee002394dc897098ca7849a048d/68747470733a2f2f62616467652e6c61726176656c2e636c6f75642f62616467652f616674616e64696c6d6d642f6c61726176656c2d776f726b666c6f772d6175746f6d6174696f6e)](https://packagist.org/packages/aftandilmmd/laravel-workflow-automation)[![Documentation](https://camo.githubusercontent.com/2b7083c9b386d0ca4d8e86bc4cc53c360fff4b6056d766e9f9d5a8a7c765e0f6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63732d6c61726176656c2d2d776f726b666c6f772e70696c7975732e636f6d2d626c7565)](https://laravel-workflow.pilyus.com)[![License](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)](LICENSE)

English | **[Türkçe](README.tr.md)**

Warning

This package is under active development and is not yet recommended for production use. APIs, database schemas, and features may change.

[![Workflow Editor](docs/screenshots/workflow-editor.png)](docs/screenshots/workflow-editor.png)

---

Why this package
----------------

[](#why-this-package)

Every Laravel app eventually grows a tangle of automation logic — fraud checks, drip emails, approval flows, webhook routers, cron jobs. It starts in a controller, spreads to listeners, leaks into jobs, and ends as a graveyard of `if`s nobody dares to touch.

This package moves that logic out of your code and into a **visual graph stored in your database**:

- **Your controllers stay clean** — automation lives in workflows, not models.
- **Non-developers can ship rules** — product, ops, and support edit flows in the browser.
- **AI agents become first-class** — describe a flow in chat, the agent builds it via the REST API or MCP server.
- **Every run is observable** — per-node input, output, duration, and errors, with replay.

Think n8n — but as a Laravel package you own, extend, and host yourself.

Highlights
----------

[](#highlights)

### Visual editor — `/workflow-editor`

[](#visual-editor--workflow-editor)

A full React + React Flow editor ships with the package. No extra install, no separate service. Drag nodes from the palette, connect ports, configure them through dynamic forms, hit **Run**, and watch the graph light up in real time.

- Drag-and-drop canvas with zoom, pan, multi-select
- Auto-generated config forms from each node's schema (18+ field types: code editors, JSON, key-value, model pickers, sliders, color, conditional `show_when`, …)
- **Pin** node outputs for repeatable testing — skip expensive HTTP/AI calls during development
- Per-run timeline with status, duration, expandable I/O, replay, cancel
- Dark/light themes, folders, tags, search

### AI Builder — describe it, agent builds it

[](#ai-builder--describe-it-agent-builds-it)

Open a workflow → click **AI** → type *"When a user signs up, wait 3 days, check usage, send onboarding or reminder email."* The agent streams its plan and builds the nodes and edges live on the canvas through the package's MCP tools.

Works with OpenAI, Anthropic, Gemini, Groq, Mistral, DeepSeek, Ollama, xAI, and Cohere out of the box.

### 26 built-in nodes

[](#26-built-in-nodes)

CategoryNodes**Triggers**Manual · Model Event · Laravel Event · Schedule · Webhook · Sub-workflow**Actions**Send Mail · HTTP Request · Update Model · Dispatch Job · Send Notification · Run Command · AI**Logic**If · Switch · Loop · Merge · Filter · Aggregate**Flow Control**Delay · Wait/Resume · Sub-workflow · Error Handler**Data**Set Fields · Parse Data · Code (expression-only)### One class = one custom node

[](#one-class--one-custom-node)

```
#[AsWorkflowNode(key: 'notify_crm', name: 'Notify CRM', type: NodeType::Action)]
class NotifyCrmNode extends BaseNode
{
    public function execute(WorkflowNodeRun $nodeRun, array $input): array
    {
        return ['response' => Http::post($this->config('url'), $input)->json()];
    }
}
```

Auto-discovered, instantly available in the visual editor, REST API, and AI builder.

### Safe expression engine

[](#safe-expression-engine)

Custom recursive-descent parser — **no `eval()`, no closures, no arbitrary PHP**. Use `{{ item.email }}`, arithmetic, ternaries, and 30+ helpers (`upper`, `lower`, `now`, `json`, `count`, …) in any config field.

### Human-in-the-loop, retries, observability

[](#human-in-the-loop-retries-observability)

- **Wait/Resume** node pauses a run pending external approval — resume via REST or PHP with arbitrary payload.
- **Replay** any run with the original or modified input. Retry individual failed nodes.
- Every run records per-node status, duration, full input/output JSON, and errors.

### Built for AI agents and external tools

[](#built-for-ai-agents-and-external-tools)

- **REST API** for full CRUD, execution, registry, runs, folders, tags.
- **MCP server** with first-class tools an LLM can call directly.
- **Schema validation** middleware ensures inputs and outputs always match each node's contract.

Installation
------------

[](#installation)

```
composer require aftandilmmd/laravel-workflow-automation
php artisan vendor:publish --tag=workflow-automation-config --tag=workflow-automation-migrations
php artisan migrate
```

Open `http://your-app.test/workflow-editor` and you're done.

Quick taste
-----------

[](#quick-taste)

A complete welcome-email workflow, defined fluently:

```
$workflow = Workflow::create(['name' => 'Welcome Email']);

$workflow
    ->addNode('User Created', 'model_event', ['model' => User::class, 'events' => ['created']])
    ->connect($workflow->addNode('Send Welcome', 'send_mail', [
        'to'      => '{{ item.email }}',
        'subject' => 'Welcome, {{ item.name }}!',
        'body'    => 'Thanks for signing up.',
    ]));

$workflow->activate();
```

…or build the same thing in the editor, in 20 seconds, without writing a line of PHP.

Documentation
-------------

[](#documentation)

Full guides, node references, examples, and recipes:

**[laravel-workflow.pilyus.com](https://laravel-workflow.pilyus.com)**

- [Why use this?](https://laravel-workflow.pilyus.com/getting-started/why-use-this) — the full pitch
- [Visual editor](https://laravel-workflow.pilyus.com/ui-editor) — every panel, field type, and shortcut
- [AI builder](https://laravel-workflow.pilyus.com/ai-builder) — provider setup and MCP tools
- [Custom nodes](https://laravel-workflow.pilyus.com/advanced/custom-nodes) and [Plugins](https://laravel-workflow.pilyus.com/advanced/plugins)
- [Examples](https://laravel-workflow.pilyus.com/examples/user-onboarding) — onboarding, Stripe webhooks, drip campaigns, approvals, scheduled reports

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 10, 11, 12, or 13
- Zero dependencies beyond `illuminate/*`

Testing
-------

[](#testing)

```
composer test
```

License
-------

[](#license)

MIT © [aftandilmmd](https://github.com/aftandilmmd)

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance91

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Recently: every ~10 days

Total

10

Last Release

46d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/630ea45c41a7b5c54294a46920d0036cf0693865c7d3254c445b6cc08670edd0?d=identicon)[aftandilmmd](/maintainers/aftandilmmd)

---

Top Contributors

[![aftandilmmd](https://avatars.githubusercontent.com/u/26919900?v=4)](https://github.com/aftandilmmd "aftandilmmd (112 commits)")

---

Tags

laravelautomationworkflowgraphengineorchestration

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/aftandilmmd-laravel-workflow-automation/health.svg)

```
[![Health](https://phpackages.com/badges/aftandilmmd-laravel-workflow-automation/health.svg)](https://phpackages.com/packages/aftandilmmd-laravel-workflow-automation)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k14.1M119](/packages/laravel-pulse)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9732.3M121](/packages/roots-acorn)[flarum/core

Delightfully simple forum software.

261.4M2.2k](/packages/flarum-core)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45344.0k1](/packages/pressbooks-pressbooks)[rapidez/core

Rapidez Core

1822.4k65](/packages/rapidez-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
