Skip to main content
Skip table of contents

Zero Copy Database Explorer

image-20250806-042032.png

The Zero Copy Database Explorer enables marketers to bring their own database (Snowflake or Google BigQuery) to ZMP and segment directly on it using the standard ZMP audience builder workflow.

Please get in touch with your Zeta Representative to enable this functionality for your account(s).

Connecting a Snowflake or Google BigQuery Database

1. To create a connection, navigate to Settings > Integrations > Connections.

image-20250806-042407.png

2. Click on Create Connection.

2025-08-06_10-10-51 (1)-20250806-044112.gif

2. Start by filling in the required fields, then select your preferred connection method from the Connection Via dropdown. Finally, enter your authentication credentials to enable secure access.

3. Once your connection is saved, you can immediately create SQL segments, but you will at least need to assign a user_id to create a segment with the Database Explorer.


Configuring a Connected Database

1. Within the Connections library, click on the action menu (three dots) against the desired Snowflake or Google BigQuery connection and select Configure Tables & Groups from the dropdown.

image-20260602-100453.png
  • This will direct you to a listing of all the tables and groups in your connection.

2. From the action menu (three dots) next to the group, select Configure Tables.

2026-06-02_15-36-06 (1)-20260602-100637.gif
  • Review the list of tables available within the group.

Please note that it can take a few minutes for all the tables to populate upon initially creating the connection.

3. Locate the table you want to configure, click its action menu (three dots), and select Edit Mappings.

4. Create or update table mappings to define how tables are joined for segmentation.

Edit Mappings

Select your source table, and from its action menu (three dots), select Table Mappings. Within the Mappings page, click on Add Mapping to create a new join.

2026-06-02_15-42-56 (1)-20260602-101334.gif

1. From the Edit Mappings page, select the destination table from the Table 2 dropdown.

2. Select the desired Join Type.

3. Choose the column from Table 1 and the corresponding column from Table 2 that will be used for the first join condition.

4. Click Add Join Condition.

5. Select an additional pair of matching columns from Table 1 and Table 2.

  • 6. Repeat this process to add as many join conditions as required for the mapping.

7. Review all configured join conditions to ensure they accurately define the relationship between the two tables.

8. Click Save Mappings to save your changes.

Tip: Use multiple join conditions when a single field is not sufficient to uniquely identify matching records between tables. For example, you may join records using both an Account ID and a Region field to ensure more precise matching.

Please note that segmentation is available for single tables without any configuration, but only one table may be targeted at a time unless the mappings (joins) are configured here.

Edit Columns

Click on the action menu (three dots) against the table that contains your users and select the column that identifies your users, and turn the toggle on for Set as User ID.

2026-06-02_15-50-54 (1)-20260602-102128.gif
  • You can also toggle fields on and off for segmentation and personalization.

  • Additionally, you can add column aliases.

About

Selecting About from the action menu (three dots) dropdown will display the panel containing information about the specific table.

2026-06-02_15-52-05 (1)-20260602-102230.gif
  • We can add an alias to make the segmentation easier. For example, instead of seeing demo_db.external_schema.users.email, we would see users.email.

Refresh Table

Selecting Refresh Table from the action menu (three dots) dropdown will allow us to manually refresh the connected table to add/remove columns if the table has been updated. This process happens periodically but can be refreshed manually as well if needed.

2025-08-06_11-00-18 (1)-20250806-053914.gif

Creating Groups

Click the Create Group button, then choose the tables you'd like to include in the new group from the list.

2025-08-06_11-16-42 (1)-20250806-054715.gif

Editing Groups

From the action menu next to a group, select Edit Group from the drop-down list.

2025-08-06_11-23-07 (1)-20250806-055340.gif
  • Make updates to the Group Name, Description, or table selections and click on Save Group.


Using a Connected Database in Segmentation

1. From the main menu on the left, navigate to Audiences > Database Explorer to segment based on the data available to you for a given connection.

image-20260601-073639.png

Please note that you cannot join multiple sources of data when segmenting with this option.

2. Select your fields for segmentation.

2026-06-01_13-09-40 (1)-20260601-073959.gif

Please note that when creating a segment, some fields may be unavailable if they are not part of a mapped table that has already been selected.

3. Once the criteria are established, review the Results Preview panel to validate the returned records. When you are satisfied with the audience definition, run counts for the segment. Remember that the count is in terms of rows, not people.

In some cases, the numbers may be the same, but it is important to learn that, depending on how the data is structured, we may be returning duplicate rows for the same user_id.

image-20260601-084801.png
image-20260601-084854.png

Previewing Query Results

Database Explorer now includes a Results Preview panel that allows you to validate your audience before saving or activating a segment.

Results Preview helps you confirm that:

  • Your filters are returning the expected records.

  • The correct fields are being included in the audience.

  • The audience definition matches your intended targeting criteria.

This capability is especially useful when working with large datasets and performing final audience quality checks before activation.

Viewing Results

After selecting your audience criteria, click on Preview Results. The Results Preview panel displays a sample of matching records.

  • Review the returned fields and values to verify that your segment is configured correctly.

  • The preview initially displays a sample of records. Click Show More to load additional results.

You can progressively expand the preview up to 100 rows for deeper validation and spot-checking.


Using Connected Database in Campaigns & Content

  • Once you have created a segment, you can select it as usual, in your campaigns.

Note that if a User ID is not assigned, you will not be able to send a campaign.

  • Within content, you can access the fields marked for personalization by using the {{segment}} tag. You will get an object of the available fields, for example,

    CODE
    {
      "users_id"=>"1518", 
      "users_fname"=>"Zeta", 
      "users_city"=>"New York", 
      "users_state"=>"New York",  
      "users_account_id"=>"A9036205", 
      "users_user_created_on_date"=>"2021-09-06 00:00:00", 
      "users_glbl_user_opt_in"=>"1", 
      "users_glbl_user_opt_out_dt"=>"", 
      "users_user_create_src"=>"site", 
      "uid"=>"zeta@zetaglobal.com"
      }
  • Within the {{segment}} tag, fields will be available with their alias names or original names, if not aliased. Table/fields will be delimited with an underscore, for example, users.id in segmentation will be available as {{segment.users_id}} in content.

 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.