Skip to main content
This page provides a complete reference for all node types and condition options available in workflows.

Node Types

Action Node

Executes a tool or external operation. Configuration:
FieldDescription
NameDisplay name for this node
ToolWhich tool to execute
InputsMap data to tool parameters
OutputsDefine output variable names
Outputs:
  • Success — Tool executed successfully
  • Failure — Tool execution failed
Example uses:
  • Search the knowledge base
  • Call an external API
  • Create a Jira ticket
  • Update a Zendesk ticket

Decision Node

Branches based on a condition. Configuration:
FieldDescription
NameDisplay name for this node
ConditionExpression to evaluate
Condition syntax:
// Equality
order.status == "delivered"

// Comparison
order.total > 100

// Boolean
customer.is_premium

// Contains
order.tags.includes("urgent")

// Multiple conditions
order.status == "delivered" && order.total > 50
Outputs:
  • Yes — Condition is true
  • No — Condition is false

AI Decision Node

Uses LLM to make a judgment-based decision. Configuration:
FieldDescription
NameDisplay name for this node
PromptWhat to evaluate
ContextAdditional data to include
OptionsPossible outcomes
Example prompt:
Based on the customer's message and conversation history, 
determine if they are satisfied with the resolution provided.

Consider their tone, any explicit statements of satisfaction 
or dissatisfaction, and whether their original issue appears resolved.
Options:
  • Satisfied
  • Not satisfied
  • Unclear / needs follow-up
Outputs: One output per option defined.

AI Extract Node

Extracts structured data from conversation using AI. Configuration:
FieldDescription
NameDisplay name for this node
InstructionsWhat to extract
Output SchemaStructure of extracted data
Example instructions:
Extract the following from the customer's message:
- Order number (format: ORD-XXXXXX)
- Product name mentioned
- Issue type (shipping, quality, wrong item, other)
Output schema:
{
  "order_number": "string",
  "product_name": "string",
  "issue_type": "string"
}
Outputs:
  • Success — Extraction completed
  • Failure — Could not extract required data

Respond Node

Sends a message to the customer. Configuration:
FieldDescription
NameDisplay name for this node
MessageResponse template
Use AIAllow AI to enhance/personalize
Message template: Use variables from previous nodes:
Hi {{customer.name}},

Your refund for order {{order.id}} has been processed! 

You'll see {{order.refund_amount}} credited to your 
{{order.payment_method}} within 5-7 business days.

Is there anything else I can help you with?
Outputs:
  • Success — Message sent
  • Failure — Failed to send

Start Node

Entry point for the workflow (automatically added). Outputs:
  • Next — Begins workflow execution

End Node

Terminates the workflow. Configuration:
FieldDescription
StatusSuccess or Failure
SummaryOptional completion message

Condition Reference

Comparison Operators

OperatorDescriptionExample
==Equalsstatus == "active"
!=Not equalsstatus != "cancelled"
>Greater thanamount > 100
<Less thandays < 30
>=Greater or equalpriority >= 2
<=Less or equalattempts <= 3

Logical Operators

OperatorDescriptionExample
&&ANDactive && premium
||ORurgent || vip
!NOT!cancelled

String Operations

FunctionDescriptionExample
.includes()Contains substringemail.includes("@gmail")
.startsWith()Starts withid.startsWith("ORD-")
.endsWith()Ends withfile.endsWith(".pdf")
.lengthString lengthmessage.length > 500

Array Operations

FunctionDescriptionExample
.includes()Contains elementtags.includes("urgent")
.lengthArray lengthitems.length > 0

Null Checks

// Check if value exists
order.tracking_number != null

// Check if value is empty
message != ""

Input Mapping

Available Variables

SourceAccess PatternExample
Conversationconversation.*conversation.latest_message
Customercustomer.*customer.email
Previous node{node_name}.*lookup_order.order
Metadatametadata.*metadata.source

Conversation Variables

VariableDescription
conversation.latest_messageMost recent message text
conversation.historyFull message history
conversation.sourceChannel (zendesk, slack, etc.)
conversation.idUnique conversation ID

Static Values

Enter literal values directly:
  • Strings: "pending"
  • Numbers: 100
  • Booleans: true

Best Practices

Node Naming

  • Use descriptive names: “Check order eligibility” not “Decision 1”
  • Include the action: “Lookup order in database”
  • Be consistent across workflows

Error Handling

  • Always connect Failure outputs
  • Provide fallback paths for errors
  • Consider retry logic for transient failures

Testing

  • Test each path through the workflow
  • Verify variable mapping works correctly
  • Check edge cases and error conditions

Next Steps