Node Types
Action Node
Executes a tool or external operation. Configuration:| Field | Description |
|---|---|
| Name | Display name for this node |
| Tool | Which tool to execute |
| Inputs | Map data to tool parameters |
| Outputs | Define output variable names |
- Success — Tool executed successfully
- Failure — Tool execution failed
- Search the knowledge base
- Call an external API
- Create a Jira ticket
- Update a Zendesk ticket
Decision Node
Branches based on a condition. Configuration:| Field | Description |
|---|---|
| Name | Display name for this node |
| Condition | Expression to evaluate |
- Yes — Condition is true
- No — Condition is false
AI Decision Node
Uses LLM to make a judgment-based decision. Configuration:| Field | Description |
|---|---|
| Name | Display name for this node |
| Prompt | What to evaluate |
| Context | Additional data to include |
| Options | Possible outcomes |
- Satisfied
- Not satisfied
- Unclear / needs follow-up
AI Extract Node
Extracts structured data from conversation using AI. Configuration:| Field | Description |
|---|---|
| Name | Display name for this node |
| Instructions | What to extract |
| Output Schema | Structure of extracted data |
- Success — Extraction completed
- Failure — Could not extract required data
Respond Node
Sends a message to the customer. Configuration:| Field | Description |
|---|---|
| Name | Display name for this node |
| Message | Response template |
| Use AI | Allow AI to enhance/personalize |
- 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:| Field | Description |
|---|---|
| Status | Success or Failure |
| Summary | Optional completion message |
Condition Reference
Comparison Operators
| Operator | Description | Example |
|---|---|---|
== | Equals | status == "active" |
!= | Not equals | status != "cancelled" |
> | Greater than | amount > 100 |
< | Less than | days < 30 |
>= | Greater or equal | priority >= 2 |
<= | Less or equal | attempts <= 3 |
Logical Operators
| Operator | Description | Example |
|---|---|---|
&& | AND | active && premium |
|| | OR | urgent || vip |
! | NOT | !cancelled |
String Operations
| Function | Description | Example |
|---|---|---|
.includes() | Contains substring | email.includes("@gmail") |
.startsWith() | Starts with | id.startsWith("ORD-") |
.endsWith() | Ends with | file.endsWith(".pdf") |
.length | String length | message.length > 500 |
Array Operations
| Function | Description | Example |
|---|---|---|
.includes() | Contains element | tags.includes("urgent") |
.length | Array length | items.length > 0 |
Null Checks
Input Mapping
Available Variables
| Source | Access Pattern | Example |
|---|---|---|
| Conversation | conversation.* | conversation.latest_message |
| Customer | customer.* | customer.email |
| Previous node | {node_name}.* | lookup_order.order |
| Metadata | metadata.* | metadata.source |
Conversation Variables
| Variable | Description |
|---|---|
conversation.latest_message | Most recent message text |
conversation.history | Full message history |
conversation.source | Channel (zendesk, slack, etc.) |
conversation.id | Unique 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