Maestro and ECA Integration

When Maestro first hit the Drupal scene, it was 2011, Drupal 7 was the main release and the Rules module was the primary mechanism you'd use to react to events happening in your Drupal system. Maestro integrated easily with Rules to allow site builders to fire off Maestro workflows when events happened in Drupal.  Fast forward to 2025, and the ECA module is rapidly gaining traction.  Just like with Rules, Maestro can integrate with ECA.

 

What's the Difference?

Eca

ECA is the "Events-Conditions-Actions" module and as noted on the project page, "The core module is a processor that validates and executes event-condition-action plugins".  The key concept is that ECA can be configured to carry out specific actions when Drupal events happen and certain conditions are met.  You can write just about any type of plugin for ECA to execute when a specific event occurs, thus automating many common Drupal workflow scenarios.  ECA's guide has a bunch of good examples of where ECA excels.

 

Maestro

Maestro, built from the ground up, is a business process workflow engine and does not need a Drupal event to happen in order for a Maestro Template to launch.  Nor does a Maestro Template have to execute all at once. Maestro is Drupal content and event agnostic -- meaning that Maestro doesn't need to only automate Drupal content or system workflows. As our saying goes, "If you can flowchart it, you can automate it with Maestro".  Maestro is not bound to route a single entity, but rather you can route any number of entities in the same workflow.

Maestro has the notion of assignments whereby people and/or people within roles are assigned tasks to perform. Maestro has a task console that shows people what they've been assigned and provides the configurable capability of sending out assignments, reminders and escalations.  

Complex logic, looping, loop-back-to-initiator, all possible with the drag and drop template editing.  A fully extensible task plugin architecture means that if you're missing a type of task that does something very specific for your business process, you can write it and plug it directly into Maestro. 

Need statistics on how long processes are taking?  Maestro stores all of that information for which you can create views and reports. 

The complex business processes that have been automated with Maestro are quite impressive. Maestro-automated processes can have hundreds of steps in their workflow template which translates to thousands of tasks waiting to be executed by a human or the Maestro Engine.  Our largest customer, at any given time, can have hundreds of open Maestro workflow processes with hundreds of open tasks managing their entire engineering design process -- A process that has nothing to do with Drupal (Drupal is just the application base)!

 

Integration Between Maestro and ECA

(Maestro V4 and above includes the ECA integration)

Generally speaking, when we here at Nextide are automating a business process and we need to perform some sort of Drupal-based action (like publish a node or block a user), we'd use our batch function task, write a few lines of code, and the action would be done. 

When we need to spawn a Maestro workflow template when someone adds a piece of content, we have really simple administrative interfaces we've written that we use to spawn a flow.

However, not everyone is a developer.  This is why we've provided integration with ECA.  From the Maestro perspective, we have a new Maestro ECA Task for which you can fire an ECA content-aware Event, provide a unique Event ID and include the entity you wish to use ECA on.

From the ECA perspective, we provide you with an ECA plugin that lets you spawn a Maestro workflow and inject the entity into the Maestro process.

 

When you add an ECA task to your Maestro workflow template, you can configure it to suit your current workflow.

Editing the Maestro ECA Task

Shown above is how you easily configure Maestro to trigger an ECA Event and send an entity that Maestro is managing directly to ECA.  For non-coders, this is very powerful as you can then create an ECA model, without coding, to do things like publish, unpublish, delete and so on.

On the ECA side to intercept the Maestro initiated ECA Event, you'd configure your start event with the ECA Custom Event (entity-aware) plugin, setting the Event ID to the identical Event ID you created in the Maestro ECA Task.

ECA Start Event Config for Maestro

As shown above, this ECA start event will listen for the Custom ECA Event with an Event ID of "maestro_example".  You can then attach any type of entity tasks after the start event as you see fit.

If you wish to spawn a Maestro Workflow Template when, say, a piece of content was created, you can do that with the Maestro: Spawn New Process plugin for ECA.

Spawn a Maestro process in ECA

As shown above, you can choose which Maestro template you wish to spawn, a token you can store the spawned Maestro Process ID in and the Maestro Entity Identifier you wish to create to store the ECA entity reference in.  With this functionality, you can use ECA to detect a piece of content was created and launch a Maestro workflow to manage it -- all with no coding required.

We have everything documented on our Maestro documentation page.

 

Need Help?

Do you have a Workflow initiative we can help with?