Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.openlens.com/llms.txt

Use this file to discover all available pages before exploring further.

A workstream is a named slice of your project tracked as a single unit. You pick the topics and prompt attributes that define the slice, set a target visibility (and optionally a deadline), and OpenLens computes the metrics for that slice on its own clock.

What goes in one

  • Name. 1 to 120 characters.
  • Topics. A subset of the project’s topics. Empty means all topics in the project, resolved at query time.
  • Prompt attributes. A subset of the project’s attributes. Attribute filtering uses AND logic: a prompt must carry every selected attribute to be included.
  • Goal. Up to 300 characters of free text plus an optional target visibility (0 to 100) and an optional deadline (YYYY-MM-DD).
  • Goal history. Goal updates append. Past goals stay in the record with their from-date. Mid-quarter edits don’t retroactively reinterpret the chart.
At least one of topics or attributes is required at creation. Both empty returns 400.
The dashboard’s attribute filter supports any-of, all-of, and hide modes. Workstreams support only all-of (AND). If you want to slice with OR or NOT, use the dashboard filter for that ad hoc.

What you get out

Header (always rendered)

  • Current visibility for the slice. Computed live from raw platform responses.
  • Delta in points over the last 30 days (configurable per request).
  • Progress toward target as a percentage. Null if no target visibility is set.
  • Days to deadline. Null if no deadline.
  • 30-day sparkline for the card.

Trend view

  • 90-day visibility series (configurable per request).
  • Content-update pins on the timeline at each ship date.
  • Per-content-update attribution. Citation-appearance-lag per platform and prompt-coverage-shift.

Breakdown view

  • Prompt movers. The slice’s individual prompts ranked by absolute change in visibility over the configured window (7 to 90 days, default 30). Each row shows the prompt text, its topic, visibility at start, visibility now, and the delta in points.
  • Competitor share. Per-brand visibility for the slice, your brand plus competitors.
  • asOfRunId. The specific run the breakdown was computed against. The numbers are auditable.

Content updates

Tag a content update (your own blog post, a press release, a partner mention) against a workstream and OpenLens computes:
  • Citation-appearance-lag per platform. When each AI platform first cited your URL (or its domain) after the ship date. Null if it hasn’t been seen yet.
  • Prompt-coverage shift. How many of the workstream’s prompts mentioned your brand at ship vs now.
LLM crawl and index lag runs days to weeks and varies across platforms, so naive ‘shipped X, gained Y points in 5 days’ attribution is mostly noise. The UI reflects that. Pins say ‘shipped here.’ The attribution table shows the lag and coverage numbers above. Use the signals to investigate the why.

Defaults

  • Header delta window: 30 days.
  • Trend series window: 90 days.
  • Breakdown window: 30 days, clamped to 7 to 90 per request.
  • Default attribute filter on create: non-branded. You can clear or extend it.

How outputs are produced

  • Current visibility, delta, and trend series are computed live from raw platform responses for prompts matching the workstream’s topic and attribute filters.
  • Empty topicIds at create time is materialised at query time to all current topics in the project. Adding a topic to the project later automatically widens existing all-topics workstreams.
  • Content updates are user-supplied. Citation lag and coverage shift are computed from existing platform responses against the update’s ship date.

How to use it

  • One workstream per real-world initiative.
  • Pick a target visibility you actually want to hit.
  • Tag content updates as you ship them.
  • Check the sparkline weekly. Run the deep view monthly.

MCP and API

MCP tools: manage_workstream, update_workstream_goal, get_workstream, get_workstream_breakdown, list_workstreams. REST endpoints:
  • GET /api/workstreams?projectId=... — list (returns headers).
  • POST /api/workstreams — create.
  • GET /api/workstreams/[id] — get one (resolved).
  • PATCH /api/workstreams/[id] — update name, topics, attributes.
  • PATCH /api/workstreams/[id]/goal — set a new current goal (appends to history).
  • GET /api/workstreams/[id]/breakdown?days=N — prompt movers + competitor share.
  • POST /api/workstreams/[id]/archive — archive.
  • POST /api/workstreams/[id]/unarchive — restore.
Schema is real junction tables (workstreams, workstream_topics, workstream_attributes, workstream_goal_history), not text arrays. Deleting a topic or attribute keeps referential integrity through the FKs.