Skip to content

Pipeline Nodes

WP-Nexus pipelines are built from 51 nodes organized into 9 categories. Each node performs a single, well-defined operation on data as it flows through the pipeline. Nodes are connected by edges in a directed acyclic graph (DAG) and executed in topological order.

How Pipelines Work

  1. Source nodes produce data -- they query databases, fetch APIs, or provide static values.
  2. Logic nodes control flow -- branching, validation, authentication, and rate limiting.
  3. Transform nodes reshape data -- filtering, sorting, mapping, grouping, and aggregation.
  4. String/Format nodes format text -- templates, JSON parsing, and date formatting.
  5. Integration nodes communicate externally -- HTTP requests, email, and events.
  6. Data Write nodes persist changes -- inserting, updating, and deleting rows.
  7. Action nodes compose pipelines -- running saved actions and iterating.
  8. Utility nodes help with debugging during development.
  9. Output nodes mark the terminal result of a pipeline.

Categories

Data Sources

Nodes that produce data for the pipeline. Every pipeline starts with at least one source.

NodeDescription
Table QueryQuery rows from a WP-Nexus custom database table
Post QueryQuery WordPress posts, pages, or custom post types
Term QueryQuery taxonomy terms (categories, tags, custom)
REST APIFetch data from any REST API endpoint
Static DataProvide a hardcoded JSON array
Parent DataAccess the parent component's data context
Current UserGet the logged-in WordPress user's profile
Related ItemsFetch related rows via foreign key relationship
Get Store ItemsRetrieve items from a user data store
Get ContextRetrieve the current pipeline context data
POST DataAccess raw POST request data

Logic

Nodes that control pipeline execution flow.

NodeDescription
If/ElseBranch rows based on a condition expression
SwitchMulti-way branch based on a field's value
Require AuthGate pipeline execution behind authentication
ValidateValidate input fields against rules
SanitizeClean and sanitize input field values
Rate LimitThrottle pipeline execution per IP, user, or globally
Is In Store?Check if an item exists in a user data store

Transforms

Nodes that reshape, filter, and aggregate data.

NodeDescription
FilterKeep rows matching a condition
MappingTransform each row with an expression
SortSort rows by a field
LimitTake a slice of rows (offset + count)
CombineMerge up to 5 inputs into a single object
Group ByGroup rows by a field value
UniqueDeduplicate rows by a field
FlattenFlatten nested arrays into a single list
Pick FieldsKeep only specified fields from each row
Set FieldAdd or overwrite a field using an expression
MathAggregate a numeric field (sum, avg, min, max, count)
LookupEnrich rows by joining data from another table
Distance FilterFilter rows by geographic distance (Haversine)
For EachRun a saved action for each row

String/Format

Nodes that format and parse text data.

NodeDescription
TemplateRender a template string with expressions
JSON ParseParse a JSON string field into an object
JSON StringifyConvert the entire input to a JSON string
Date FormatFormat a date field using PHP date format

Integration

Nodes that communicate with external systems.

NodeDescription
HTTP RequestMake HTTP requests with full method/auth support
Send EmailSend email via wp_mail
Emit EventEmit a named event to the parent component

Data Write

Nodes that persist data changes to the database.

NodeDescription
Save RowInsert new rows into a table
Update RowUpdate existing rows by ID
Delete RowDelete rows by ID
Update User ProfileUpdate the current user's profile and meta
Add to StoreAdd an item to a user data store
Remove from StoreRemove an item from a user data store

Actions

Nodes that compose and invoke saved pipelines.

NodeDescription
Run ActionExecute a saved action pipeline

Utility

Development and debugging helpers.

NodeDescription
DebugLog data to the PHP error log

Output

Terminal nodes that mark the pipeline result.

NodeDescription
Set ContextSet the component's data context (form values, row data)
ResultPass-through terminal for data source pipelines
OutputGeneric pass-through terminal node

Pipeline Limits

  • Maximum 50 nodes per pipeline
  • Maximum 1,000 rows per query result
  • Write nodes (Save, Update, Delete, Store, Email, HTTP) are never cached
  • Read-only nodes with identical config and input are deduplicated within a request

Expression Resolution in Config

All node config values that contain { { }} expressions are resolved before the node executes. The input variable refers to the data flowing into the node from its connected upstream node.

tableId: "`{ {input.table_id}}`"
whereValue: "`{ {input.user_id}}`"

See the Expression Language reference for the full syntax.