Data Visualizations with Sigma
Wire a Sigma dashboard to your app: user attributes, the data model SQL pattern, and the embed flow.
Sigma Integration Diagrams
See the below diagram for an overview of how Seek and Sigma integrate during the app build process.

Once apps have been deployed with attached Sigma dashboards, users can interact with the dashboards to explore the data in the app. The below diagram shows how Seek generates dynamic Sigma embed links to securely display the correct data to users.

The two contexts: authoring vs embed
Every Sigma asset you build runs in two different contexts, and mixing them up is the top source of confusion:
Authoring context — you, in the Sigma editor, with YOUR user attribute values. Defaults and self-assigned values point the dashboard at your local
_testtables.Embed context — a subscriber viewing the app in Insight Cloud. Insight Cloud generates a per-session embed and injects that org's and variant's attribute values (for example, the table attribute becomes
REGION_SHARE_<variantid>). The same dashboard now reads that org's output tables.
One dashboard, two data paths, switched entirely by user attributes.
Sigma Integration Steps
0. Prerequisites
Build out an SBT app locally. Use sbt run-app to get _test versions of all the app output tables written into your snowflake environment. These tables will be used to build your Sigma dashboard against.
1. Set up Sigma user attributes
User attributes are named variables in Sigma (Administration > User Attributes — requires Sigma admin access). They let one dashboard dynamically read from different tables per user, org, or variant, with no hardcoded Snowflake paths. Insight Cloud sets their values at embed time; that is what makes variant switching work.
You need two kinds:
Database attribute — reuse, don't create. One shared attribute resolves the database. Production apps use
seek_insights_db; test and shell apps usetest_db. Put that attribute's name in your app YAML'ssigma_db_attributefield.Table attributes — one per output table. Create one attribute per output table your dashboard reads, named
<publisher>_<table>. Set the default value to your local_testtable so you can build against real data. In production, Insight Cloud overrides the value per variant.
The attribute names must exactly match what your app YAML references. A mismatch is the most common cause of a variant showing the wrong data.
2. Create the data model (formerly "Sigma dataset")
Sigma is renaming datasets to data models — they are the same thing, and you may see both labels during the migration. This is Sigma's reusable data layer; it is NOT an SBT model (your SQL/Python code) and NOT the semantic model (the AI-facing YAML).
Create ONE data model per app. Add a SQL source per output table, referencing the attributes instead of hardcoded paths:
select * from {{#identifier CurrentUserAttributeText(<db_attribute>)}}.{{#identifier CurrentUserAttributeText(<mta_sf_schema>)}}.{{#identifier CurrentUserAttributeText(<table_attribute>)}}Because the default attribute values point at your _test tables, the data model populates with your local run's data immediately.
All three parts are user attributes — never hardcode any of them. The middle one, mta_sf_schema, already exists org-wide (default value APP_DATA); embed sessions receive it automatically. For authoring against your own sandbox, assign yourself a value that points at your local test schema (Administration > User Attributes > assign member value). Hardcoding the schema breaks either authoring or the embed — verified August 2026.
2b. Handoff
At D&A, the data scientist does everything above, then hands off to the BI developer, who builds the workbook on top of the data model. If you're doing both roles, keep going.
3. Assign sigma workbook id to app
Assign the sigma workbook id to the app in the app yaml configuration. This will tell Insight Cloud which dashboard to embed for this app.
Note - we intend to change this step to happen in the Insight Cloud UI, but for now it needs to be done in the app yaml.
4. Upload + Publish Seek App
Use sbt build-app and sbt publish-app to upload and publish the app to Insight Cloud. Once the app is published, that will be the current version available to all users on the platform.
5. Embedded Sigma Dashboard
The embedded version of the dashboard will react dynamically to the user requesting it by:
Switching the Snowflake connection based on user's settings
Set the sigma user attributes used to select target tables based on the variant of the app the user is requesting
Tip — the Publish button has two shades: light blue means no unpublished changes; dark blue means your draft differs from the published version. Subscribers only see published changes.
⏭️ Next: SBT 1.0 App Migration Guide