Zero Copy Database Explorer

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.

2. Click on Create Connection.
-20250806-044112.gif?inst-v=c2a31350-5b54-4279-b6bd-a7e859df2556)
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
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.

This will direct you to a listing of all the tables and groups in your connection.

Please note that it can take a few minutes for all the tables to populate upon initially creating the connection.
Configuring Tables
From the action menu next to a group, select Configure Tables from the dropdown list.
-20250806-052527.gif?inst-v=c2a31350-5b54-4279-b6bd-a7e859df2556)
Table 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.
-20250806-053119.gif?inst-v=c2a31350-5b54-4279-b6bd-a7e859df2556)
Table 1 will be preselected and then you can select the:
Field to join on
Table to join to
Field to join to
Join type
You can add more mappings from the current table or select a new table to create joins.
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.
Table 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.
-20250806-053525.gif?inst-v=c2a31350-5b54-4279-b6bd-a7e859df2556)
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.
-20250806-053742.gif?inst-v=c2a31350-5b54-4279-b6bd-a7e859df2556)
We can add an alias to make the segmentation easier. For example, instead of seeing
demo_db.external_schema.users.email
, we would seeusers.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.
-20250806-053914.gif?inst-v=c2a31350-5b54-4279-b6bd-a7e859df2556)
Creating Groups
Click the Create Group button, then choose the tables you'd like to include in the new group from the list.
-20250806-054715.gif?inst-v=c2a31350-5b54-4279-b6bd-a7e859df2556)
Editing Groups
From the action menu next to a group, select Edit Group from the dropdown list.
-20250806-055340.gif?inst-v=c2a31350-5b54-4279-b6bd-a7e859df2556)
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.

Please note that you cannot join multiple sources of data when segmenting with this option.
2. When selecting fields for segmentation, you will see the alias names. Hovering over them will reveal their original full names as well.

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

3. Once the criteria are established, ZMP can 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.

Using Connected Database in Campaigns & Content
Once you have created a segment, you can select it like 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.