# Varbase ECA (Visual Workflow Builder)

Varbase has adopted ECA (Event - Condition - Action) as its core visual workflow builder automation framework, replacing hard-coded event subscribers and custom hooks with configurable, maintainable ECA models. This transition improves modularity, simplifies maintenance, and enables future AI integrations while providing a no-code solution for orchestrating automated workflows throughout your Drupal site.

ECA models in Varbase are pre-configured workflow automatons that respond to specific events on your site, evaluate conditions, and execute actions—all without requiring custom code.

## What is ECA?

[**ECA**](https://www.drupal.org/project/eca) (Event - Condition - Action) is a powerful rules engine for Drupal that enables automated workflows through three core components:

* **Event**: Something that happens on your site (user login, content creation, form submission, etc.)
* **Condition**: Optional checks that determine whether actions should execute
* **Action**: Tasks performed when events occur and conditions are met (send emails, display messages, modify data, etc.)

ECA leverages existing Drupal core components and extends them through a flexible plugin system, making workflows visual, maintainable, and accessible to non-developers through the integrated BPMN.iO modeler.

<figure><img src="/files/UFKzgqQyvcEQrcGz3nd3" alt=""><figcaption></figcaption></figure>

## Why Varbase Uses ECA

The adoption of ECA in Varbase provides several key advantages:

* **Maintainability**: Replace hard-coded event subscribers with configurable models
* **Modularity**: Workflows are stored as configuration that can be imported, exported, and version controlled.
* **No-Code Solution**: Site builders can create and modify workflows without writing custom code.
* **Visual Editing**: BPMN.iO modeler provides intuitive diagram-based workflow design.
* **AI Integration Ready**: Foundation for future AI-powered automation features.
* **Performance**: Intelligent event subscription with negligible overhead.
* **Extensibility**: Plugin-based architecture allows easy integration with custom and contributed modules.

## Getting Started with ECA Models

#### Viewing ECA Models

Navigate to **Administration > Configuration > Workflow > ECA** to view all available ECA models on your site.

Each model appears with its name, description, status (enabled/disabled), and modeler type.

## Pre-Configured ECA Models in Varbase

{% content-ref url="/pages/Jcfgcp1Cc5y1MQUiPEqi" %}
[User Login Notification](/10.1.x/developers/varbase-eca-visual-workflow-builder/user-login-notification.md)
{% endcontent-ref %}

{% content-ref url="/pages/fVxUP2eKVr7nF7lqlhVh" %}
[User Recertification](/10.1.x/developers/varbase-eca-visual-workflow-builder/user-recertification.md)
{% endcontent-ref %}

{% content-ref url="/pages/3FShsnJJJJCa4KquSQNA" %}
[Admin Change Role Notification](/10.1.x/developers/varbase-eca-visual-workflow-builder/admin-change-role-notification.md)
{% endcontent-ref %}

{% content-ref url="/pages/89Q83PBMNrXeBt64tjlp" %}
[Redirect 403 to Login](/10.1.x/developers/varbase-eca-visual-workflow-builder/redirect-403-to-login.md)
{% endcontent-ref %}

{% content-ref url="/pages/7TtR9JAZBuPTi3yzF6C2" %}
[Draft Reminder](/10.1.x/developers/varbase-eca-visual-workflow-builder/draft-reminder.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.varbase.vardot.com/10.1.x/developers/varbase-eca-visual-workflow-builder.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
