Creating Workflows
This guide walks you through creating your first workflow, from setting up a trigger to executing and monitoring the workflow.Prerequisites
Before creating a workflow, you’ll need:- A KnoxCall account
- Basic understanding of APIs (HTTP requests, JSON)
Workflow executions consume a metered monthly operations quota (each run counts against your tenant’s limit based on the number of nodes). When the limit is reached, an execution is recorded as failed without running. Workflow access also depends on your plan’s feature entitlements.
Step 1: Create a New Workflow
- Navigate to Workflows in the sidebar
- Click + Create Workflow
- Enter workflow details:
- Click Create
Step 2: Configure the Trigger
The trigger node is already on the canvas. Click it to configure:Manual Trigger (Recommended for First Workflow)
Webhook Trigger
Route Event Trigger
proxy_event, and event selection is an eventTypes array. Valid event types are request.received, request.success, request.error, request.client_error, request.server_error, request.timeout, and request.completed. You can also narrow matches with an optional route filter, environment filter, and field conditions.
Step 3: Add an HTTP Request Node
Let’s add a node that makes an API call:- Click the + button on the trigger node’s output
- Select HTTP Request
- Configure the node:
Step 4: Add a Code Block Node
Coming soon: Code Block execution is currently disabled for security and is planned for a future release. The steps below show the intended authoring experience — a Code Block does not run custom JavaScript yet (an empty Code Block simply passes its input through unchanged).
- Click the + on the HTTP Request node
- Select Code Block
- Configure:
- Enter the code:
A Code Block receives the upstream node’s output directly as the global
input (when a single edge feeds it). There is no input.nodes['<Node Name>'] lookup. For fan-in (multiple incoming edges), input is an array of { nodeId, output } entries keyed by node id, not name.Step 5: Add a Condition Node
Let’s add conditional logic:- Click the + on the Code Block node
- Select Condition
- Configure:
type, a JSONPath path, and a comparison value) combined with the logic operator (AND or OR). They do not take a free-form JavaScript expression string. Reference upstream data with the JSONPath path rather than an inline {{...}} placeholder.
This creates two paths:
- True: When user ID equals 1
- False: When user ID doesn’t equal 1
Step 6: Add Nodes to Each Branch
True Path
- Click the + on the Condition’s True output
- Select Code Block
- Name it: “Success Response”
- Code:
False Path
- Click the + on the Condition’s False output
- Select Code Block
- Name it: “Error Response”
- Code:
Step 7: Save Your Workflow
- Click Save in the top right
- Your workflow is saved as version 1
Step 8: Test Your Workflow
Manual Execution
- Click Run in the top right
- (Optional) Add input data for the trigger:
- Click Execute
Watch Execution
You’ll see:- Each node highlights as it executes
- Green checkmark when successful
- Red X if an error occurs
- Execution time per node
View Results
Click on any node to see:- Input: Data that went into the node
- Output: Data that came out
- Execution Time: How long it took
Step 9: Enable the Workflow
- Toggle Enabled to ON
- Your workflow is now active
Adding More Nodes
HTTP Request with POST
{{transform_data.output.fullName}}. There is no {{env.*}} placeholder, and stored-secret injection into a node’s auth is not yet available — see Secrets.
Loop Over Array
arrayConfig.arrayPath from the node input and exposes the current element under the variable named in arrayConfig.itemVariable (here, item). There is no {{loop.*}} placeholder; downstream references use the item variable name you configured.
Delay
Error Handler
- Add an Error Handler node
- Connect it to nodes that might fail
- Configure what to catch:
- Add nodes after the error handler for recovery:
Using Variables
Variable references use a single form:{{<nodeId>.<path>}}, where <nodeId> is the id of an upstream node and <path> is a dot-notation path (with optional [index] array access) into that node’s output. There are no nodes['Name'], env., or loop. namespaces.
Previous Node Output
status, statusText, headers, body, url, method, and success.
Trigger Data
trigger alias resolves only when the trigger node’s id is exactly trigger-node. The trigger output exposes type, data, and timestamp — the data you provide when running the workflow is under data.
Secrets
Workflow Examples
Simple API Call
Data Sync
Error Handling
Execution History
View past executions:- Open the workflow
- Click Executions tab
- See list with:
- Status (completed, failed, running, cancelled)
- Started at
- Duration
- Trigger type
- Full node-by-node timeline
- Input/output for each node
- Error details
Versioning
Each time you save, a new version is created:- Click Versions tab
- See all saved versions
- Click a version to view it
Version history is viewable today (you can list every saved version and inspect it). One-click Restore/rollback to a previous version is coming soon — there is currently no restore action. To roll back manually, open the version you want and re-save its definition as a new version.
Troubleshooting
”Variable not found”
”HTTP Request failed”
- Verify URL is correct
- Check if API requires authentication
- Ensure API is accessible from the internet
”Code Block error”
- Missing brackets
- Incorrect variable references
- Invalid JSON
”Condition always false”
Cause: Comparison type mismatch, or a wrong JSONPath in the condition. Fix: Check the condition’spath resolves to the value you expect, and pick the matching condition type:
Best Practices
- Name nodes descriptively - “Fetch Customer Data” not “HTTP 1”
- Add error handlers for external API calls
- Test with sample data before enabling
- Use a secret reference (
secret_refauth) for credentials instead of hard-coding them - Keep workflows focused - one purpose per workflow
- Document complex logic in node names/descriptions
Next Steps
Workflows Overview
Understanding workflow concepts
Webhooks
Trigger workflows from webhooks
API Logs
Debug workflow API calls
Route Examples
API patterns to use in workflows
Statistics
- Level: beginner
- Time: 12 minutes
Tags
workflows, tutorial, getting-started, automation