> 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/sigma-impressions-integration.md).

# Sigma Impressions

Euno can observe impression data for Sigma workbooks and elements by reading CSV exports that Sigma writes to cloud storage. This helps you identify popular workbooks, find underused content, and understand who is actively using Sigma.

{% hint style="info" %}
**Prerequisite**: Sigma Impressions requires the [Sigma integration](/sources/business-intelligence/sigma-integration.md) to also be set up. The Sigma integration discovers workbooks and elements in Euno; the Sigma Impressions integration then associates exported impression data with those existing resources.
{% endhint %}

For details on the usage properties observed (for example `total_impressions_14d` and `used`), see [Sigma Impressions Data](/using-euno/usage-optimization/sigma-impressions-data.md).

## Overview

Sigma Impressions is an integration that periodically reads CSV files from a configured `gs://`, `s3://`, or `azure://` prefix, converts each row to an impression event, and aggregates those events onto Sigma workbooks and elements.

This integration is intentionally separate from the main Sigma integration:

* **Sigma** discovers the metadata and lineage for workbooks, data models, and elements.
* **Sigma Impressions** reads usage exports and enriches the discovered Sigma resources with impression metrics.

## Step 1: Set up the Sigma integration in Euno

If you have not already done so, follow the [Sigma integration setup guide](/sources/business-intelligence/sigma-integration.md) first.

{% hint style="warning" %}
Without the Sigma integration, Euno has no `sigma_workbook`or `sigma_workbook_element` resources to attach the impression data to.
{% endhint %}

## Step 2: Configure Sigma to export usage data

Sigma's audit-log export feature writes CSV files to cloud storage. Only a Sigma Admin can configure this.

High-level workflow in Sigma:

1. Open the **Sigma Audit Logs** connection.
2. Save the relevant audit-log table or workbook page element as a workbook.
3. Configure a scheduled export to **Cloud Storage**.
4. Point that export at a dedicated prefix in **GCS**, **S3**, or **Azure Blob Storage**.
5. Make sure Sigma creates a new file on each run instead of overwriting previous files.

Sigma documentation for this export flow:

* [Export audit log data to cloud storage](https://help.sigmacomputing.com/docs/export-audit-log-data-to-cloud-storage)
* [Manage an audit logs storage integration](https://help.sigmacomputing.com/docs/manage-an-audit-logs-storage-integration)
* [Audit log events and metadata](https://help.sigmacomputing.com/docs/audit-log-events-and-metadata)

## Step 3: Prepare an Euno-compatible export

Euno expects the exported CSV to contain the following columns:

| Column            | Required | Description                                                              |
| ----------------- | -------- | ------------------------------------------------------------------------ |
| `request_time`    | Yes      | Timestamp of the impression event                                        |
| `user_email`      | Yes      | Email of the Sigma user who viewed the resource                          |
| `workbook_url_id` | Yes      | Sigma workbook URL ID                                                    |
| `element_id`      | Optional | Sigma element ID, if the row should map to a specific element            |
| `count`           | Optional | Number of impressions represented by the row. Defaults to `1` if omitted |

Euno matches headers case-insensitively and also accepts a few common aliases, but using the exact names above is strongly recommended.

### Recommended workbook/export shape

Create a Sigma workbook or view that produces one row per impression, with:

* a timestamp column
* a user email column
* the workbook URL ID
* the element ID when available
* an optional count column if your export pre-aggregates rows

If your export mixes workbook-level and element-level rows:

* rows **with** `element_id` are attached to `sigma_element`
* rows **without** `element_id` are attached to `sigma_workbook`

## Step 4: Grant Euno read access to the export location

### Option A: Google Cloud Storage

Recommended approach:

1. Create or choose a dedicated bucket or prefix for Sigma audit-log exports.
2. Configure Sigma's audit-log storage integration to write to that location.
3. Grant **read access** on that bucket/prefix to Euno's runtime service account.

At minimum, Euno needs permission to:

* list objects in the configured prefix
* read the exported CSV objects

### Option B: Amazon S3

Recommended approach:

1. Create or choose a dedicated bucket/prefix for the exports.
2. Configure Sigma's audit-log storage integration to write to that location.
3. Create a dedicated read-only IAM principal for Euno.
4. Give it least-privilege access to:
   * `s3:ListBucket` on the bucket (scoped to the export prefix)
   * `s3:GetObject` on the exported files
5. Store the credentials in the Euno Sigma Impressions integration.

{% hint style="info" %}
You can also use temporary AWS credentials (`aws_access_key_id`, `aws_secret_access_key`, `aws_session_token`) if that fits your security model better.
{% endhint %}

### Option C: Azure Blob Storage

Recommended approach:

1. Create or choose a dedicated container/prefix for the exports, and configure Sigma's audit-log storage integration to write to that location.
2. Give Euno read access using **one** of the following methods:

**Method 1 — Container-scoped SAS token** (simplest):

* In the Azure portal, open the container → **Shared access tokens**.
* Grant **Read** and **List** permissions, set a start/expiry, and click **Generate SAS token and URL**.
* Copy the **Blob SAS token** (the `sv=...&sig=...` query string) — this is what you paste into Euno.

{% hint style="info" %}
A SAS token is a bearer credential with an expiry. To make it revocable without rotating the account key, generate it against a container **stored access policy**.
{% endhint %}

**Method 2 — Microsoft Entra service principal** (RBAC-based, no shared token):

* In **Microsoft Entra ID → App registrations**, register an app and create a **client secret** (copy the secret **Value**, shown only once).
* Assign the app **Storage Blob Data Reader** on the container: container → **Access Control (IAM) → Add role assignment**. Creating role assignments requires **Owner** or **User Access Administrator** on the scope; role propagation can take a few minutes.
* From the app's **Overview**, you'll need the **Directory (tenant) ID**, the **Application (client) ID**, and the client **secret Value**.

At minimum, Euno needs permission to **list** objects in the configured prefix and **read** the exported CSV objects.

## Step 5: Add Sigma Impressions in Euno

1. Go to the **Sources** page in Euno.
2. Click **Add New Source** and select **Sigma Impressions**.
3. Configure:

| Configuration             | Description                                                                                                                        |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Name**                  | A name for this integration (for example `Sigma Impressions - Production`)                                                         |
| **Bucket URI**            | Prefix where Sigma writes the CSV files: `gs://...`, `s3://...`, or `azure://<account>.blob.core.windows.net/<container>/<prefix>` |
| **Storage provider**      | Selects which credential fields are shown; inferred from the Bucket URI scheme                                                     |
| **Days back to look**     | How many days of files Euno should scan on each run. Maximum: `6`                                                                  |
| **AWS Access Key ID**     | Optional. Needed only for `s3://` if Euno cannot use ambient AWS credentials                                                       |
| **AWS Secret Access Key** | Optional. Needed only for `s3://` if Euno cannot use ambient AWS credentials                                                       |
| **AWS Session Token**     | Optional. Use when providing temporary AWS credentials                                                                             |
| **AWS Region**            | Optional region override for S3 access                                                                                             |
| **Azure auth method**     | For `azure://`: choose **SAS token** or **Service principal (Microsoft Entra ID)**                                                 |
| **Azure SAS token**       | For Azure SAS auth: a container-scoped SAS token with read and list permissions                                                    |
| **Azure tenant ID**       | For Azure service principal: the app's **Directory (tenant) ID**                                                                   |
| **Azure client ID**       | For Azure service principal: the app's **Application (client) ID**                                                                 |
| **Azure client secret**   | For Azure service principal: the app's client secret **Value**                                                                     |

4. Click **Test & Save**.

Euno validates the bucket URI format and normalizes the storage prefix before saving.

## Step 6: Schedule the integration

Sigma audit log exports are not real-time, and Sigma notes that fresh event data may take time to appear in the logs.

Recommended schedule:

* Run the Sigma export on a regular cadence.
* Run **Sigma Impressions** shortly after the export is expected to land.
* Keep **Days back to look** small (for example `2` or `3`) unless your export cadence requires more history.

{% hint style="info" %}
The integration enforces a maximum lookback of **6 days**.
{% endhint %}

## Testing the setup

For a simple validation:

1. Configure the export and send one test export from Sigma.
2. Confirm that new CSV files appear in the configured bucket prefix.
3. Run the Sigma Impressions integration in Euno.
4. Open a known Sigma workbook or element in Euno and confirm that impression properties appear.

Good test data:

* one workbook-level row
* one element-level row
* at least two distinct users
* one row with `count > 1` if you plan to export pre-aggregated data

## Troubleshooting

### No impression data appears in Euno

Check:

* the main [Sigma integration](/sources/business-intelligence/sigma-integration.md) is active
* the exported CSV includes `workbook_url_id`
* the Sigma workbook exists in Euno
* the bucket URI points to the correct prefix
* Euno can list and read the exported files

### Workbook metrics appear, but element metrics do not

Check:

* the export includes `element_id`
* the `element_id` matches Sigma element IDs discovered by the Sigma integration

### Euno cannot save the integration

Check:

* the bucket URI starts with `gs://`, `s3://`, or `azure://`
* for S3, either both access key and secret key are provided, or both are left blank
* for Azure, provide either a SAS token **or** a full service principal (tenant ID, client ID, and client secret); if both are supplied, the service principal is used

### Azure authentication fails

Check:

* **SAS token**: it has both **Read** and **List** permissions (List is required to enumerate the export files) and has not expired
* **Service principal**: the **Azure tenant ID** is the app's **Directory (tenant) ID** and the **Azure client ID** is its **Application (client) ID** — these are easy to swap
* **Service principal**: the app has the **Storage Blob Data Reader** role on the container (role changes can take a few minutes to take effect)

## Related

* [Sigma integration](/sources/business-intelligence/sigma-integration.md) - Discovers Sigma workbooks, data models, and elements.
* [Sigma Usage Data](/using-euno/usage-optimization/sigma-usage-data.md) - Warehouse-query usage from supported warehouses.
* [Sigma Impressions Data](/using-euno/usage-optimization/sigma-impressions-data.md) - Impression properties observed by this integration.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.euno.ai/sources/business-intelligence/sigma-impressions-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
