Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Workflows, triggers and events

Hook business processes into Exponential operations - workflows, event types, triggers before and after operations, the available operations in workflow.ini, processes that wait for cron, and when to use a workflow or a…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/creators/app-creators/workflows-and-events.md

On this page

Workflows, triggers and events

This page is for application creators who run their own logic when something happens: before content is published, after a user registers, at checkout. Exponential offers two mechanisms: workflows (configured by administrators, built from event types) and kernel event listeners (code). The administrator's guide is Workflows.

Setup, Workflows: the workflow groups of the installation
Setup, Workflows: the workflow groups of the installation
Setup, Triggers: which workflow runs before or after each operation
Setup, Triggers: which workflow runs before or after each operation
Setup, Workflow processes: the workflow runs that wait, for example for an approval
Setup, Workflow processes: the workflow runs that wait, for example for an approval

Contents

  1. The pieces
  2. Operations you can hook
  3. How a process runs
  4. Workflow or event listener?
  5. Setting it up for an application

The pieces

TermWhat
Workflowa named list of events, in a workflow group (Setup > Workflows)
Event typea class that does one step: approve, wait until date, multiplexer, payment gateway, simple shipping, finish user register, and those of extensions
Triggerconnects a workflow to an operation, before or after it (Setup > Triggers)
Processone run of a workflow for one object and version, kept while it waits

Operations you can hook

settings/workflow.ini [OperationSettings] AvailableOperationList[] lists the operations that offer triggers. Shipped active: content_publish, before_shop_confirmorder, shop_checkout, shop_addtobasket, shop_updatebasket. More are listed commented out (content_move, content_hide, content_delete, content_updatesection, content_read, content_updateobjectstate, user_activation, user_password ...); enable one in an override to use it.

How a process runs

  1. The operation reaches its trigger and starts the workflow.
  2. Each event's execute() returns a status: accepted (go on), rejected (stop the operation), deferred to cron (wait), fetch template (show a page), redirect, cancelled.
  3. A deferred process is run again by the workflow.php cronjob (part frequent); without it, waiting content never publishes.
  4. When the last event accepts, the held-back operation finishes.

Waiting processes are listed in Setup > Workflow processes (/workflow/processlist).

Workflow or event listener?

Use a workflow whenUse a kernel event listener when
administrators should switch it on and off, or order stepsthe behavior is always part of your application
the step may wait (approval, payment, a date)it must run synchronously and never wait
it is tied to one of the trigger operationsthe event has no trigger (a site.ini [Event] Listeners[] event)

Kernel events and filter events are listed in Extension points; filter listeners must return the value they receive. See also the event hook pattern.

Setting it up for an application

  1. Write the event type (Writing a workflow event type).
  2. Ship a setup step or instructions: create the workflow, add the event, connect the trigger.
  3. Make sure the frequent cron part runs if any event defers to cron.
  4. Test publish with and without the workflow; test cancel in Setup > Workflow processes.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x