Skip to main content

Install dentsu.Composable Visualize

Overview

This article outlines the prerequisites for installing and enabling the dentsu.Composable Visualize application in Snowflake. Before beginning the installation, ensure your Snowflake environment meets the required account, data, AI, and role requirements, and review the permissions needed to run the application. 

Install the application

Once you have been provisioned by dentsu, the application will be available for you to install. To install the application, you will need the appropriate privileges in your Snowflake account (ACCOUNTADMIN or similar). For more information on role requirements and account privileges, see Snowflake's Install an app from a listing article.

An email will be sent by Snowflake to your account administrator when a private listing has been shared with you. To access the listing, go to the listing detail page via the link in the email or navigate to the listing.

To install the application:

  1. Sign in to Snowsight.
  2. In the navigation menu, select Catalog > Apps.
  3. In Recently shared with you, select the tile for the listing.
  4. Select Security to view the privileges and logging requests for the app, including:
    • Account level privileges
    • Privileges on objects
    • Connections
    • App events
  5. Select Get.

    Note

    Snowflake takes some time to prepare the app. Once it is ready, another email will be sent to your account administrator.

  6. Optionally, enter a name for the app.

    Note

    The app name is set by dentsu and changing it is not required. Should you wish to rename the app later, use the Options menu on the pop-up screen. Rename from the default and note the app name you have chosen as you will need it in subsequent steps. As a reminder, the default name for this application is DENTSU_COMPOSABLE_VISUALIZE_APP.

  7. Select the warehouse that you want to use to install the app.
  8. Select Get.

    Note

    Once the app is installed, an automated email from Snowflake will be sent to your account administrator.

  9. Select Open to view the app or Done to finish.

Accept the share

To accept the share, you will need the appropriate privileges in your Snowflake account (ACCOUNTADMIN or similar). The share will come from https://app.snowflake.com/merkle/merkle_4cite/ and indicate it is relating to the Visualize app. Accept the share.

Post-installation set up & verification

The setup grants the Visualize app access to the dentsu.Tag data to be visualized, provisions its container service and public endpoint, and grants your users access to chat.

Because Visualize runs under restricted caller's rights, setup involves grants and account parameters that a Native App cannot apply on its own. Rather than ask you to write that SQL by hand, the app generates a complete, account-specific setup script for you to review and run.

The flow is always:

  1. Generate the script with config.generate_setup_sql.
  2. Review and run the returned script as ACCOUNTADMIN.
  3. Verify with config.check_setup.

Throughout this guide, {APPLICATION_NAME} always refers to the app you installed from the shared listing in the steps above, listed under Snowsight > Catalog > Apps, or returned by SHOW APPLICATIONS;. The default is DENTSU_COMPOSABLE_VISUALIZE_APP.

Before you generate the script, gather these values:

Value Meaning
{APPLICATION_NAME} The name that you installed the Visualize app under (for example, VISUALIZE).
{CHAT_ROLE} The role that Visualize users will use to interact with chat. This role receives endpoint and chat grants.
{ADMIN_ROLE} The role that Visualize users will use to administer team dashboards. This role receives app_admin.
{SESSION_DATA_VIEW} The fully qualified source of data for app queries (DATABASE.SCHEMA.VIEW). Typically the view shared from merkle_4cite. (for example, VISUALIZE_DATA.CLIENT_ALL.SESSION_<CLIENT>)
{QUERY_WAREHOUSE} The warehouse that Visualize Cortex Analyst SQL runs on (for example, APP_VISUALIZE_WH). We recommend a medium warehouse.

Example object creation

The examples below illustrate one way to provision the required roles and warehouse before generating the setup script.

Create the chat role

CREATE ROLE IF NOT EXISTS APP_VISUALIZE_USER
COMMENT = 'Role that Visualize users will use to interact with the chat';

Create the admin role

CREATE ROLE IF NOT EXISTS APP_VISUALIZE_ADMIN
COMMENT = 'Role that Visualize users will use to administer team dashboards.';

Create the query warehouse

