Back
Documentation

Workflows

Overview

A workflow is a saved research playbook: a graph of nodes that pull data, transform it, branch on conditions, and emit an artefact at the end. You build them once and rerun them on demand or on a schedule.

  • Composable. 16 node types span data, transforms, logic, and outputs.
  • Two ways to build. Drag nodes in the visual builder, OR ask Augur to compose one from natural language.
  • Code-visible by design. Research is separated into ordered operations; every executed tool-backed node exposes the call it ran alongside its result instead of hiding the investigation in one generated program.
  • Open-ended. Custom data nodes, transform and branch nodes, plus PineNode overrides let a workflow express bespoke analysis beyond the preset catalogue.
  • Strategy-first. Every workflow must terminate in output.emit_strategy — the artefact contract is a runnable PineNode strategy per pick.
  • Shareable. Each run gets a permalink; runs can also be exposed via a public shared slug.
Note
Workflows live at /workflows. Open the visual builder at /workflows/builder, or edit an existing workflow at /workflows/builder/{id}. Run output lives at /workflows/run/{id}.

Quickstart

The shortest path to a working workflow:

  1. Open /workflows/builder.
  2. Drag a data.screener node from the palette.
  3. Drag a output.emit_strategy node.
  4. Draw an edge from the screener to the emit node.
  5. Click Save, then Run.

The run page opens with one card per node, streaming status in real time. The emit-strategy card surfaces the generated PineNode source ready to backtest.

Tip
Faster: open Augur and ask "build me a workflow that screens for momentum names and emits a strategy for the top 3." The agent calls generate_workflow_definition and renders a save-button card. Seethe Augur docs.

Preset automations

Sentimentor ships eight complete research automations in the workflow library. These are implemented multi-step pipelines, not example prompts: each has a fixed tool allowlist, parameters, ranking instructions, output contract and server-side broadcast cadence. Open a preset to inspect or run it. The email-notifications page uses a Subscribe action to receive the centrally executed scheduled result and an Unsubscribe action to stop delivery.

PresetBroadcast cadencePicksPipeline
Morning Movers ScanWeekdays · 8:30 AM ET5Trend, sentiment, options flow, institutional levels and a PineNode strategy per pick
Oversold Bounce HuntWeekdays · 8:30 AM ET5Oversold screen, sentiment stabilization, institutional support and insider confirmation
Options Flow PlaysWeekdays · 8:30 AM ET5Options activity, historical put/call context, price confirmation and aligned PineNode strategies
Options Activity Breakout ScannerWeekdays · 8:30 AM ET10Contract-activity ranking with explicit snapshot limitations and market-priced defined-risk plays
Bullish Dark Pool + Positive Sentimentor PredictionWeekdays · 8:30 AM ET5Institutional accumulation, AI forecast, sentiment, analyst and options validation
Options Activity Breakout Scanner — Defined-Risk SetupsWeekdays · 8:30 AM ET10Available-factor scoring, price confirmation and deterministic vertical-spread construction
Earnings Run-Up PlaysWeekdays · 4:30 PM ET5Upcoming earnings, sentiment, flow, institutional activity and pre-print strategy output
Dividend Aristocrat ScreenMondays · 8:30 AM ET5Valuation, dividend durability, analyst quality, timing and trend strategy output

The three trial-enabled presets are Morning Movers, Oversold Bounce and Options Flow. A paid subscription unlocks the other five presets and custom workflows. Subscriptions are opt-in and can be disabled at any time.

Note
Preset subscription and community forking are different actions.Subscribe delivers a preset's scheduled broadcast result; Unsubscribe stops it. Add to my workflows imports a community workflow as an independent private copy you can edit, run, schedule and republish after material changes.

Workflow anatomy

A workflow is a directed acyclic graph: nodes + edges + a single terminal output.

Nodes

Each node has a type (one of the 16 catalogued types), a category (data / transform / logic / output), a config object specific to its type, and zero or more output handles consumed by downstream nodes.

Edges

An edge connects an upstream node's output handle to a downstream node's input handle. The graph must be acyclic — the builder rejects edge proposals that would close a loop.

