Canvas is currently marked Beta in the product.
Building a canvas
Open Canvas in the left sidebar and create one. From there:- Add Item opens the user’s Favorites — every chart and SQL result they’ve saved. Anything already on the canvas is marked, so it can’t be added twice by accident.
- Tiles land on a responsive grid and can be dragged and resized. The layout is persisted as you go.
- Remove a tile at any time; removing it from the canvas does not delete the underlying favorite.

Live and snapshot
A Snapshot / Live switch in the header controls where every tile’s data comes from:- Snapshot — tiles render the rows captured when the favorite was saved. The numbers are frozen. A banner in the header makes this explicit: charts display data captured at save time, and shared links will show this frozen view.
- Live — tiles re-run their SQL against your warehouse when the canvas loads, so the numbers are current. Row-level security still applies, so a live tile shows each viewer only the data they’re entitled to.

Versions
Save version freezes the current layout and display mode as a numbered version. A dropdown in the header then lets anyone switch between Draft (the working copy) and any saved version. Viewing a saved version is read-only — you can look, but not rearrange — so a version you circulated stays exactly as circulated.
Revisiting the conversation behind a tile
Clicking a tile opens the Session Context sidebar with the conversation that produced that chart — the same sidebar described under Favorites. This is what separates a canvas from a static dashboard. A tile on a dashboard is a number with no story. A tile on a canvas carries its own provenance: the question that was asked, the agent’s reasoning, and the answer in full. And from the bottom of that sidebar the viewer can keep going:- Continue conversation — for the person whose conversation it was. The thread resumes with its full context.
- Fork conversation — for anyone else. The thread is cloned under their own identity so they can take the analysis further without touching the original.
Sharing a canvas
Share opens the sharing dialog, which controls two independent things: who inside your organization can open the canvas and what they can do with it, and your own link to it for people outside Upsolve.Roles
Everyone a canvas is shared with gets one of three roles:Who can open it
- People with access: people picked from a list of the creator’s project organization, each with a role. They start as viewers. A canvas can’t be shared with anyone outside that organization.
- Project organization: everyone in the creator’s project organization, with one role for all of them. No access leaves them out.
- Workspace: everyone in the workspace, as viewers. Only a builder can turn it on.
Your link
Every owner of a canvas can make a link of their own to it, for people who have no Upsolve account. A link carries its owner’s access and nothing more: whoever opens it sees the canvas exactly as that owner sees it. So a canvas with two owners can have two links, and each shows its own owner’s rows. What visitors see decides what a link does:- Live and Both need a passkey. A Snapshot link may have one too. A link with a passkey asks for it before showing anything; get it wrong and the canvas stays hidden, and repeated wrong guesses are throttled.
- A link shows a saved version of the canvas, never the canvas while you edit it. Pick the version when you make the link, and move it to a newer one when you’re ready. (A link made before links were per owner, with no version picked, shows the canvas as it stands until you pick one.)
- A link stops working the moment its owner stops being an owner of the canvas, or loses their access to the workspace. Deleting the link does the same.
- A link that replaced a public link with an expiry keeps it. Past that date it stops working, and Your link says so; delete it and make a new one to share the canvas again. A link made since has no expiry.
- You only ever see your own link. Builders can see who has a link to a canvas, and revoke any of them, but never open one.
- Let visitors ask AI adds a read-only AI chat beside the canvas on a Live or Both link. Visitors ask about the canvas or any chart on it and drill into the data, and nothing they do changes anything. The AI answers as you, so it can read any data you can, not only the charts on the canvas. That is why it is off until you turn it on. Visitors’ questions use your organization’s AI credits, and builders find them in Chat History as “Share link”.

Your own domain
By default links point atai-hub.upsolve.ai. Set a Custom Share Domain in Project Settings → Sharing to have Upsolve generate links on your own domain instead.

Embedding a canvas in your product
A canvas link can be dropped into your own application with a plain<iframe> — no DNS setup, and the viewer needs no Upsolve account, only the link’s passkey. See Canvas Iframe Embed for the markup, the ?hideHeader=1 parameter that strips the canvas chrome, and how the custom domain interacts with it.
Next steps
Canvas Iframe Embed
Put a canvas link inside your own product.
Chat History
See the conversations behind everything your users saved.