> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Importing Claude dashboards as apps

> Prototype a dashboard in Claude with your Omni semantic model, then send it to Omni as an app that you can continue to iterate on.

Prototype a dashboard in [Claude Dashboards](https://support.claude.com/en/articles/17454700-get-started-with-claude-dashboards) with your Omni data, then send it to Omni as an [app](/visualize-present/apps) that you can continue to iterate on.

[Importing a Claude dashboard into Omni](https://fast.wistia.net/embed/iframe/b6nrrsvr28)

## How it works

You do two things: ask Claude to build the dashboard, and then send it to Omni. Claude and Omni do the rest through the Omni MCP server. The full flow is:

1. **You**: Ask Claude (in the desktop app or on `claude.ai`) to build a dashboard using your Omni data.
2. **Claude**: Uses the [Omni MCP server's tools](/ai/mcp/tools.md) to query your Omni data.
3. **Claude**: Uses the Omni query results to build a dashboard artifact.
4. **You**: Export the dashboard, sending it to **Omni Analytics**. See [Exporting a dashboard from Claude](#export-from-claude) for the exact steps.
5. **Claude**: Uses the same MCP server connection to send the dashboard to Omni.
6. **Omni**: Rebuilds the dashboard as an app. As part of the process, Omni converts each query in the dashboard to a query on your semantic model.

For more details, including how Omni selects a model, see [Common questions](#common-questions).

## Requirements

To import a Claude dashboard, you'll need:

* **A Claude plan that includes Dashboards.** See the [Claude documentation](https://support.claude.com/en/articles/17454700-get-started-with-claude-dashboards) for more information.
* **To have the following enabled in your Omni organization**:
  * Settings required to use the [Omni MCP server](/ai/mcp/index#requirements)
  * [AI Hub > MCP > Agentic capabilities](/ai/settings/mcp.md#agentic)
  * [Settings > Apps > Enable apps](/administration/settings/app-policy.md#enable-apps), if you want to import the dashboard as an app. Otherwise, Claude will create an Omni [dashboard](/visualize-present/dashboards).
* **Querier permissions or higher on the model Claude uses to build the dashboard**. If your organization uses [custom roles](/administration/users/custom-roles.md), you'll need the **Use Omni Agent**, **Use workbooks**, and **Create apps** permissions.
* **A configured Omni MCP connection in Claude**. See [Using the MCP server in Claude Desktop](/ai/mcp/claude-desktop.md) to learn how to complete the setup.

  **Note**: Your Omni MCP connection can't have an `X-MCP-User-ID` header. The import tools always act as the connection's own user.

## Exporting a dashboard from Claude

> [!NOTE]
>
> **Don't export a dashboard more than once**. Omni creates a new app each time you export a dashboard from Claude, even if you already exported it. Existing apps aren't updated from subsequent exports.

If you haven't already, [connect Claude to Omni's MCP server](/ai/mcp/claude-desktop.md#setup). Then:

1. In Claude, ask for a dashboard about your Omni data.
2. Open the dashboard that you want to send.
3. Click the **Share** button on the dashboard, then **Export**.
4. In the **Send to** section, click **Omni Analytics**.

Claude starts the import and checks its status until the import job is complete. When the job is done, Claude returns a link to the app and, if you have access, a link to the [import job](#import-job) in Omni.

When Omni finishes building, it publishes the app and saves it to your [My documents folder](/content/navigate.md). From here, you can:

* Use the Omni Agent to [style the app](/visualize-present/apps/styling.md). Claude doesn't include styles in the exported dashboard file, so you'll need to apply styling in Omni.
* Configure navigation, embedding, and other functionality in the [app's settings](/visualize-present/apps/settings.md)
* [Share the app](/share.md) with your organization

## Reviewing the import in Omni

> [!NOTE]
>
> You can see only your own import jobs. Organization Admins can see the import jobs of all users.

To see the details of the import job, navigate to **Settings > Imports** and click the job. Use this page to open the app, view the Omni Agent conversation that created the app, and dive into how Omni translated each of the import's data sources.

If Omni couldn't exactly translate something in the export, the **Recognized a Claude export** section will show the list of issues and how it was handled:

![Issues that Omni couldn't translate when building the app](https://mintcdn.com/omni-e7402367/_qkgMpUq-o3YqPir/visualize-present/images/claude-export-import-table.png?fit=max\&auto=format\&n=_qkgMpUq-o3YqPir\&q=85\&s=4d59f7d270475c966e029cde2eaf3d3a)

Issues that Omni couldn't translate when building the app

Each row in the table describes a source, its status (**Approximated** or **Sent to AI**), and the reason for the status.

The **What the SQL parser found** section shows the sources Omni translated without issue and how the app gets that source's data:

| Status | Description |
| - | - |
| **Live query** | The SQL parsed and the source reads live data from the model. |
| **Query from question** | The source asked Omni a question, not SQL. The import writes the query from that question. |
| **Snapshot only** | The SQL was rejected, so the source shows its snapshot values as static data. |

For more details, see [How does Omni verify the data in the app?](#query-verification)

## Limitations

* **Not supported for embedded instances.** Embed users can't import Claude dashboards.
* **Each export from Claude creates a new app.** If you send the same dashboard again, Omni creates a second app. Omni doesn't update the app from the earlier export.
* **Claude doesn't include styles in the export.** To style the app, see [Styling apps](/visualize-present/apps/styling.md).
* **Uploaded files aren't imported.** If the dashboard uses data from a file that you uploaded to Claude, Omni rebuilds that part from the dashboard's static data.
* **Size limits:**
  * The dashboard file can be a maximum of 16 MB.
  * The dashboard can have a maximum of 50 data sources.
  * If a dashboard page is very large or very complex, Omni imports the page as a static snapshot.
* **The data must be on the model's connection.** If the dashboard's queries use data from a different database, Omni refuses the import.

## Troubleshooting

| What you see | What it means |
| - | - |
| Omni creates a dashboard instead of an app | The [Enable apps](/administration/settings/app-policy.md#enable-apps) wasn't enabled when Claude started building the dashboard. |
| *Claude dashboard imports are not available in embeds* error | Embed users can't import Claude dashboards. |
| *AI credits are over their limit, so imports are paused* error | Your organization's AI credits are over their limit. Contact an Organization Admin. |
| *Permission to create apps on this model denied* error | You don't have the **Create apps** permission on the model. Contact an Organization Admin. |
| *Permission to import into this model denied* error | You don't have the [permissions](#requirements) to import into the model. Restricted Queriers can't import dashboards. |
| *The dashboard link has expired or the download token does not match it* error | The link to the dashboard file works one time and expires after approximately 10 minutes. Send the dashboard again from Claude. |
| *Omni needs to know which model…* error | You can explore more than one model. Tell Claude which model to use, or set the `X-MCP-Model-ID` header on the connection. |
| *The import finished without creating an app* error | The import job didn't build an app. Open the job in **Settings > Imports** for details. |

## Common questions

> **How does Omni convert a Claude dashboard to an app?**
>
> When you send a Claude dashboard to Omni, Claude calls the [`import-claude-dashboard-from-url`](/ai/mcp/tools#import-claude-dashboard-from-url) tool on Omni's MCP server and gives Omni a link to the dashboard file. The link works only once and expires after approximately 10 minutes.
>
> Next, Omni does the following:
>
> **1. Parses the Claude dashboard file**
>
> Omni reads the dashboard file and finds each data source in the dashboard.
>
> **2. Converts data sources to Omni queries**
>
> Omni converts each data source to an Omni query:
>
> * **SQL** goes through Omni's SQL parser. If the parser can't convert a query, the Omni Agent rewrites it. Omni makes a maximum of four attempts for each query.
> * **Queries from Omni's [`runQuery`](/ai/mcp/tools#run-query) tool** are planned on the model.
> * **Data from Omni's [`getData`](/ai/mcp/tools#get-data) or [`askOmni`](/ai/mcp/tools#ask-omni) tools** keep only the question that was asked. Omni generates a new query from that question.
>
> If required to translate a query, Omni will create views, measures, and dimensions and save them to the app's [workbook model](/modeling.md).
>
> **3. Builds the app**
>
> Lastly, the Omni Agent builds an app that uses the translated queries.

> **Does the import change my shared model?**
>
> No. If Omni needs to create views, measures, or dimensions to convert a query, Omni saves them to the app's [workbook model](/modeling.md). The shared model doesn't change unless you [promote the changes](/modeling/develop/promotion.md#reviewing-and-promoting-workbook-changes) out of the workbook.

> **How does Omni select the model for the app?**
>
> Omni selects the model for the app in this order:
>
> 1. The model in the connection's `X-MCP-Model-ID` header, if the connection has one
> 2. The model that Claude specifies in the request
> 3. The only shared model that you can explore
>
> If you can explore more than one model and Claude doesn't specify one, Omni returns a list of the models. Claude can then send the dashboard again with one of the models.

> **How does Omni verify the data in the app?**
>
> Omni never runs the dashboard's SQL directly - every query runs through the semantic model, with your permissions. This means that row-level security and access grants apply.
>
> To verify the result, Omni compares the numbers from each query with the numbers in the dashboard that Claude sent.

> **Can I export a dashboard if apps aren't enabled in Omni?**
>
> Yes. If apps aren't enabled in your Omni organization, Claude will use the `askOmni` MCP tool to create a [dashboard](/visualize-present/dashboards) instead of an app.
>
> **Note**: Import jobs that create dashboards don't currently display in [**Settings > Imports**](#import-job).

## Next steps

* [Apps](/visualize-present/apps) - Learn about Omni apps
* [Styling apps](/visualize-present/apps/styling.md) - Style the app that Omni built
* [MCP server tools](/ai/mcp/tools.md#claude-dashboard-import) - Read about the import tools
* [Using the MCP server in Claude Desktop](/ai/mcp/claude-desktop.md) - Connect Claude to Omni


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.