Node config

Each node type declares typed config fields. Selecting a node in the builder opens the side panel where you can edit them:string, number, select,multi-select, and textarea inputs are supported. Defaults are pre-populated.

Required terminal

Every workflow must terminate inoutput.emit_strategy. This is a hard constraint — the executor refuses to run a graph without it, and the builder shows a validation error if it's missing. The rationale: strategies are how workflows' findings get actioned (backtest, deploy, monitor), so the contract is strict.

Heads up
Other terminal types (output.email,output.webhook) can be added alongsideemit_strategy as additional sinks, but they can't replace it.

Node catalogue

The catalogue mirrors Augur's tool surface: every data source the agent can call is also available as a workflow node. Add transforms / logic / outputs on top to assemble the playbook.

Data sources (14)

Each pulls live data from one of Augur's tools and emits a per-candidate table.

  • data.top_movers — gainers / losers / most-active.
  • data.screener — quant filter on the equity universe.
  • data.snapshot — live OHLC + volume per candidate.
  • data.sentiment — Sentimentor sentiment composite.
  • data.options_flow — sweeps, premium, call/put skew.
  • data.dark_pool — off-exchange institutional prints.
  • data.insider_sentiment — net insider buy/sell pressure.
  • data.financial_metrics — P/E, EPS, margins, dividends.
  • data.analyst_recommendations — consensus + target prices.
  • data.earnings_calendar — upcoming earnings dates.
  • data.economic_calendar — CPI / FOMC / NFP / GDP releases.
  • data.cftc_commitments — commercial vs speculator positioning.
  • data.news — recent headlines + AI sentiment per row.
  • data.sentimentor_prediction — proprietary directional read.

Transforms (3)

  • transform.filter — drop candidates that don't match a condition.
  • transform.rank — sort candidates by a composite score.
  • transform.score — compute a numeric score per candidate.

Logic (1)

  • logic.if_threshold — branch on a threshold check.
Tip
Use logic nodes to skip downstream cost when an upstream condition isn't met (e.g. don't run options-flow if the screener produced no candidates).

Outputs (3)

  • output.emit_strategy — generate a runnable PineNode strategy per pick. Required.
  • output.email — deliver result by email. Fires on scheduled runs (any paid tier).
  • output.webhook — POST result to a configured URL.

Visual builder

The builder is a flow-graph editor with three panes: a left-side palette of node types, thecanvas in the middle, and a right-sideconfig panel for whichever node is selected.

Node palette

Nodes are grouped by category (data / transform / logic / output) and colour-coded: blue for data, purple for transforms, amber for logic, green for outputs. Drag-and-drop onto the canvas to add.

Side panel config

Click any node to populate the right panel with its config fields. Edits commit live to the in-memory graph — the workflow doesn't persist until you clickSave.

Drawing edges

Hover a node's output handle to grab a connector, then drag onto another node's input handle. Invalid edges (cycle introduction, type mismatch) are rejected with a hover tooltip explaining why.

PineNode overrides

Any node can carry a config.customCode override — an inline PineNode script the executor runsverbatim instead of the node's built-in tool call. This lets you drop hand-tuned logic (custom indicators, bespoke ranking, third-party API stitching) into an otherwise catalogue-driven workflow without forking the node type.

Open the side panel for any node and pick a saved strategy or click Override to write a fresh script in the inline code editor. Reset to preset restores the catalogue default. Placeholders in the form {{param}} in the override get substituted at run time from the node's config — everything else runs unchanged.

Tip
Overrides apply to every node type, not justdata.custom / output.emit_strategy. When present, translateGraphToSystemPrompt()emits a "Run the following PineNode script VERBATIM" STEPS line instead of the built-in{NodeLabel} tool call — so the executor treats the graph as your script rather than the catalogue default.

Validation

Before save and before run, the builder checks:

  • Exactly one output.emit_strategy terminal exists.
  • No orphan nodes (every node must connect to the terminal somehow).
  • No cycles.
  • All required config fields are populated.

Failures surface inline as red badges on offending nodes; the run button stays disabled until everything is clean.

