Skip to main content

Node Reference

Complete reference for all node types available in apptor flow workflows.


Node Categories

Nodes are organized into five categories in the workflow designer:

CategoryDescriptionNodes
Flow ControlControl the path of executionStart Event, End Event, If/Else, Split/Join, Loop, Call Process, Sub-Process
LogicExecute computation and transformationsScript Task, Set Variable
IntegrationConnect to external servicesService Task (REST, SQL, Email, SMS), Domain Task
AIAI and LLM-powered processingAI Task, Voice Task, Tool Nodes, Memory Action
HumanHuman interaction and I/OInput Node, Output Node

Common Node Properties

Every node — regardless of type — supports these base properties:

Basic

PropertyTypeDescription
namestringDisplay name of the node in the designer
documentationtextFree-form documentation/notes for the node

Timeout

Configure what happens if a node takes too long:

PropertyTypeDescription
timeout.durationnumberDuration value
timeout.durationUomenumUnit: SECONDS, MINUTES, HOURS
timeout.actionenumOn timeout: FAIL (default), CONTINUE

Retry

Automatically retry on failure:

PropertyTypeDescription
retry.maxAttemptsnumberMaximum number of retry attempts
retry.delaynumberDelay between retries
retry.delayUomenumUnit: SECONDS, MINUTES

Loop

Execute a node multiple times:

PropertyTypeDescription
loop.typeenumNONE (default), STANDARD_LOOP, COLLECTION_LOOP
loop.loopExpressionstringFor STANDARD_LOOP: JUEL condition to continue ${count < 5}
loop.collectionstringFor COLLECTION_LOOP: variable name containing the array
loop.loopVariablestringVariable name for current item in COLLECTION_LOOP
loop.maxIterationsnumberMaximum iterations (safety limit)

Connection Types

Connections (sequence flows) between nodes determine execution paths:

TypeColorWhen Used
sequenceFlowGrayDefault — normal flow between any nodes
trueFlowGreenFrom If/Else — taken when condition is true
falseFlowRedFrom If/Else — taken when condition is false
successFlowGreenFrom service/AI tasks — taken on success
errorFlowRedFrom service/AI tasks — taken on error
timeoutFlowOrangeFrom any node with timeout — taken if node times out
toolConnectionPurpleFrom AI Task to Tool nodes

Variable Syntax Quick Reference

ContextSyntaxExample
Node property values{varName}Hello {customerName}
Nested object access{object.property}{order.total}
Environment/secrets{env.VAR_NAME}{env.OPENAI_API_KEY}
If/Else condition${expression}${status == 'active'}
Loop condition${expression}${index < 10}

Node Quick Reference

IconNodeCategoryKey Properties
🚀Start EventFlow Control(none)
🎯End EventFlow Control(none)
⚖️If / ElseFlow ControlCondition expression on links
🔀Split / JoinFlow Controlmode: exclusive / inclusive / parallel
🔁Loop NodeFlow ControlloopExpression, collection, maxIterations
🔄Call ProcessFlow ControltargetProcessId
📦Sub-ProcessFlow ControlsubProcessType, processKey
🤖AI TaskAIaiProviderConnectionId, systemPrompt, prompt
📞Voice TaskAIvoiceProvider, systemPrompt, phone config
📬/🔍/🔌/🔗/📚/🔍/📁Tool NodeAIVaries by tool subtype
🧠Memory ActionAIMemory CRUD operations
🌍Service Task (REST)IntegrationrestApiConnectionId, endpointPath, method
✉️Service Task (Email)IntegrationmailConnectionId, recipientAddress, subject, body
📱Service Task (SMS)IntegrationsmsConnectionId, toNumber, message
💾Service Task (SQL)IntegrationdatabaseConnectionId, mode, queries
📋Domain TaskIntegrationdomainActionId, domainConnectionId
Script TaskLogicscriptFormat, script
📥Set VariableLogicmappings (key-value assignments)
📝Input NodeHumaninputType, formTitle
📊Output NodeHumanoutputType, prompt, title

Event Handlers

Any node can have event handlers attached for cross-cutting concerns:

"eventHandlers": [
{
"event": "ON_START",
"pluginType": "LOG",
"properties": { "message": "Starting {nodeName}" }
},
{
"event": "ON_ERROR",
"pluginType": "NOTIFICATION",
"properties": { "channel": "slack", "message": "Node failed: {nodeName}" }
}
]
EventWhen Triggered
ON_STARTBefore the node begins executing
ON_COMPLETEAfter the node completes successfully
ON_ERRORWhen the node fails
ON_TIMEOUTWhen the node times out