Workflows
Workflows are the brain of your trading agent. They define a sequence of steps—fetching data, making decisions, and executing trades. You build them by dragging connecting nodes on a canvas.
The Editor
The workflow editor is where you build your strategies. It has three main parts:
- Canvas: The infinite space where you place nodes.
- Node Palette: The left sidebar containing all available node types (Data, Logic, Actions).
- Properties Panel: The right sidebar where you configure the selected node.
Building Your First Flow
Let's build a simple Bitcoin Price Alert.
1. Start with a Trigger
Every workflow begins with a Workflow Trigger. You can configure it to run on a schedule (e.g., every 5 minutes) or manually.
2. Fetch Data
Click the + button on the Start node (or drag from the sidebar) to add a Price Data node. This node fetches real-time market data.
3. Configure the Node
Click the Price Data node to open its properties. Here you set the asset symbol (e.g., BTC/USD) and data source.
Configuration
Asset
4. Connect an Action
Finally, add an action. Let's send an email if the price is fetched successfully. Connect the Price Data output to an Email Notification node.
5. Using Data from Previous Nodes
Notice the connection line? It carries data. Each edge has a label (like price_data) that you use to reference the output of the connected node.
Dynamic Fields & Expressions
Most node fields support dynamic mode — letting you reference data from upstream nodes instead of hardcoding values. This is how nodes talk to each other.
The f(x) Toggle
Every compatible field has an f(x) button. Click it to switch between:
- Fixed mode: A static value like
0.01orBTC/USD - Expression mode: A dynamic reference like {priceData.close} that resolves at runtime
Expression Syntax
Use curly braces to reference data from connected nodes:
| Expression | Meaning |
|---|---|
| {priceData} | The entire output object from the "priceData" edge |
| {priceData.close} | A specific field from that output |
| {priceData[0].close} | First element of an array field |
| {analysis.signal} | Nested access into another node's output |
The edge label is the key. When you connect two nodes, the edge gets a label (e.g., priceData, analysis, input). That label becomes the variable name you use in expressions.
Where to Use Expressions
- Exchange Order: Set amount, limit price, or symbol dynamically based on upstream analysis
- LLM Prompts: Inject live data into prompts — e.g., "Analyze this price: {priceData.close}"
- Conditional: Reference values to compare against thresholds
- Notifications: Include dynamic data in email subjects, Slack messages, etc.
Autocomplete
In prompt fields (LLM, Function), the editor provides autocomplete as you type inside {}. It shows all available edge labels and their fields, so you don't need to guess the structure.
Running the Workflow
Once connected, click Run in the top toolbar.
- Live Logs: A panel will slide up showing real-time execution logs.
- Node Status: Nodes turn blue (running), green (success), or red (failed) as they execute.
- Outputs: Click any completed node to see exactly what data it produced.
Next Steps
Now that you understand the basics:
- Explore Node Types: See what other blocks you can use (LLMs, Exchange Orders, Slack).
- Use the Assistant: Learn how to build this just by typing "Alert me when BTC drops".
- Manage Credentials: Securely connect your real exchange accounts.