Building from Augur

The fastest way to build a non-trivial workflow is to describe the playbook to Augur. The agent callsgenerate_workflow_definition with a graph it composed from your description and renders a save-button card in the chat.

prompt
Build a daily workflow: 1. Screen for momentum names (RSI 50–75, volume > 5M). 2. Pull sentiment + dark-pool levels for each. 3. Score and rank by composite (sentiment 50% / dark-pool delta 50%). 4. Emit a PineNode strategy for the top 3.

Review the proposed graph on the card, hit save, and the workflow lands in /workflows ready to run. Open it in the builder if you want to fine-tune nodes before the first run.

Unlock & edit

Chat-generated workflows open in the builder in a read-only preview. Click Unlock & edit to enter full edit mode: every node's side panel exposes its full config, and the PineNode override editor becomes available on all steps (not just the emit-strategy terminal). Save to persist your edits as a new revision of the workflow — the original chat proposal stays as the prior revision so you can revert.

Note
While in unlock mode, ReactFlow's zoom controls sit above the footer bar and the minimap renders in a compact 140×92 frame in the lower-right, so they don't collide with the save/cancel actions.

Running a workflow

Manual run

From /workflows or from a workflow detail page, click Run. The run page opens immediately and starts streaming node-level status as the executor walks the graph.

Scheduled run

Any paid tier (Pro, Elite, Trader) can schedule workflows. Cron-style expressions are supported (0 9 * * 1-5 = 9:00 AM Mon–Fri). Scheduled runs trigger the same executor as manual runs and produce the same run-page output.

Note
Scheduled fires draw from the same monthly workflow quota as on-demand runs (Pro 10/mo, Elite 25/mo, Trader 75/mo) — there's no separate schedule cap. The Schedule modal previews how many runs your cadence will consume so you can leave headroom for on-demand work.
Heads up
If the monthly quota is exhausted, subsequent scheduled fires are skipped and the schedule detail page surfaces the reason. Fires resume automatically on the 1st of the next month.

Run statuses

  • pending — queued, executor not yet started.
  • running — executor is walking the graph.
  • succeeded — all nodes ok, terminal emitted.
  • failed — at least one node errored; the executor short-circuits and stamps the run as failed.

Run page

The run page renders one card per node. Cards show node label, status pill, and a tabbed body with the data the node produced.

Per-node tabs

Each node card may surface up to four tabs:

  • Description — what the node did, in plain English.
  • Table — the per-candidate output as a sortable table.
  • Chart — bar / line / timeseries / scatter / equity / gauge rendering, when applicable.
  • Code — the exact JavaScript-formatted operation and inputs used for that node; the emit-strategy node shows the generated PineNode source itself.

Which tabs appear depends on the node type. Data nodes with a chartKind declared (e.g.data.top_movers → bar) get the chart tab; everything else falls back to description + code.

AutoChart shape

Chart tabs pick their shape from the data itself rather than a fixed per-node chart type. The router inspects the emitted table and chooses:

  • Radar for multi-dimensional signal tables (bullish / bearish / neutral score columns per entity) — overlays up to four top entities on up to six dimensions.
  • Scatter for two numeric axes without a natural category dimension (e.g. price vs. volume).
  • Bar as the fallback when the shape is a single-metric ranking (top movers, sentiment leaderboard).

AutoChart blacklists metadata columns from the auto-picked metric list — updated, timestamp,id, uuid, order,rank, round_lot, and anything whose values look like epoch-second timestamps (min ≥ 1e9 with a tight spread). This prevents charts of "last update time" showing up in place of the real metric.

Tip
Tooltips are theme-aware — text on dark cards renders in light foreground so numbers stay legible over the dark Recharts background.

Tool attribution

Each node card shows which tool calls produced it. When the backend supplies node_outputs, the attribution is exact; when it doesn't, the run page falls back to each node type's declared tools list.

Strategy artefact

The terminal output.emit_strategy card displays the generated PineNode strategy source with an Open in editor button. Multiple picks produce multiple strategy artefacts in one run; each can be opened independently. The terminal therefore does more than summarize the preceding analysis: it composes the surviving node-level evidence into executable, editable strategy logic that can be backtested and shared through /verify.

