Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions guides/ai-agents/verified-answers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,19 @@ Mark AI-generated charts and dashboards as verified answers to help your agent l
/>
</Frame>

## Verified answers become verified content

Verifying an answer doesn't only train the agent. If the answer has been **saved as a chart or dashboard**, verifying it also marks that saved chart or dashboard as [verified content](/guides/verified-content) — it gets the green verified badge and shows up everywhere trusted content does:

- The verified badge on the chart or dashboard, in listings, search, and space overviews
- The [`list_verified_content`](/references/integrations/lightdash-mcp) MCP tool, so external agents can discover and build on it
- In-product AI retrieval, so agents prefer it when answering similar questions

Removing verification from the answer removes it from both places. A couple of things to keep in mind:

- **Save before you verify.** An answer that only exists inside the conversation stays an agent example — it won't get a badge or appear in MCP until it's saved as a chart or dashboard. Save it first, then verify.
- **The link is one-way.** Verifying an answer promotes its saved chart or dashboard to verified content. Verifying a chart or dashboard directly (for example, from project settings) doesn't reach back and mark the originating answer.

## Managing verified answers

### Verifying an answer
Expand Down
62 changes: 45 additions & 17 deletions guides/verified-content.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ Each verified item gets a green checkmark badge that shows who verified it and w

## Who can verify content

Only organization admins and project admins can verify or unverify charts and dashboards. All other users can see which content is verified, but cannot change verification status themselves.
Organization and project admins and developers can verify or unverify charts and dashboards. Users on other built-in roles (editors, interactive viewers, viewers, members) can see which content is verified, but cannot change verification status themselves. If you use [custom roles](/references/workspace/custom-roles), grant the **Manage content verification** (`manage:ContentVerification`) scope to any role that should be able to verify or unverify content.

## Verifying a chart or dashboard

Admins can verify content directly from the chart or dashboard, or from the verification panel in project settings.
Admins and developers can verify content directly from the chart or dashboard, or from the verification panel in project settings.

Admins also have a dedicated verification panel under **Project settings** that lists all verified content and provides a central place to manage verification across the project.
They also have a dedicated verification panel under **Project settings** that lists all verified content and provides a central place to manage verification across the project.

<Frame>
<img src="/images/guides/verified-content/admin-panel.png" alt="Verified content panel in project settings showing a list of verified charts and dashboards with their space and verifier"/>
Expand Down Expand Up @@ -57,15 +57,51 @@ Verification stays atomic per item: a chart inside a verified dashboard is only

You don't need to configure anything for this — any chart or dashboard you've verified is automatically preferred by every AI agent in the project. To benefit, verify the canonical charts and dashboards you want your team (and your agents) to start from.

### External agents and MCP

Verified content is also exposed to external agents through the [Lightdash MCP](/references/integrations/lightdash-mcp) `list_verified_content` tool. This lets tools like Claude, Cursor, or your own agents discover the charts and dashboards your team trusts and build on them instead of guessing.

The tool returns both admin-verified content and [verified answers](/guides/ai-agents/verified-answers) that have been saved as charts or dashboards, deduplicated into a single list. Each item includes enough signal for an agent to rank and drill into it — `description`, `views`, and `lastUpdatedAt`, plus `chartKind` and `exploreName` for charts. As with in-product retrieval, verification is an absolute trump: a verified item is preferred over a more relevant but unverified one, with relevance order preserved within each group.

