Appearance
Run Action
The Run Action node executes a saved action pipeline. It is the primary mechanism for composing and reusing pipelines -- you can build a pipeline once as a named action, then invoke it from other pipelines.
Configuration
| Property | Type | Default | Description |
|---|---|---|---|
actionId | number | -- | Required. The ID of the saved action to execute. |
Input
Accepts any data type. The input is passed as the parent context to the sub-pipeline.
Output
Returns whatever the sub-pipeline's output node produces.
How It Works
- Loads the saved action definition by
actionIdfrom the database. - Creates a new
PipelineExecutorinstance. - Sets the input data as the parent context for the sub-pipeline.
- Executes the sub-pipeline (nodes, edges, and output node).
- Returns the sub-pipeline's result.
The sub-pipeline has full access to the input data via the Context or Parent Data nodes.
Example Use Cases
Reusable validation + save logic
Create an action called "Save Contact" that handles validation, sanitization, and saving. Then call it from multiple forms:
Context --> Run Action (actionId: "save_contact") --> OutputMulti-step workflow
Chain actions together:
Context --> Run Action (actionId: "validate_order") --> Run Action (actionId: "process_payment") --> Run Action (actionId: "send_confirmation") --> OutputShared data transformation
Create a "Normalize API Data" action and reuse it across multiple data source pipelines:
REST API --> Run Action (actionId: "normalize_api_data") --> ResultTIP
Run Action enables DRY (Don't Repeat Yourself) pipeline design. When you find yourself building the same node sequence in multiple pipelines, extract it into a saved action and use Run Action to invoke it.
WARNING
Avoid deep nesting of Run Action calls (action A calls action B which calls action C). Each level creates a new pipeline executor, and deeply nested pipelines can be hard to debug.