Workflow community

Sentimentor's /community gallery distributes complete AI research workflows—not screenshots or isolated prompts. Creators publish from the workflow library or visual builder; the listing records its author, description, category, tags, graph preview, research tools, views and number of times it has been added.

  1. Discover. Browse published workflows by category, recency or popularity.
  2. Inspect. Open a listing to review its synthesized graph, data-tool sequence, output size and creator before importing.
  3. Add a private fork. Add to my workflows duplicates the complete workflow into your account with private visibility and preserved source provenance.
  4. Customize. Change parameters, graph nodes and PineNode overrides without changing the creator's original.
  5. Run or schedule. Execute the fork on your own inputs or give it its own cadence.
  6. Share the variation. After materially changing the graph, publish the new version back to the community.
Note
Community browsing is free. Adding a community workflow to your account requires Pro or higher. The community action is an import-as-private-copy rather than an in-place subscription; built-in email digests use a separate subscribe/unsubscribe flow.

Sharing runs

Any run can be exposed via a shared slug:/workflows/shared/{slug}. The shared URL renders the full run-page output to anyone with the link, read-only. Generate a slug from the run page's share action; revoke it the same way.

Note
Shared URLs include node configs and emitted strategies. Don't share runs that contain proprietary parameter tunings you don't want public.

Scheduling

Any paid tier (Pro, Elite, Trader) can run workflows on a cron schedule. Configure the schedule from the workflow detail page:

cron
# Every weekday at 9:35 AM ET 35 9 * * 1-5 # Hourly during market hours 0 9-16 * * 1-5 # Sunday night setup 0 22 * * 0

Each scheduled fire creates a normal run with its own permalink. The scheduler runs on AWS EventBridge; expect ±60s jitter on fire time.

Plan matrix

What's included where:

  • Free. Access Market and the read-only Workflows page. Browse templates and Community previews, but do not run or import workflows.
  • Trial. Seven days with up to 3 workflow runs. Community imports are not included.
  • Pro. 10 workflow runs/month (on-demand + scheduled). Custom scheduling included.
  • Elite. 25 workflow runs/month (on-demand + scheduled). Email + webhook outputs.
  • Trader. 75 workflow runs/month (on-demand + scheduled). Cross-workflow data passing. Priority queue on busy hours.
Note
Some upstream data tools (live options flow, ETF dark pool) require a paid tier on the data side too. The runner gracefully skips a node if its upstream data isn't available on the current plan, but the workflow as a whole still completes.

Troubleshooting

  • Run stuck on "pending". The executor is queued; on a busy hour this can take 30–60s before status flips to running.
  • Node failed with a tool error. Open the code tab on the failing node card; the upstream response usually carries the rejection reason (rate limit, plan gate, transient 5xx).
  • Run completed but the strategy card is empty. The screener produced zero candidates. Loosen the screener thresholds or check the Description tab for the count.
  • Scheduled runs aren't firing. Confirm the schedule cron expression is correct AND that you haven't already spent your monthly workflow quota. If the quota is exhausted, the detail page shows the skip reason and fires resume on the 1st of the next month.
  • Saved Augur-generated workflow won't run. Validation may have failed silently on save; open in the builder and look for red badges on offending nodes.

FAQ

Can I have branching paths that re-merge?

Branching is fine — multiple downstream paths from one upstream node are valid, and they can re-converge into a later transform. What's not allowed is a true cycle (a node depending on its own downstream output).

Can I emit more than one strategy per run?

Yes. output.emit_strategy emits one strategyper candidate coming in on its input edge. If the upstream rank node passes 3 candidates, you get 3 strategies.

Are workflows versioned?

Each save snapshots the graph; older runs reference the snapshot they were built from. Editing a workflow doesn't rewrite the history of its prior runs.

Difference between sharing and exporting?

Sharing creates a read-only public URL for a specific run. Exporting (coming soon) downloads the workflow graph as JSON for import into another account.