CREATE OR REPLACE WAREHOUSE APP_VISUALIZE_WH
  WITH
  WAREHOUSE_SIZE = 'MEDIUM'
  WAREHOUSE_TYPE = 'STANDARD'
  AUTO_SUSPEND = 300
  AUTO_RESUME = TRUE
  INITIALLY_SUSPENDED = TRUE
  COMMENT = 'The warehouse the Visualize Cortex analyst SQL runs on.';

Session data must be a local view

Always register the app's data source as a view in your account, created specifically for Visualize. {SESSION_DATA_VIEW} should point at a view, never directly at a base table or a shared object. A dedicated view is required: it is the only way a Native App can reference imported-share data, and it gives you a single, stable place to control exactly which columns and rows the app can read. Create it over your dentsu.Tag data, whether that data is shared from dentsu or stored locally.

CREATE VIEW <database>.<schema>.<view_name>
AS SELECT * FROM <source_database>.<schema>.<table_name>;

The view must exist outside the application object and be readable by the role that installed the app (granting SELECT on it requires ownership or MANAGE GRANTS).

For more details on the data column definition, see Session Data.

Choose your path

Both paths end with the same generate → run → verify flow; they differ only in whether you bind the data source and warehouse in SQL or in the Snowsight UI.

  • Fully scriptable (recommended). Pass the data view and warehouse to generate_setup_sql; the emitted script registers the references for you. No UI step needed. Best for a repeatable, fully reproducible install.
  • Snowsight-assisted. First bind the references (data source + warehouse) and toggle the requested account privileges from the app's Permissions tab in Snowsight (Catalog > Apps > the app > Permissions). Then call generate_setup_sql with just the two role arguments. It reads the already-bound references and emits the remaining SQL.

Generate the setup script

Run as ACCOUNTADMIN. Fully-scriptable form:

USE ROLE ACCOUNTADMIN;

CALL {APPLICATION_NAME}.config.generate_setup_sql(
  '{CHAT_ROLE}', '{ADMIN_ROLE}',
  '{SESSION_DATA_VIEW}',     -- e.g. MY_DB.PUBLIC.SESSION_AGG (omit this and the next
  '{QUERY_WAREHOUSE}');      -- argument to use Snowsight-bound references instead)

This returns a complete, ordered script: account grants > token-validity > reference registration > name-resolution grants > initialize() > service provisioning > RCR grants > chat-role grants > admin role.

Copy the returned text, review it, and run it as ACCOUNTADMIN. The script is idempotent. If a step fails, fix the cause and re-run the whole script; it converges to the same state.

Two lines call for a decision before you run:

  • Token validity — emitted active as ALTER ACCOUNT SET SERVICE_CALLER_TOKEN_VALIDITY_SECS = 1800; (30 minutes; don't go below ~600 seconds, or long answers may fail mid-run).
  • Cross-region inference — emitted commented out. Uncomment and run it only if the agent's models aren't hosted in your region (chat would otherwise fail with "model not available in region").

Running the script also calls config.initialize(), which creates the app's internal objects:

  • the wrapper view over your registered session-data reference,
  • the Cortex semantic view with column metadata, and
  • the wiki search service used for definitional questions.

Verify application installation

Verify with config.check_setup:

CALL {APPLICATION_NAME}.config.check_setup();

This reads back what is in place and reports per step:

  • PASS — verified in place.
  • FAIL — correct as needed, then re-check.

check_setup verifies the application's objects and account parameters; it cannot confirm that a given user can read your data. The real confirmation is a chat user successfully running a query (below).

Confirm end to end

Launch the application and sign in as a user that is assigned to the chat role, open a new dashboard, and ask a question of your data. A user asking a question and getting data back is the true end-to-end confirmation.

If the page loads but chat returns no data, the endpoint is healthy but the signed-in user can't read the data. Re-check the chat-role and RCR grants. Admin shall regenerate the SQL via the config.generate_setup_sql stored procedure and review and re-run setup if needed.

As a reminder, Visualize runs as a container service under restricted caller's rights (RCR). The chat agent reads your data as the signed-in user, so each user sees only what their own Snowflake grants allow.