Dragwyb AI Agent Workflows
A visual, drag-and-drop workflow automation and AI Agent orchestrator for WordPress. Connect webhooks, automate tasks, and integrate LLMs (OpenAI, Claude, Gemini).
by Dragwyb · github.com/dragwyb/dragwyb-ai-agent-workflows · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/dragwyb/dragwyb-ai-agent-workflows/archive/refs/heads/main.zipReadme
Workflow Automate
A from-scratch WordPress workflow automation plugin. See CURSOR_INSTRUCTIONS.md for the governing process, docs/internal/bitpi-analysis.md for the competitive analysis that informed this design, and docs/internal/architecture.md for the architecture this codebase follows.
Requirements
- PHP 7.4+
- WordPress 5.8+
- Optional: Composer for dependency management and code-quality tooling.
Local setup
- Place (or symlink) this directory into
wp-content/plugins/. - If you have Composer available:
composer installThis generates
vendor/autoload.php, which the plugin will use automatically in preference to its built-in fallback autoloader. - If Composer is not available in your environment, no action is needed — the plugin ships a small dependency-free PSR-4 autoloader (
src/autoload.php) that is used automatically whenvendor/autoload.phpis missing. This keeps the plugin fully functional in environments without a Composer/PHP CLI onPATH(e.g. some local Windows setups), while still preferring the standard Composer-generated autoloader when one exists. - Build the workflow builder's front-end app:
npm install npm run buildThis compiles
assets/builder/src/intoassets/builder/build/(not committed to version control). The "Workflow Editor" admin screen shows an admin notice instead of a blank page if this step is skipped. - Activate Workflow Automate from the WordPress admin Plugins screen.
Coding standards & linting
- PHP: WordPress Coding Standards via PHPCS, configured in
phpcs.xml.dist.composer install composer phpcs # report violations composer phpcbf # auto-fix what can be fixed - JavaScript:
@wordpress/eslint-plugin, configured in.eslintrc.npm install npm run lint:js npm run lint:js:fix@wordpress/scriptsis intentionally pinned to^27.xrather than latest — see the comment inwebpack.config.jsfor why (v28+ requires WordPress 6.6'sreact-jsx-runtimescript, but this plugin supports WordPress 5.8+).
Project structure
dragwyb-ai-agent-workflows.php Plugin bootstrap (header, version gate, autoload, activation hooks)
uninstall.php WordPress-invoked cleanup entry point
src/
autoload.php Fallback PSR-4 autoloader (see "Local setup" above)
Core/ Bootstrap: Plugin, Container, Requirements, Activator, Deactivator, Uninstaller, Options, Encryption, Capabilities
Database/ Migration base class/runner, table-name helper, migrations (dbDelta-based schema)
Domain/ Plain, persistence-agnostic entities (Workflow, WorkflowNode, WorkflowRun, WorkflowRunLog, Connection, Webhook)
Domain/Contracts/ Public extension interfaces (TriggerInterface, ActionInterface)
Persistence/ Repositories wrapping $wpdb access (one per aggregate root)
Service/ Application services orchestrating domain + persistence (WorkflowService, NodeTypeRegistry, NodeExecutionService, WorkflowExecutionService, BackgroundRunner, SettingsService, RunRetentionService, ConnectionAuthTypes, ConnectionService, WebhookService)
Integration/ Built-in trigger/action node types (Triggers/, Actions/: WpHookTrigger, HttpRequestAction, SendEmailAction, WooCommerceOrderCompletedTrigger when WooCommerce is active), registered via daiaw/nodes/register (BuiltInNodeTypes); WorkflowTriggerBinder binds active workflows' triggers to WorkflowExecutionService::queue()/run() (per SettingsService::backgroundExecutionEnabled()) on init
Rest/ WP_REST_Controller subclass (WorkflowsController) plus plain route classes (NodeTypesController, ConnectionsController, public WebhookIngressController) + rest_api_init bootstrap (daiaw/v1 namespace)
Admin/ Admin menu bootstrap, AdminPage contract, EmptyState helper, screens, list tables, admin-post handlers (WorkflowActionsController, RunActionsController, SettingsController, ConnectionActionsController, WebhookActionsController), status badge/duration/timestamp display helpers (RunStatusBadge, RunDuration, RunTimestamp, ConnectionStatusBadge)
Admin/Pages/ WorkflowsPage (list), BuilderPage (visual editor shell), RunsPage (execution history list), RunDetailPage (single run + node log), SettingsPage (General/Retention/Advanced tabs), ConnectionsPage (list), ConnectionFormPage (create/edit), WebhooksPage (list), WebhookFormPage (create/edit)
assets/
admin/css/ Admin screen CSS, enqueued only on the plugin's own screens
builder/src/ React builder app source (built with @wordpress/scripts; see "Local setup")
builder/build/ Compiled builder app (generated by `npm run build`, not committed)
webpack.config.js Points @wordpress/scripts at assets/builder/src -> assets/builder/build
docs/
hooks-reference.md Public extensibility reference (actions, PHP contracts, capabilities) — authoritative list of shipped extension points
rest-api.md REST API endpoint reference (daiaw/v1)
integrations.md Every shipped integration: what it is, and how (or whether) it stores/uses credentials
internal/ Development-only docs (analysis, architecture, roadmap) — excluded from release builds
Development process
This project follows a strict, incremental, feature-by-feature workflow with a mandatory self/security/performance/standards review after every increment. See CURSOR_INSTRUCTIONS.md Sections 9–11 and docs/internal/roadmap.md for the current status of each increment.
Release packaging
/docs/internal/must be excluded from any distributable ZIP built for release; it is development-only documentation.npm run buildmust be run before packaging a release ZIP:assets/builder/build/is not committed to version control, and the plugin has no build step at install time (WordPress sites just get the shipped files as-is).