Builder — Node Reference
Back to Guides
This page documents every node available in the React Flow builder. Screenshots are placeholders —
add images in /static/builder-docs/screenshots/ and update the src attributes below
when ready.
Trigger Node
Type: triggerNode • Handles: source (bottom)
Defines when the workflow runs. Choose schedule or event triggers. Typical fields:
- Schedule: cron-like or interval selection
Payload schema (collapsed)
{
"type": "trigger",
"config": { "schedule": "0 9 * * 1-5" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/trigger.png`
Scanner Node
Type: scannerNode • Handles: target (top), source (bottom)
Scans the market using Finviz-like filters. Use this node to produce a list of tickers that match criteria.
- Sector — select sector(s)
- Market Cap — min/max selection
- Price — price range
- Average Volume
- PE Ratio, EPS Growth, Performance
- Signal — prebuilt filters (gapper, pullback)
Payload schema (collapsed)
{
"type": "scanner",
"config": { "sector": "Technology", "price": {"min": 5, "max": 200}, "signal": "Gappers" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/scanner.png`
Logic / Filter Node
Type: logicNode (Filter) • Handles: target (top), source (bottom)
Applies indicator-based logic to incoming ticker lists. Three filter types available:
Technical Indicator Filter
Traditional technical analysis indicators:
- Indicator (e.g., SMA, EMA, RSI)
- Period — lookback period for calculation
- Condition (greater/less/equals)
- Value — threshold value
VCP Score Filter
Volatility Contraction Pattern analysis for breakout setups:
- Minimum VCP Score — 0-7 scale (7 = perfect, 6 = dream, 5 = elite)
- Publish VCP Score — pass score data to downstream nodes
VCP Score Guide:
- 7 = Perfect Monster Setup
- 6 = Minervini Dream Setup
- 5 = Elite VCP Pattern
- 4+ = Consider Trading
- <4 = Not Ready
Inside Day Pattern Filter
Identifies stocks showing inside day patterns (consolidation setups):
- Ticker Symbol — single ticker to check
What is an Inside Day?
An inside day occurs when today's trading range is completely contained within yesterday's range:
- Today's High < Yesterday's High
- Today's Low > Yesterday's Low
This pattern indicates consolidation and often precedes breakout moves. The filter returns detailed pattern data including high/low values for both days.
Payload schema (collapsed)
{
"type": "filter",
"filterType": "technical|vcp|insideDay",
"config": {
"indicator": "EMA",
"period": 20,
"condition": ">",
"value": 50
}
}
{
"type": "filter",
"filterType": "vcp",
"config": { "min_score": 6, "publish_score": true }
}
{
"type": "filter",
"filterType": "insideDay",
"config": { "ticker": "COIN" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/filter.png`
Condition Node
Type: conditionNode • Handles: target (top), source (bottom)
Evaluate arbitrary conditions, including values from upstream Market Sentiment nodes. Common fields:
- Metric — choose a metric or reference upstream node
- Evaluator — >, <, =
- Threshold
- Action — go/stop routing
Payload schema (collapsed)
{
"type": "condition",
"config": { "metric": "advancing_pct", "op": ">", "threshold": 60 }
}
Screenshot placeholder: `/static/builder-docs/screenshots/condition.png`
Market Sentiment Node
Type: marketSentimentNode • Handles: target (top), source (bottom)
Collects breadth and market-level metrics used by Condition nodes or downstream logic.
- Multi-select breadth metrics: advancing_pct, declining_pct, new_high_pct, etc.
Payload schema (collapsed)
{
"type": "market_sentiment",
"config": { "metrics": ["advancing_pct","new_high_pct"] }
}
Screenshot placeholder: `/static/builder-docs/screenshots/sentiment.png`
Market Breadth Node
Type: marketBreadthNode • Handles: target (top), source (bottom)
Collects advanced breadth indicators and market health metrics for trend analysis and timing decisions.
Breadth Indicators Available
- Nasdaq 5-Day MA Percentage — % of Nasdaq stocks above 5-day moving average
- Nasdaq 20-Day MA Percentage — % of Nasdaq stocks above 20-day moving average
- McClellan Oscillator — breadth momentum indicator for NYSE
- McClellan Summation Index — cumulative breadth trend indicator
Interpretation Guide
5/20 DMA Percentages:
- >80% = Overbought, potential pullback risk
- <20% = Oversold, potential bounce opportunity
- Crossing above/below 50% = Trend change signals
McClellan Oscillator:
- Positive = Bullish breadth momentum
- Negative = Bearish breadth momentum
- Extreme readings (+100/-100) = Overbought/Oversold
McClellan Summation Index:
- Above zero = Bullish breadth trend
- Below zero = Bearish breadth trend
- Direction changes = Major trend shifts
Use these metrics in Condition nodes to filter trades based on market health or to time entries/exits.
Payload schema (collapsed)
{
"type": "market_breadth",
"config": {
"indicators": ["nasdaq_5dma_pct", "nasdaq_20dma_pct", "mcclellan_oscillator"],
"update_frequency": "daily"
}
}
Screenshot placeholder: `/static/builder-docs/screenshots/breadth.png`
Import Prebuilt List Node
Type: importPrebuiltListNode • Handles: target (top), source (bottom)
Loads a curated list of tickers such as prebuilt pullbacks or gapper lists.
Payload schema (collapsed)
{
"type": "import_list",
"config": { "list_type": "20_EMA_pullback" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/import_list.png`
Generate Trading Levels Node
Type: generateTradingLevelsNode • Handles: target (top), source (bottom)
Produces support/resistance/ema levels for tickers; useful for charting or alerts.
Payload schema (collapsed)
{
"type": "generate_levels",
"config": { "level_type": "support_resistance", "params": {} }
}
Screenshot placeholder: `/static/builder-docs/screenshots/levels.png`
Action Node
Type: actionNode • Handles: target (top), source (bottom)
Performs an action when a ticker passes upstream logic. Actions include alerts, publish to dashboard, or
trade orders.
- Action Type — alert or trade
- Alert fields: message, email recipients
- Trade fields: order type (market/limit), size
Payload schema (collapsed)
{
"type": "action",
"config": { "action_type": "alert", "message": "Ticker matched" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/action.png`
Publish To Dashboard Node
Type: publishToDashboardNode • Handles: target (top), source (bottom)
Sends results to the dashboard as widgets. Configure title and display type.
Payload schema (collapsed)
{
"type": "publish_dashboard",
"config": { "widgetTitle": "New Matches", "displayType": "table" }
}
Screenshot placeholder: `/static/builder-docs/screenshots/publish.png`
Connections and Validation
The builder enforces allowed connections between node types. Typical rules include:
- Scanner / Import list / Trigger → Filter / Logic / Condition / Action
- Market Sentiment / Market Breadth → Condition (metrics reference)
- Generate Trading Levels → Publish / Action
Example Workflows
VCP Breakout Scanner
Scanner → VCP Filter → Action
- Scan Technology sector stocks
- Filter for VCP score ≥ 6 (Dream setups)
- Send alerts for qualified breakouts
Market Timing Filter
Market Breadth → Condition → Scanner → Filter
- Check Nasdaq 20-day MA percentage
- Only scan if > 50% (bullish bias)
- Apply technical filters to results
Inside Day Pattern Alert
Trigger → Inside Day Filter → Action
- Run daily at market close
- Check specific watchlist tickers
- Alert when inside day patterns form
Developer Notes
The UI node types map to execution steps in the backend compiler and engine (see
routers/workflow_router.py and lib/workflow_engine.py).
When you're ready to add the real screenshots, add PNG files to
/static/builder-docs/screenshots/ named as referenced above (e.g., scanner.png), or
update the src attributes in this file to match your filenames.