Skip to main content
A Canvas is a board your end users build for themselves out of the answers they’ve saved. It is the point where a chat agent starts behaving like a dashboard product — except nobody had to specify the dashboard in advance, and nobody had to build it for them.
Canvas is currently marked Beta in the product.

Building a canvas

Open Canvas in the left sidebar and create one. From there:
  1. 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.
  2. Tiles land on a responsive grid and can be dragged and resized. The layout is persisted as you go.
  3. Remove a tile at any time; removing it from the canvas does not delete the underlying favorite.
Because a canvas is assembled from favorites, and favorites come from conversations, a canvas is only ever made of answers the user has already seen and decided were worth keeping.
The Add Item picker open over a canvas, listing saved favorites with the ones already placed marked as added

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.
Snapshot is right for a board that documents a moment — a month-end review, an incident write-up. Live is right for a board someone checks every Monday.
A canvas with several chart tiles arranged on a grid, and a header carrying the version dropdown, Save version, the Snapshot and Live switch and Add Item

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.
The canvas version dropdown open, listing the working draft above several saved versions with their timestamps

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.
So a colleague who opens a shared canvas, sees a number that surprises them, and wants to drill in doesn’t have to start from scratch or go and find whoever built the board. They open the tile, read how the number was produced, fork the conversation, and ask their own follow-up.

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.
These combine. A canvas can be shared with the workspace, with its project organization as editors and with one colleague as an owner at the same time, and each person gets the highest role any of them gives. A person a canvas was shared with sees their role on its card. 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”.
A canvas link prompting for a passkey before the canvas will load

Your own domain

By default links point at ai-hub.upsolve.ai. Set a Custom Share Domain in Project Settings → Sharing to have Upsolve generate links on your own domain instead.
The Canvas Share Domain setting in Project Settings, with a live preview of the resulting link

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.