Visual automation builder for Laravel - Create workflows with a drag-and-drop interface
Looking for Testers & Feedback!
This is the first public release of Laravel AutoBuilder. I'm actively looking for testers and feedback from the Laravel community to help improve this package.
- Try it out and share your experience
- Report bugs via GitHub Issues
- Suggest features or improvements
- Share your flows and use cases
Your feedback is invaluable! Let's build something great together.
Laravel AutoBuilder is a visual automation builder inspired by Node-RED, n8n, and Zapier. It allows you to create complex automations using a drag-and-drop interface directly in your Laravel application.
Build workflows that react to events, make decisions, and execute actions - all without writing code.
- Visual Flow Editor - Intuitive drag-and-drop interface built with Vue Flow
- Trigger-based Automation - React to model events, webhooks, schedules, and more
- Conditional Logic - Branch flows based on field values, user roles, or custom conditions
- Rich Action Library - Send notifications, create models, call APIs, transform data
- Logic Gates - AND, OR, AtLeast gates for complex decision making
- Flow Validation - Check for configuration errors before activation
- Execution History - Debug with detailed logs and variable inspection
- Import/Export - Share flows between projects as JSON files
- Sync/Async Execution - Choose immediate or queued execution per flow
| Requirement | Version |
|---|---|
| PHP | 8.2+ |
| Laravel | 10.x, 11.x |
| Node.js | 18+ (for development) |
composer require grazulex/laravel-autobuilderPublish assets and run migrations:
php artisan vendor:publish --tag=autobuilder-assets
php artisan vendor:publish --tag=autobuilder-migrations
php artisan migrateAccess the visual editor at /autobuilder.
Create a flow that sends a notification when a user is created:
- Add a "On Model Created" trigger for the
Usermodel - Connect it to a "Send Notification" action
- Configure the notification with
{{ user.email }}and{{ user.name }} - Activate the flow
That's it! The automation will run whenever a new user is created.
For complete documentation, visit the Wiki:
- OnModelCreated - Fire when an Eloquent model is created
- OnModelUpdated - Fire when a model is updated
- OnModelDeleted - Fire when a model is deleted
- OnWebhook - Receive external webhook calls
- OnSchedule - Run on a cron schedule
- OnLogin / OnLogout - React to authentication events
- FieldEquals - Check if a field matches a value
- FieldContains - Check if a field contains a value
- UserHasRole - Check user roles (Spatie compatible)
- TimeIsBetween - Check if current time is in a range
- SwitchCase - Multi-case comparison
- Throttle - Rate limiting condition
- RandomChance - A/B testing with configurable percentage
- SendNotification - Send Laravel notifications
- CreateModel - Create Eloquent models
- UpdateModel - Update existing models
- DeleteModel - Delete models
- CallWebhook - Make HTTP requests to external APIs
- SetVariable - Store values for use in the flow
- LogMessage - Write to Laravel logs
- TransformData - Collection transformations (pluck, filter, sort, etc.)
- CacheAction - Cache operations (get, put, forget)
- SubFlow - Execute another flow as a subroutine
- Delay - Pause execution
- LoopEach - Iterate over collections
- AndGate - All inputs must be true
- OrGate - At least one input must be true
- AtLeastGate - Flexible: min count, percentage, majority, or all/any
Use Blade-like syntax to reference data in your flows:
{{ user.name }} - Access nested values
{{ amount | upper }} - Apply filters
{{ items | count }} - Get collection count
Available filters: upper, lower, ucfirst, json, date, datetime, count
Publish the configuration file:
php artisan vendor:publish --tag=autobuilder-configKey options in config/autobuilder.php:
return [
'routes' => [
'prefix' => 'autobuilder',
'middleware' => ['web', 'auth'],
],
'bricks' => [
'paths' => [app_path('AutoBuilder/Bricks')],
'namespace' => 'App\\AutoBuilder\\Bricks',
],
];Create your own triggers, conditions, and actions:
namespace App\AutoBuilder\Bricks;
use Grazulex\AutoBuilder\Bricks\Action;
use Grazulex\AutoBuilder\Flow\FlowContext;
class SendSlackMessage extends Action
{
public function name(): string
{
return 'Send Slack Message';
}
public function fields(): array
{
return [
Text::make('channel')->label('Channel')->required(),
Textarea::make('message')->label('Message')->supportsVariables(),
];
}
public function handle(FlowContext $context): FlowContext
{
// Your logic here
return $context;
}
}- Webhook endpoints validate signatures via
X-Webhook-Secretheader - Custom code execution can be disabled in config
- Authorization gate:
access-autobuilder
composer testPlease see CHANGELOG for more information on what has changed recently.
The MIT License (MIT). Please see License File for more information.
Created by Jean-Marc Strauven (@Grazulex)
Creator of 17+ Laravel packages with 6,000+ downloads, including:
- laravel-devtoolbox - Swiss-army CLI for Laravel
- laravel-apiroute - API versioning lifecycle management
- laravel-arc - Eloquent attribute casting
Need help with your Laravel project? I offer consulting services:
- Custom package development
- Code audits and optimization
- Architecture consulting
Contact: GitHub
Thanks to these wonderful people for their contributions:
- @matt7ds - Bug reports and testing