Skip to main content
Stories turn a chat analysis into a persistent, shareable document — with live charts, tables, and narrative text — that you can revisit, refine, and distribute to your team.

Creating a Story

Stories are created directly from a chat conversation. Simply ask the agent to write one:
“Write a story about our new user growth since the last release.” “Create a story summarizing MRR trends over the past quarter.”
The agent will:
  1. Run the relevant queries against your data.
  2. Compose a structured document with narrative text, charts, and tables embedded inline.
  3. Open the story in a side panel next to the chat thread.
Story example with charts

Editing a Story

Once a story is open in the side panel, click the pencil icon to switch to edit mode. The editor is Notion-style: every block (text, chart, table) can be dragged and reordered using the grip handle on the left. You can edit text in rich markdown, rearrange sections, and remove blocks you don’t need. When you’re done, click Save — this creates a new version of the story. To discard your changes, click Cancel.

Versions

Every time you save a story, nao creates a new version. Use the version navigator in the story header (v1 / v2 / ...) to browse previous versions.
  • ← / → arrows step through versions.
  • When viewing an older version, a Restore button lets you roll back to that version (creating a new version from it).
Recipients who receive a shared link always see the latest version automatically.

Adding a Chart from the Thread

When the agent produces a chart in the chat thread, you can embed it directly into a story:
  1. Open the story side panel.
  2. Ask the agent to add the chart: “Add this chart to the story.”
The chart is embedded as a live block — it renders with the same query data and can be repositioned in the editor like any other block.

Sharing a Story

Click the share icon in the story header to open sharing settings. You can share with:

Entire project

All members of your nao project can view the story via the shared link.

Specific people

Search by name or email and select individual team members.
Clicking Share & copy link copies the URL to your clipboard. Recipients open the story in their browser — they always see the latest version. When you share with your full project or with specific people, nao also sends an email notification to recipients. Managing an existing share Once a story is shared, the share icon turns green. Click it again to:
  • Copy link - grab the URL again.
  • Update access - add or remove specific people (for specific-person shares).
  • Unshare - revoke access and disable the link entirely.

Picking Up a Shared Story or Chat

Recipients of a shared link don’t have to read passively. From any shared chat or story, they can branch the conversation into their own workspace and keep going:
  • Continue chat - on a shared chat, opens a new forked chat that contains the full shared history. Each click creates a fresh fork so the original is never modified.
  • Discuss story - on a shared story, opens a new chat with the story embedded at the top in editable form, ready to be questioned or refined.
  • Ask - select any text inside a shared chat or story and an Ask button appears above the selection. Clicking it opens an inline frame where you can quote the selection and ask a follow-up about that specific passage. The frame leaves a small persistent indicator when collapsed so you can reopen it later.
These actions all create new conversations under the recipient’s account, so the original shared content stays untouched.

Live Stories

By default, a story is a snapshot: charts and tables freeze the data that was returned when the story was created. Live stories keep the story connected to the underlying queries so the numbers refresh on a schedule (or on demand) without anyone having to rebuild the report.

Enabling live mode

  1. Open the story in the side panel.
  2. Click the settings icon in the story header.
  3. Toggle Live mode on.
  4. Pick a refresh strategy (see below).
  5. Save.
A green Live badge appears in the story header once it’s enabled, along with a “last refreshed” timestamp. Anyone who opens the shared link sees the most recently refreshed version.

Refresh strategies

When live mode is on, choose how freshness should work:
  • Manual refresh only - the story keeps its last refreshed values until someone clicks the refresh button in the header.
  • No cache (always fresh) - queries re-run every time the story is opened. Best for low-volume stories where you always want live numbers; avoid on expensive queries.
  • Scheduled refresh presets - every 5 minutes, hourly, daily, weekly, or monthly.
  • Custom schedule - type a schedule in plain English (e.g. “every weekday at 8am”, “first Monday of the month”) and nao converts it to cron, or paste a raw cron expression directly.
Each refresh re-runs every query block in the story against your connected warehouse, then updates the cached results that recipients see.

Refreshing the narrative

For live stories, you can also enable Regenerate the narrative in the same settings panel. When turned on, nao rewrites the text blocks with the updated numbers while keeping the layout intact:
  • Section titles stay in place.
  • Charts and tables stay embedded in the same positions.
  • Only the prose around them is rewritten so the commentary matches the new data.
This is what turns a live story into a real recurring report - the agent doesn’t just refresh the numbers, it explains them.

Access and refresh on shared stories

Live refresh respects the same access rules as the share itself:
  • For project-wide shares, any project member can trigger a manual refresh.
  • For specific-people shares, only the people on the access list can refresh.
  • Scheduled refreshes always run with the story owner’s permissions, so the data the recipients see is the data the owner is allowed to query.
If a query underlying a live story starts failing (schema change, permissions, etc.), the story keeps showing the last successful refresh and surfaces an error indicator in the header so you can investigate.

Stories Library

The Stories Library is your central hub for all stories. Access it by clicking Stories in the left sidebar. Stories Library The library shows:
  • My Stories — stories you created.
  • Shared with me — stories other team members have shared with you.
You can switch between a grid view (thumbnail cards) and a list view, search by title, and group stories by ownership, date, or author.