> For the complete documentation index, see [llms.txt](https://docs.euno.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.euno.ai/sources/business-intelligence/omni-integration/omni-integration-discovered-resources.md).

# Omni Integration Discovered Resources

## Overview

The Omni integration discovers the Omni account and its folders, the semantic layer (shared models, views, topics, dimensions, and measures), and the data analysis layer (workbooks, their query tabs, and dashboards). It discovers the following resources:

* Omni account (`omni_account`)
* Omni folder (`omni_folder`), including structural **Hub** and per-user **personal folder** containers
* Omni model (`omni_model`)
* Omni view (`omni_view`)
* Omni topic (`omni_topic`)
* Omni dimension (`omni_dimension`)
* Omni measure (`omni_measure`)
* Omni workbook (`omni_workbook`)
* Omni query (`omni_query`)
* Omni dashboard (`omni_dashboard`)
* User (`user`, when **Observe users** is enabled)
* User group (`user_group`, subtype `omni`, when **Observe groups** is enabled)

Omni URIs start with `omni.`. Account, Hub, and personal folder URIs include the Omni instance subdomain configured on the source.

## Resource hierarchy

```
Omni account
├── Omni model
│   ├── Omni view
│   │   └── Omni dimension / Omni measure
│   └── Omni topic
│       └── Omni dimension / Omni measure
└── Omni folder (Hub, personal folders, and nested folders)
    └── Omni workbook
        ├── Omni view (workbook-scoped)
        │   └── Omni dimension / Omni measure
        ├── Omni topic (workbook-scoped)
        │   └── Omni dimension / Omni measure
        ├── Omni query
        │   └── Omni dimension (query-level calculation)
        └── Omni dashboard
```

## Omni account (`omni_account`)

A single `omni_account` resource is observed for each configured Omni source, representing the top-level Omni organization.

| Property         | Type   | Description                       |
| ---------------- | ------ | --------------------------------- |
| `name`           | string | The organization or instance name |
| `type`           | string | Always `omni_account`             |
| `subtype`        | string | Always `omni_account`             |
| `external_links` | list   | Link to open the Omni instance    |

**URI pattern**

```
omni.account.<instance>
```

Example: `omni.account.acme`

## Omni folder (`omni_folder`)

Folders are organizational containers in Omni for organizing workbooks, and can be nested to create a hierarchy. Euno also observes a structural **Hub** folder and one **personal folder** per user under the account, so organization and restricted (personal) folder trees have a consistent parent in Euno.

| Property         | Type   | Description                                                                                                 |
| ---------------- | ------ | ----------------------------------------------------------------------------------------------------------- |
| `name`           | string | The folder name. `Hub` for the organization root, `<user name> personal folder` for a user's personal root. |
| `type`           | string | Always `omni_folder`                                                                                        |
| `subtype`        | string | Always `omni_folder`                                                                                        |
| `created_by`     | string | The name of the user who created the folder                                                                 |
| `owner`          | string | The folder owner (derived from the Omni owner metadata)                                                     |
| `external_links` | list   | Link to open the folder in Omni                                                                             |

**URI pattern**

```
Folder:           omni.folder.<folder_id>
Hub:              omni.account.<instance>.folder.hub
Personal folder:  omni.account.<instance>.folder.personal.<user_id>
```

Example: `omni.folder.3f2a9c1e-7b4d-4e8a-9c2f-1d5e6a7b8c9d`

## Omni model (`omni_model`)

Models are the semantic layer in Omni that provides business-friendly views of your data warehouse. They contain views and topics, and serve as the data source for workbooks. Euno observes shared models; workbook models are represented by the workbook-scoped views and topics under each workbook.

| Property              | Type      | Description                                                    |
| --------------------- | --------- | -------------------------------------------------------------- |
| `name`                | string    | The model name                                                 |
| `type`                | string    | Always `omni_model`                                            |
| `subtype`             | string    | Omni model kind (`SHARED`)                                     |
| `created_at`          | timestamp | The timestamp when the model was created                       |
| `updated_at`          | timestamp | The timestamp when the model was last modified                 |
| `database_technology` | string    | Warehouse technology for the model connection (when available) |

**URI pattern**

```
omni.model.<model_id>
```

Example: `omni.model.8c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f`

## Omni view (`omni_view`)

Views are defined within Omni shared models or workbooks and represent tables or logical structures with fields. They can reference database tables.

| Property  | Type   | Description        |
| --------- | ------ | ------------------ |
| `name`    | string | The view name      |
| `type`    | string | Always `omni_view` |
| `subtype` | string | Always `omni_view` |

**URI pattern**

```
Shared-model view:  omni.model.<model_id>.view.<view_name>
Workbook view:      omni.workbook.<workbook_id>.view.<view_name>
```

Example: `omni.model.8c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f.view.order_items`

## Omni topic (`omni_topic`)

Topics are business-friendly abstractions within Omni shared models or workbooks that group related views and fields for analysis.

| Property  | Type   | Description         |
| --------- | ------ | ------------------- |
| `name`    | string | The topic name      |
| `type`    | string | Always `omni_topic` |
| `subtype` | string | Always `omni_topic` |

**URI pattern**

```
Shared-model topic:  omni.model.<model_id>.topic.<topic_name>
Workbook topic:      omni.workbook.<workbook_id>.topic.<topic_name>
```

Example: `omni.model.8c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f.topic.orders`

## Omni dimension (`omni_dimension`)

Dimensions are fields within Omni views or topics, typically used for grouping and filtering in queries. Query-level calculations in a workbook query tab are also observed as dimensions, as children of the query.

| Property      | Type   | Description                                                                                                             |
| ------------- | ------ | ----------------------------------------------------------------------------------------------------------------------- |
| `name`        | string | The dimension name (label when provided, otherwise the field name). For query-level calculations, the calculation name. |
| `type`        | string | Always `omni_dimension`                                                                                                 |
| `subtype`     | string | Always `omni_dimension`                                                                                                 |
| `label`       | string | Display label from Omni (when provided)                                                                                 |
| `description` | string | Field description from Omni (when provided)                                                                             |

**URI pattern**

```
Shared-model field:  omni.model.<model_id>.<view_or_topic_name>.dimension.<field_name>
Workbook view field: omni.workbook.<workbook_id>.view.<view_name>.dimension.<field_name>
Workbook topic field: omni.workbook.<workbook_id>.topic.<topic_name>.dimension.<field_name>
Query calculation:   omni.workbook.<workbook_id>.query.<query_name>.dimension.<calculation_name>
```

Example: `omni.model.8c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f.order_items.dimension.status`

## Omni measure (`omni_measure`)

Measures are aggregatable fields within Omni views or topics, typically used for numeric summarization in queries.

| Property      | Type   | Description                                                      |
| ------------- | ------ | ---------------------------------------------------------------- |
| `name`        | string | The measure name (label when provided, otherwise the field name) |
| `type`        | string | Always `omni_measure`                                            |
| `subtype`     | string | Always `omni_measure`                                            |
| `label`       | string | Display label from Omni (when provided)                          |
| `description` | string | Field description from Omni (when provided)                      |

**URI pattern**

```
Shared-model field:   omni.model.<model_id>.<view_or_topic_name>.measure.<field_name>
Workbook view field:  omni.workbook.<workbook_id>.view.<view_name>.measure.<field_name>
Workbook topic field: omni.workbook.<workbook_id>.topic.<topic_name>.measure.<field_name>
```

Example: `omni.model.8c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f.order_items.measure.total_revenue`

## Omni workbook (`omni_workbook`)

In Omni, workbooks are the main organization unit for queries. A workbook can either have a dashboard or not. In Euno, workbooks are modeled as containers whose children are query tabs, workbook-scoped views and topics, and at most one dashboard.

| Property         | Type      | Description                                                  |
| ---------------- | --------- | ------------------------------------------------------------ |
| `name`           | string    | The workbook name                                            |
| `type`           | string    | Always `omni_workbook`                                       |
| `subtype`        | string    | Always `omni_workbook`                                       |
| `description`    | string    | The workbook description (when provided)                     |
| `updated_at`     | timestamp | The timestamp when the workbook was last modified            |
| `created_by`     | string    | Display name of the creating user (from Omni owner metadata) |
| `owner`          | string    | The workbook owner (derived from the Omni owner metadata)    |
| `external_links` | list      | Link to open the workbook in Omni                            |
| `tags`           | list      | Omni labels, excluding verified/certification labels         |
| `meta`           | object    | Certification metadata when Omni verified labels are loaded  |

**URI pattern**

```
omni.workbook.<workbook_id>
```

Example: `omni.workbook.836a1948`

## Omni query (`omni_query`)

Queries are individual tabs within an Omni workbook. Each query tab represents a pivot-table or SQL-based analysis.

| Property         | Type   | Description                    |
| ---------------- | ------ | ------------------------------ |
| `name`           | string | The query tab name             |
| `type`           | string | Always `omni_query`            |
| `subtype`        | string | Always `omni_query`            |
| `external_links` | list   | Link to open the query in Omni |

**URI pattern**

Characters in the query tab name other than letters, digits, `-`, `_`, and `.` are encoded.

```
omni.workbook.<workbook_id>.query.<encoded_query_name>
```

Example: `omni.workbook.836a1948.query.orders_by_status`

## Omni dashboard (`omni_dashboard`)

Dashboards are visualizations in Omni that display charts, tables, and KPIs. They are observed as children of workbooks when the workbook has a dashboard.

| Property         | Type   | Description                                                 |
| ---------------- | ------ | ----------------------------------------------------------- |
| `name`           | string | The workbook name followed by `Dashboard`                   |
| `type`           | string | Always `omni_dashboard`                                     |
| `subtype`        | string | Always `omni_dashboard`                                     |
| `description`    | string | The dashboard description (when provided)                   |
| `external_links` | list   | Link to open the dashboard in Omni                          |
| `tags`           | list   | Omni labels, excluding verified/certification labels        |
| `meta`           | object | Certification metadata when Omni verified labels are loaded |

{% hint style="warning" %}
Dashboard lineage (dashboard → query) relies on an unstable Omni API endpoint (`/api/unstable/documents/{id}/export`). This endpoint may change or be removed by Omni in the future, which could temporarily affect dashboard lineage until an alternative is available.
{% endhint %}

**URI pattern**

```
omni.workbook.<workbook_id>.dashboard
```

Example: `omni.workbook.836a1948.dashboard`

## User (`user`)

Users are discovered when **Observe users** is enabled in the Omni source configuration.

| Property        | Type   | Description                                   |
| --------------- | ------ | --------------------------------------------- |
| `name`          | string | User's email address (used as the identifier) |
| `type`          | string | Always `user`                                 |
| `email_address` | string | User's email address                          |
| `label`         | string | User's display name from Omni                 |
| `native_id`     | string | User ID from Omni                             |

**URI pattern**

```
user_account.<email address, with "@" replaced by "_at_">
```

Example: `user_account.jane.doe_at_acme.com`

## User group (`user_group`)

User groups are discovered when **Observe groups** is enabled in the Omni source configuration.

| Property    | Type   | Description                                   |
| ----------- | ------ | --------------------------------------------- |
| `name`      | string | Display name of the group                     |
| `type`      | string | Always `user_group`                           |
| `subtype`   | string | Always `omni` for groups discovered from Omni |
| `native_id` | string | Group ID from Omni                            |

**URI pattern**

```
user_group.<group_id>
```

Example: `user_group.5a6b7c8d-9e0f-1a2b-3c4d-5e6f7a8b9c0d`

## Relationships

Each row is one relationship edge, written in the canonical direction for its family. Use the predicate in each heading to search for these relationships in EQL.

### Containment (`has parent` / `has child`)

| Source type      | Relationship | Target type     | Notes                                                                                              |
| ---------------- | ------------ | --------------- | -------------------------------------------------------------------------------------------------- |
| `omni_folder`    | has parent   | `omni_account`  | The structural **Hub** folder and each user's personal folder                                      |
| `omni_folder`    | has parent   | `omni_folder`   | Organization folders under the Hub, restricted folders under a personal folder, and nested folders |
| `omni_model`     | has parent   | `omni_account`  |                                                                                                    |
| `omni_view`      | has parent   | `omni_model`    | Shared-model views                                                                                 |
| `omni_view`      | has parent   | `omni_workbook` | Workbook-scoped views                                                                              |
| `omni_topic`     | has parent   | `omni_model`    | Shared-model topics                                                                                |
| `omni_topic`     | has parent   | `omni_workbook` | Workbook-scoped topics                                                                             |
| `omni_dimension` | has parent   | `omni_view`     |                                                                                                    |
| `omni_dimension` | has parent   | `omni_topic`    |                                                                                                    |
| `omni_dimension` | has parent   | `omni_query`    | Query-level calculations                                                                           |
| `omni_measure`   | has parent   | `omni_view`     |                                                                                                    |
| `omni_measure`   | has parent   | `omni_topic`    |                                                                                                    |
| `omni_workbook`  | has parent   | `omni_folder`   |                                                                                                    |
| `omni_workbook`  | has parent   | `omni_account`  | When the workbook's folder is not observed                                                         |
| `omni_query`     | has parent   | `omni_workbook` |                                                                                                    |
| `omni_dashboard` | has parent   | `omni_workbook` | A workbook has at most one dashboard child                                                         |

### Lineage (`has upstream` / `has downstream`)

| Source type      | Relationship | Target type  | Notes                                                                                                                                                         |
| ---------------- | ------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `omni_view`      | has upstream | `table`      | View SQL references warehouse tables. Resolved for Snowflake connections when a Snowflake account identifier is configured and the table is already observed. |
| `omni_topic`     | has upstream | `omni_view`  | Topics include base and joined views                                                                                                                          |
| `omni_workbook`  | has upstream | `omni_model` | When linked to a backing shared model                                                                                                                         |
| `omni_query`     | has upstream | `omni_view`  | Query tabs depend on semantic resources; warehouse tables are reached through the referenced views' lineage                                                   |
| `omni_query`     | has upstream | `omni_topic` |                                                                                                                                                               |
| `omni_dashboard` | has upstream | `omni_query` | Dashboard tiles depend on query tabs                                                                                                                          |

Direct query-to-model lineage (`omni_query` to `omni_model`) is not observed.

### Field-level lineage (`has upstream_fields` / `has downstream_fields`)

| Source type      | Relationship         | Target type      | Notes                                                                                                                  |
| ---------------- | -------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `omni_dimension` | has upstream\_fields | `column`         | View fields point at warehouse columns when observed                                                                   |
| `omni_dimension` | has upstream\_fields | `omni_dimension` | Topic-scoped fields point at their definition-view fields; query-level calculations point at the fields they reference |
| `omni_dimension` | has upstream\_fields | `omni_measure`   | Query-level calculations that reference measures                                                                       |
| `omni_measure`   | has upstream\_fields | `column`         | View fields point at warehouse columns when observed                                                                   |
| `omni_measure`   | has upstream\_fields | `omni_measure`   | Topic-scoped fields point at their definition-view fields                                                              |
| `omni_query`     | has upstream\_fields | `omni_dimension` | Including query-level calculations                                                                                     |
| `omni_query`     | has upstream\_fields | `omni_measure`   |                                                                                                                        |

### Membership (`has group` / `has member`)

| Source type  | Relationship | Target type   | Notes                                                                    |
| ------------ | ------------ | ------------- | ------------------------------------------------------------------------ |
| `user`       | has group    | `omni_folder` | From folder permission metadata, with the permission role when available |
| `user_group` | has group    | `omni_folder` | From folder permission metadata, with the permission role when available |
| `user`       | has group    | `user_group`  | From SCIM group memberships when **Observe groups** is enabled           |

{% hint style="info" %}
The Omni crawler does **not** currently observe model-level user or group memberships.
{% endhint %}

{% hint style="info" %}
`is used by` relationships on `omni_workbook` and `omni_dashboard` come from the separate [Omni Usage integration](/sources/business-intelligence/omni-integration/omni-usage-setup.md), not from the Omni crawler itself. See [Omni Usage Data](/using-euno/usage-optimization/omni-usage-data.md).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.euno.ai/sources/business-intelligence/omni-integration/omni-integration-discovered-resources.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
