Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

This module allows FlowDrop playground sessions to be initialized with Drupal entity data, such as nodes or terms. You can also optionally load specific entity revisions and launch the playground with entity context through URL parameters.

FlowDrop Node Session provides entity context support for FlowDrop playground sessions, allowing workflows to be initialised with a Drupal entity (node, term, etc.) as context.

This module was born during the Drupal AI Hackathon - Play to Impact 2026, organized by the European Commission.

Key Features

  • Entity-Context Sessions: Create playground sessions pre-loaded with entity data
  • Revision Support: Optionally load specific entity revisions
  • URL-based Playground: Launch playground with entity context via URL parameters

Installation

drush en flowdrop_node_session -y
drush cr

Usage

1. Add EntityContext Node to Workflow

In the FlowDrop editor, add an EntityContext node. It outputs:

  • entity: Full serialized entity (fields, metadata)
  • entity_type, entity_id, bundle, revision_id
  • is_default_revision: Boolean

2. Launch Playground with Entity Context

Visit the URL with query parameters:

/admin/flowdrop/workflows/{workflow_id}/playground/entity?entity_type=node&entity_id=1

Optional parameters: bundle, revision_id, session_name

3. API Endpoint

POST /api/flowdrop-node-session/workflows/{workflow_id}/sessions
Content-Type: application/json

{
  "entity_type": "node",
  "entity_id": "1",
  "revision_id": "5",  // optional
  "bundle": "article", // optional
  "name": "Session Name" // optional
}

Creating URLs Programmatically

Route: flowdrop_node_session.playground.entity

use Drupal\Core\Url;

// Basic URL
$url = Url::fromRoute('flowdrop_node_session.playground.entity', [
  'workflow_id' => 'my_workflow',
], [
  'query' => [
    'entity_type' => 'node',
    'entity_id' => '123',
  ],
]);

// With revision
$url = Url::fromRoute('flowdrop_node_session.playground.entity', [
  'workflow_id' => 'my_workflow',
], [
  'query' => [
    'entity_type' => 'node',
    'entity_id' => '123',
    'revision_id' => '456',
    'bundle' => 'article',
    'session_name' => 'My Session',
  ],
]);

// Get URL string
$urlString = $url->toString();

// In Twig
{{ url('flowdrop_node_session.playground.entity', {
  'workflow_id': 'my_workflow'
}, {
  'query': {
    'entity_type': 'node',
    'entity_id': node.id
  }
}) }}

Route Parameters

Parameter Type Description workflow_id route Workflow machine name entity_type query Entity type ID (required) entity_id query Entity ID (required) revision_id query Revision ID (optional) bundle query Bundle for validation (optional) session_name query Custom session name (optional)

Services

// Get the service
$nodeSessionService = \Drupal::service('flowdrop_node_session.service');

// Create session with entity context
$session = $nodeSessionService->createSessionWithEntityContext(
  $workflow,
  'node',
  '123',
  'article',  // bundle (optional)
  '456'       // revision_id (optional)
);

// Check if session has entity context
$hasContext = $nodeSessionService->hasEntityContext($session);

// Get entity context from session
$context = $nodeSessionService->getEntityContext($session);

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
3
Tracked since
Feb 2026
Latest release
6 months ago
Releases (12 mo)
3 ▲ from 0
Maintenance
Slowing

Release Timeline

Releases

Version Type Core Release date
1.0.0-alpha2 Pre-release 11 Feb 13, 2026
1.0.0-alpha1 Pre-release 11 Feb 9, 2026
1.x-dev Dev 11 Feb 7, 2026