Workflow Plugins Documentation
This document describes all available workflow plugins for building declarative n8n-style workflows.
Categories
- Core Plugins - AI and context management
- Tool Plugins - File system and SDLC operations
- Logic Plugins - Boolean logic and comparisons
- List Plugins - Collection operations
- Dictionary Plugins - Object/map operations
- String Plugins - Text manipulation
- Math Plugins - Arithmetic operations
- Conversion Plugins - Type conversions
- Control Flow Plugins - Branching and switching
- Variable Plugins - State management
- Backend Plugins - System initialization
- Utility Plugins - General utilities
Core Plugins
core.load_context
Load SDLC context (roadmap, issues, PRs) from GitHub.
Outputs:
context- String containing SDLC context
core.seed_messages
Initialize empty message array for AI conversation.
Outputs:
messages- Empty array
core.append_context_message
Add context to messages array.
Inputs:
messages- Message arraycontext- Context text
Outputs:
messages- Updated array
core.append_user_instruction
Add user instruction to messages.
Inputs:
messages- Message array
Outputs:
messages- Updated array
core.ai_request
Make AI request with messages.
Inputs:
messages- Message array
Outputs:
response- AI response messagehas_tool_calls- Booleantool_calls_count- Number
core.run_tool_calls
Execute tool calls from AI response.
Inputs:
response- AI response message
Outputs:
tool_results- Array of results
core.append_tool_results
Add tool results to messages.
Inputs:
messages- Message arraytool_results- Tool results array
Outputs:
messages- Updated array
Tool Plugins
tools.list_files
List files in directory.
Inputs:
path- Directory path
Outputs:
files- Array of file paths
tools.read_file
Read file contents.
Inputs:
path- File path
Outputs:
content- File content
tools.run_tests
Execute test suite.
Outputs:
success- Booleanoutput- Test output
tools.run_lint
Run linter.
Outputs:
success- Booleanoutput- Lint output
tools.create_branch
Create Git branch.
Inputs:
branch_name- Branch name
Outputs:
success- Boolean
tools.create_pull_request
Create GitHub pull request.
Inputs:
title- PR titlebody- PR description
Outputs:
pr_number- PR number
Logic Plugins
logic.and
Logical AND operation.
Inputs:
values- Array of boolean values
Outputs:
result- Boolean (all values are true)
logic.or
Logical OR operation.
Inputs:
values- Array of boolean values
Outputs:
result- Boolean (any value is true)
logic.xor
Logical XOR operation.
Inputs:
a- First booleanb- Second boolean
Outputs:
result- Boolean (exactly one is true)
logic.equals
Equality comparison.
Inputs:
a- First valueb- Second value
Outputs:
result- Boolean (a == b)
logic.gt
Greater than comparison.
Inputs:
a- First valueb- Second value
Outputs:
result- Boolean (a > b)
logic.lt
Less than comparison.
Inputs:
a- First valueb- Second value
Outputs:
result- Boolean (a < b)
logic.gte
Greater than or equal comparison.
Inputs:
a- First valueb- Second value
Outputs:
result- Boolean (a >= b)
logic.lte
Less than or equal comparison.
Inputs:
a- First valueb- Second value
Outputs:
result- Boolean (a <= b)
logic.in
Membership test.
Inputs:
value- Value to findcollection- Array or string
Outputs:
result- Boolean (value in collection)
List Plugins
list.find
Find first item matching condition.
Inputs:
items- Array of objectskey- Property namevalue- Value to match
Outputs:
result- Found item or nullfound- Boolean
list.some
Check if any item matches.
Inputs:
items- Arraykey- Optional property namevalue- Optional value to match
Outputs:
result- Boolean
list.every
Check if all items match.
Inputs:
items- Arraykey- Optional property namevalue- Optional value to match
Outputs:
result- Boolean
list.concat
Concatenate multiple lists.
Inputs:
lists- Array of arrays
Outputs:
result- Concatenated array
list.slice
Extract slice from list.
Inputs:
items- Arraystart- Start index (default: 0)end- End index (optional)
Outputs:
result- Sliced array
list.sort
Sort list.
Inputs:
items- Arraykey- Optional sort keyreverse- Boolean (default: false)
Outputs:
result- Sorted array
list.length
Get list length.
Inputs:
items- Array
Outputs:
result- Number (length)
Dictionary Plugins
dict.get
Get value from dictionary.
Inputs:
object- Dictionarykey- Key namedefault- Default value (optional)
Outputs:
result- Valuefound- Boolean
dict.set
Set value in dictionary.
Inputs:
object- Dictionarykey- Key namevalue- Value to set
Outputs:
result- Updated dictionary
dict.merge
Merge multiple dictionaries.
Inputs:
objects- Array of dictionaries
Outputs:
result- Merged dictionary
dict.keys
Get dictionary keys.
Inputs:
object- Dictionary
Outputs:
result- Array of keys
dict.values
Get dictionary values.
Inputs:
object- Dictionary
Outputs:
result- Array of values
dict.items
Get dictionary items as [key, value] pairs.
Inputs:
object- Dictionary
Outputs:
result- Array of [key, value] arrays
String Plugins
string.concat
Concatenate strings.
Inputs:
strings- Array of stringsseparator- Separator string (default: "")
Outputs:
result- Concatenated string
string.split
Split string.
Inputs:
text- Input stringseparator- Split separator (default: " ")max_splits- Max splits (optional)
Outputs:
result- Array of strings
string.replace
Replace occurrences in string.
Inputs:
text- Input stringold- String to replacenew- Replacement stringcount- Max replacements (default: -1 for all)
Outputs:
result- Modified string
string.trim
Trim whitespace.
Inputs:
text- Input stringmode- "both", "start", or "end" (default: "both")
Outputs:
result- Trimmed string
string.upper
Convert to uppercase.
Inputs:
text- Input string
Outputs:
result- Uppercase string
string.lower
Convert to lowercase.
Inputs:
text- Input string
Outputs:
result- Lowercase string
string.format
Format string with variables.
Inputs:
template- Template string with {placeholders}variables- Dictionary of variables
Outputs:
result- Formatted string
string.length
Get string length.
Inputs:
text- Input string
Outputs:
result- Number (length)
Math Plugins
math.add
Add numbers.
Inputs:
numbers- Array of numbers
Outputs:
result- Sum
math.subtract
Subtract numbers.
Inputs:
a- Minuendb- Subtrahend
Outputs:
result- Difference (a - b)
math.multiply
Multiply numbers.
Inputs:
numbers- Array of numbers
Outputs:
result- Product
math.divide
Divide numbers.
Inputs:
a- Dividendb- Divisor
Outputs:
result- Quotient (a / b)
math.modulo
Modulo operation.
Inputs:
a- Dividendb- Divisor
Outputs:
result- Remainder (a % b)
math.power
Power operation.
Inputs:
a- Baseb- Exponent
Outputs:
result- a^b
math.min
Find minimum value.
Inputs:
numbers- Array of numbers
Outputs:
result- Minimum value
math.max
Find maximum value.
Inputs:
numbers- Array of numbers
Outputs:
result- Maximum value
math.abs
Absolute value.
Inputs:
value- Number
Outputs:
result- |value|
math.round
Round number.
Inputs:
value- Numberprecision- Decimal places (default: 0)
Outputs:
result- Rounded number
Conversion Plugins
convert.to_string
Convert to string.
Inputs:
value- Any value
Outputs:
result- String
convert.to_number
Convert to number.
Inputs:
value- String or numberdefault- Default value (default: 0)
Outputs:
result- Number
convert.to_boolean
Convert to boolean.
Inputs:
value- Any value
Outputs:
result- Boolean
convert.to_list
Convert to list.
Inputs:
value- Any value
Outputs:
result- Array
convert.to_dict
Convert to dictionary.
Inputs:
value- List of [key, value] pairs or dict
Outputs:
result- Dictionary
convert.parse_json
Parse JSON string.
Inputs:
text- JSON string
Outputs:
result- Parsed object
convert.to_json
Convert to JSON string.
Inputs:
value- Any valueindent- Indentation (optional)
Outputs:
result- JSON string
Control Flow Plugins
control.switch
Switch/case statement.
Inputs:
value- Value to matchcases- Dictionary of case valuesdefault- Default value (optional)
Outputs:
result- Matched case valuematched- Boolean
utils.branch_condition
Branch based on condition.
Inputs:
condition- Boolean
Outputs:
- Routes to output 0 (true) or 1 (false)
Variable Plugins
var.get
Get variable from workflow store.
Inputs:
key- Variable namedefault- Default value (optional)
Outputs:
result- Variable valueexists- Boolean
var.set
Set variable in workflow store.
Inputs:
key- Variable namevalue- Value to set
Outputs:
result- Set valuekey- Variable name
var.delete
Delete variable from workflow store.
Inputs:
key- Variable name
Outputs:
result- Boolean (success)deleted- Boolean
var.exists
Check if variable exists.
Inputs:
key- Variable name
Outputs:
result- Boolean
Backend Plugins
backend.create_github
Initialize GitHub client.
Outputs:
result- GitHub clientinitialized- Boolean
backend.create_openai
Initialize OpenAI client.
Outputs:
result- OpenAI clientinitialized- Boolean
backend.load_metadata
Load metadata.json.
Outputs:
result- Metadata dictionary
backend.load_messages
Load translation messages.
Outputs:
result- Messages dictionary
backend.load_tools
Load tool definitions.
Outputs:
result- Tools array
backend.load_prompt
Load prompt.yml.
Outputs:
result- Prompt dictionary
backend.build_tool_map
Build tool registry map.
Outputs:
result- Tool map dictionary
backend.load_plugins
Load and register plugins.
Outputs:
result- Boolean (success)
Utility Plugins
utils.filter_list
Filter list by condition.
Inputs:
items- Arraymode- Filter modepattern- Pattern/condition
Outputs:
result- Filtered array
utils.map_list
Map/transform list items.
Inputs:
items- Arraytransform- Transformation
Outputs:
result- Transformed array
utils.reduce_list
Reduce list to single value.
Inputs:
items- Arrayseparator- Join separator
Outputs:
result- Reduced value
utils.not
Logical NOT operation.
Inputs:
value- Boolean value
Outputs:
result- Negated boolean
Variable Binding
All plugins support variable binding using $variable_name syntax in inputs. Variables are stored in the workflow runtime store and can be accessed across nodes.
Example:
{
"parameters": {
"text": "$user_input",
"template": "Hello {name}!",
"variables": {
"name": "$user_name"
}
}
}
Error Handling
Plugins may return an error field in their output when an error occurs. Check for this field to handle errors gracefully in your workflow.
Example:
{
"result": null,
"error": "Division by zero"
}