<Info>
This is separate from [verified answers](/guides/ai-agents/verified-answers), where users mark answers an AI agent produced as good examples. Both signals are used by the agent today and will be unified in a single trusted-content stream in a future release.
This works hand in hand with [verified answers](/guides/ai-agents/verified-answers), where users mark answers an AI agent produced as good examples. When one of those answers is saved as a chart or dashboard, verifying it also makes it verified content — see [Verified answers and verified content](#verified-answers-and-verified-content) below.
</Info>

## Verification is automatically removed when someone else edits the content
## What happens to verification when content is edited

Verification is tied to the exact state of the content at the time it was verified, so editing a verified chart or dashboard puts its badge at risk. To make sure the badge never disappears silently, Lightdash shows a confirmation dialog whenever you save changes to verified content. What you can do in that dialog depends on whether you're allowed to preserve verification:

- **If you can verify content** (you have verify permission, or you're the original verifier), you're offered the choice to keep the badge as part of saving. Choosing **Save & verify** re-approves the current version and keeps the badge (updating the verification timestamp to your save); choosing **Save** drops it.
- **If you can't verify content** (for example, an editor saving a chart verified by someone else), saving removes the badge. You're warned first and can cancel, but you can't keep it — someone with verify permission then needs to review the updated version and re-verify it.

This guarantees a verified badge always reflects content that someone with verify permission has explicitly approved in its current form.

### What you see when saving verified content

The confirmation dialog comes in two variants:

- **If you can keep the badge** (verify permission or original verifier), you get a **Keep this verified after saving?** prompt with two options: **Save** drops the badge, and **Save & verify** keeps it and updates the verification timestamp to your save. Note there's no automatic retention — even the original verifier keeps the badge only by choosing **Save & verify**.
- **If you cannot keep the badge**, you get a warning: *"Saving your changes will remove its verified status until someone verifies it again."* You can **Cancel** to back out, or **Save anyway** to save and drop the badge.

For example, if an editor on your team edits the **Ecom sales overview** dashboard (verified by a developer), they'll see the warning and can decide whether to save and drop the badge or cancel and let the developer make the change instead.

Verification is tied to the exact state of the content at the time it was verified. If someone other than the original verifier edits a verified chart or dashboard, the verification badge is automatically removed and an admin will need to review the updated version and re-verify it.
## Verified answers and verified content

If the original verifier edits their own verified content, the badge stays in place — saving the edit counts as re-approving the new version, and the verification timestamp is updated to reflect the latest change. This keeps verifiers from having to re-verify their own small tweaks while still guaranteeing that a verified badge reflects content an admin has explicitly approved in its current form.
Lightdash has two places you can verify something, and they now feed into each other:

- **Verified content** — a saved chart or dashboard that someone with verify permission has approved. It gets the green badge and everything described on this page: listings, search, content-as-code, MCP, and in-product AI retrieval.
- **[Verified answers](/guides/ai-agents/verified-answers)** — an answer an AI agent produced that a user marks as a good example inside a conversation. It trains that agent (few-shot examples, suggested questions, Slack replies).

**When you verify an AI answer that has been saved as a chart or dashboard, it also becomes verified content** — the same green badge appears everywhere, and it shows up in search, content-as-code, and the `list_verified_content` MCP tool alongside admin-verified content. Removing verification from the answer removes it from both places too.

A few things worth knowing about how the two interact:

- **Only saved answers bridge.** An answer that lives only inside an agent conversation stays an agent example — it won't get a badge or appear in MCP until it's saved as a chart or dashboard. Save it first, then verify it, to make it verified content.
- **The link is one-way.** Verifying an AI answer promotes the saved chart or dashboard to verified content. Verifying a chart or dashboard directly does *not* reach back and mark the originating agent answer.

### Still on the way

One piece of the unified experience isn't here yet: using verified content as templates when the AI agent generates brand-new charts and dashboards. (Once a saved answer is verified, it already flows through content-as-code, search, and MCP like any other verified content.)

## Verification in charts and dashboards as code

Expand Down Expand Up @@ -108,14 +144,6 @@ The "absent = leave alone" semantic means that downloading and re-uploading a YA

### Permissions

Only users with permission to verify content (organization admins and project admins) can change verification state via the CLI. If you upload a YAML containing `verified: true` or `verified: false` but you don't have verify permissions, the upload still succeeds — the rest of your changes go through, but the verification field is silently skipped and a warning is logged on the server.

This means CI pipelines run by non-admin deployers (for example, with the `developer` role) won't fail just because a YAML file contains a `verified` field they can't act on.

## Coming soon: unified verified content

Today, admin-verified charts and dashboards live in a separate stream from [verified answers](/guides/ai-agents/verified-answers) (the AI-agent-generated content that users mark as verified inside an AI agent conversation). We're working on bringing them together so that any verified piece of content, wherever it was verified, is treated as a single trusted signal across:
Only users with permission to verify content (admins, developers, and any custom role granted `manage:ContentVerification`) can change verification state via the CLI. If you upload a YAML containing `verified: true` or `verified: false` but you don't have verify permissions, the upload still succeeds — the rest of your changes go through, but the verification field is silently skipped and a warning is logged on the server.

- The `list_verified_content` MCP tool returning AI-verified artifacts alongside admin-verified ones
- Content-as-code YAML round-trip for AI-verified content
- Using verified content as templates when the AI agent generates new charts and dashboards
This means CI pipelines run by deployers without verify permission (for example, a custom role that has `manage:ContentAsCode` but not `manage:ContentVerification`) won't fail just because a YAML file contains a `verified` field they can't act on.
1 change: 1 addition & 0 deletions references/workspace/roles.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Project Admins can invite users to their project and assign users or [groups](/r
| Create and edit scheduled deliveries | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> |
| Create and edit Syncs | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> |
| Create and edit charts and dashboards | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> |
| Verify and unverify charts and dashboards | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> |
| Use the SQL runner | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> |
| Create and explore custom SQL dimensions | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> |
| Create virtual views | <Icon icon="square-check" iconType="solid" /> | <Icon icon="square-check" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> | <Icon icon="xmark" iconType="solid" /> |
Expand Down
Loading