Skip to content

Workflow: state transition

Plugin ID: workflow:transition

Available since: 1.0.0

Provided tokens

Token Description
[user] The current user.
Alias: current_user
[htmx] Information about the current HTMX request.
[htmx:is_request] Whether the current request was sent by HTMX ("1" or "0").
[htmx:boosted] Whether the current request was boosted by HTMX ("1" or "0").
[htmx:history_restore] Whether the current request is for HTMX history restoration ("1" or "0").
[htmx:target] The identifier of the element the response is targeted at.
[htmx:trigger] The identifier of the element that triggered the request. On Drupal 11 this is the element id, on Drupal 12 and later it is the CSS selector that htmx 4 sends. Prefer "trigger_name", which means the same thing on both.
[htmx:trigger_name] The name attribute of the element that triggered the request, or empty if it has none. This has the same meaning on all supported Drupal versions.
[htmx:source] The CSS selector of the element that triggered the request, for example button[name="first_item"]. Empty on Drupal 11, which does not send this information.
[htmx:request_type] Whether the request targets a full page or a fragment: "full" or "partial". Empty on Drupal 11, which does not send this information.
[htmx:current_url] The URL of the page the request was sent from.
[from_state] The source workflow state of the entity.
[to_state] The destination workflow state of the entity.
[event] The event.
[event:machine_name] The machine name of the ECA event.
[session_user] The user account that dispatched the event, regardless if ECA is processing models under a different account. This is only available if ECA is configured to always run under a specific account.
[entity] The entity of the event.
[ENTITY_TYPE] The entity of the event under the name of its entity type.

Drupal core bug prevents transition recognition under certain circumstances

For more details, there is a workaround available which is described in the Troubleshooting Section

Fields

Type (and bundle) — config key: type

Type: select · Required: no · Default: _all

Allowed values depend on the configuration of the target site.

Select the entity type and bundle to restrict this event to, or choose 'All' to react to transitions on any moderated entity.

From state — config key: from_state

Optionally restrict to the machine name of the previous state.

Type: textfield · Required: no · Default: empty string

The machine name of the previous state (e.g., draft). Leave empty to match any source state. May be empty for newly created entities.

To state — config key: to_state

Optionally restrict to the machine name of the new state.

Type: textfield · Required: no · Default: empty string

The machine name of the new state (e.g., published). Leave empty to match any destination state.