--- title: "Activate Your Data Warehouse Data" slug: "zero-copy-segmentation-on-your-data-warehouse" description: "Insider One connects to Snowflake, BigQuery, and Databricks with zero-copy, reference-based segmentation that queries data without importing it." updated: 2026-09-25T08:52:37Z published: 2026-09-25T08:52:37Z canonical: "academy.insiderone.com/zero-copy-segmentation-on-your-data-warehouse" --- > ## Documentation Index > Fetch the complete documentation index at: https://academy.insiderone.com/llms.txt > Use this file to discover all available pages before exploring further. # Activate Your Data Warehouse Data Your data warehouse (Snowflake, Databricks, Google BigQuery, or Amazon Redshift) is where your customer truth lives: purchase history, loyalty balances, lifecycle scores, consent states. Insider One gives you three complementary ways to put that data to work. You can **build segments with zero-copy queries** that run directly on your warehouse, **sync tables** on a schedule for profile-level personalization, or **fetch values at decision time**, retrieving a single customer's freshest data at the exact moment a journey needs it. This article provides details about: - [Three patterns for warehouse data](/v1/docs/zero-copy-segmentation-on-your-data-warehouse#three-patterns-for-warehouse-data1) - [Goals](/v1/docs/zero-copy-segmentation-on-your-data-warehouse#goals1) - [Requirements](/v1/docs/zero-copy-segmentation-on-your-data-warehouse#requirements1) - [Build segments without copying data in](/v1/docs/zero-copy-segmentation-on-your-data-warehouse#build-segments-without-copying-data-in1) - [Sync warehouse tables into Insider One](/v1/docs/zero-copy-segmentation-on-your-data-warehouse#sync-warehouse-tables-into-insider-one1) - [Fetch warehouse values at decision time](/v1/docs/zero-copy-segmentation-on-your-data-warehouse#fetch-warehouse-values-at-decision-time1) - [Choose the right pattern](/v1/docs/zero-copy-segmentation-on-your-data-warehouse#choose-the-right-pattern) - [Example flow](/v1/docs/zero-copy-segmentation-on-your-data-warehouse#example-flow) ## Three patterns for warehouse data - **Zero-copy segmentation:** a reference-based integration where a [**Zero-Copy Segment**](/v1/docs/zero-copy-segments) runs a query directly on your own warehouse (Snowflake, Google BigQuery, or Databricks) instead of copying your data into Insider One first. The query executes on your warehouse, using your compute. Insider One resolves the returned identifiers against your [Unified Customer Database (UCD)](/v1/docs/unified-customer-database-ucd) and stores only the segment membership, never your raw data. - **Sync (scheduled import):** a warehouse source integration pulls your tables into Insider One on a schedule you choose. The data becomes part of each customer's profile, so you can personalize any channel with it and trigger journeys from it. - **Decision-time fetch:** the Architect [**Call an API**](/v1/docs/architect-channel-call-an-api) element retrieves values for one customer, at the moment they reach that journey step, from an API endpoint you expose in front of your warehouse. The values are used in that journey and are deleted by default when the customer exits; your tables are never imported. ## Goals Working with warehouse data through these patterns helps you: - Build audiences from your warehouse without replicating data, which lowers infrastructure and sync cost, - Query fresher data: segment on what is in the warehouse now, not on a scheduled copy, - Personalize messages with values computed in your warehouse, such as scores, balances, and tiers, - Use the freshest value at send time for data that changes by the minute, - Keep one source of truth: your warehouse stays the system of record. ## Requirements - **For zero-copy segments:** a configured warehouse connection (Snowflake, Google BigQuery, or Databricks); an identifier in your warehouse data that maps to Insider One (such as email, phone number, or user ID); and, for each user you intend to reach, an existing Unified Customer Database profile holding that identifier, the contact field for your channel, and a valid consent or opt-in for that channel. - **For scheduled sync:** a supported warehouse and its integration prerequisites. See the guide for your platform Integrations are created under **Components** > **Integrations** > **External Integrations** in the InOne panel. - [Import Data from Snowflake](https://academy.insiderone.com/docs/import-data-from-snowflake) - [Import Data from Databricks to Insider One](https://academy.insiderone.com/docs/import-data-from-databricks-to-insider-one) - [Send Google BigQuery Data to Insider One](https://academy.insiderone.com/docs/send-google-bigquery-data-to-insider-one) - [Import Data from Amazon Redshift to Insider One](https://academy.insiderone.com/docs/import-data-from-amazon-redshift-to-insider-one) (Redshift exports to your Amazon S3 bucket, and Insider One imports from there). - **For decision-time fetch:** Architect with the **Call an API** element, and an API endpoint you expose in front of your warehouse data that returns the values you need as text, number, or date. ## Build segments without copying data in A Zero-Copy Segment turns a warehouse query into a campaign audience: 1. **Create the segment.** Navigate to **Audience** > **Segments** > **Zero-Copy Segments** and click **Create**. Name the segment and choose the warehouse connection it will run on. 2. **Define the audience.** Pick the identifier your query returns (email address, phone number, or UUID), then write the SQL (Structured Query Language) query that defines the audience in the SQL editor. For example, you can return customers who purchased more than three times in the last 90 days. You can browse the databases, schemas, tables, and columns of the connected warehouse, and join tables within the same connection. Click Verify SQL to check that the query is valid and runs on your warehouse. 3. **Validate the count and set the refresh.** The count shows the final number of matched Insider One users: your query's results are resolved against the Unified Customer Database, so only users who already exist in Insider One are counted. Choose a scheduled refresh frequency, or refresh manually any time. 4. **Use it in campaigns.** Once the first sync finishes, select the segment under Saved Segments in bulk campaigns (email, SMS, and push) and in Architect journeys started with the On Past Behavior trigger. The segment stays up to date based on its own sync frequency. If a sync is still running when a campaign starts, the campaign uses the users from the last successful sync. > [!NOTE] > All query compute runs on your warehouse and is billed by your warehouse provider; Insider One adds no compute cost. Queries can run up to 60 minutes. See the [Zero-Copy Segments](/v1/docs/zero-copy-segments) guide for the full walkthrough. ## Sync warehouse tables into Insider One To set it up: 1. **Create the source integration** for your platform in the InOne panel and authenticate it, following the guide linked above. 2. **Select your table and map your data:** identifiers, attributes, and events. 3. **Choose the sync schedule and launch.** Snowflake syncs from every 15 minutes up to once daily; Databricks syncs Daily (at a time you choose) or Hourly; Google BigQuery syncs every 15, 30, or 45 minutes, hourly, or daily. For these three direct integrations, the first sync imports the full table and later syncs are incremental; for Amazon Redshift, each refresh is a new file you export to your S3 bucket. You can track every run (status, success rate, and errors) on the integration's **Monitoring** screen. Once synced, the data behaves like any other profile data: segment on it, personalize with it, and start journeys from it. ## Fetch warehouse values at decision time Some values are best fetched at the moment of use: a loyalty balance that changes by the minute, a coupon code generated on demand, a score your regulations allow you to store only briefly. 1. **Expose an endpoint** in front of your warehouse data that returns the values you need for a given customer. 2. **Add the Call an API element** to your journey and enable **Call an API Response**, defining each value as a response variable (String, Number, or Date). 3. **Use the values in the journey:** insert them into message content on the Email, Web Push, App Push, WhatsApp, and SMS channels with **Add Dynamic Content**; store one on the profile with **Update User Attribute**; or branch the journey on them with **Check API Response**. Values are retrieved per customer at runtime, and you never import your tables. By default, response variables are temporary and are deleted once the customer exits the journey; to keep a value, store it in a user attribute with the Update User Attribute element. For bulk profile updates, use the scheduled sync pattern or the [Upsert User Data API](/v1/docs/upsert-user-data-api). > [!NOTE] > See [Architect Channel: Fetch Data through Call an API](https://academy.insiderone.com/docs/architect-channel-fetch-data-through-call-an-api) for setup, response formats, and the full use-case list. ## Choose the right pattern

Your need

Pattern

Build campaign audiences from warehouse data without replicating it

Zero-copy segmentation

Segment based on the data currently available in the warehouse at each refresh

Zero-copy segmentation

Personalize message content with profile attributes at scale

Scheduled sync

Trigger journeys from warehouse events added to profiles

Scheduled sync

Use the freshest value at the exact send time, such as balances, live scores, or on-demand codes

Decision-time fetch

Use data that your policies allow you to retain only briefly

Decision-time fetch

Build audiences from warehouse data, personalize profiles, and use the freshest value at send time

Combine all three patterns

## Example flow A retailer creates a Zero-Copy Segment on Snowflake: "high-value customers with no purchase in 60 days". The query runs on the retailer's own warehouse, and only the matched Insider One users become the audience. A bulk email campaign targets the segment. In the win-back journey that follows, a **Call an API** step fetches each customer's current loyalty-point balance from the endpoint in front of the warehouse; the email greets Maya with her exact balance, and a **Check API Response** step routes customers above 5,000 points to a VIP redemption message instead. Meanwhile, the retailer's scheduled Snowflake sync keeps lifecycle stage and favorite category on every profile for day-to-day personalization. The raw tables were never copied: the segment stored only its membership, and the balance was fetched for Maya alone. ## Related - [Import Data from Snowflake to Insider One](/import-data-from-snowflake-to-insider-one.md) - [Export Data to Snowflake from Insider One](/export-data-to-snowflake-from-insider-one.md) - [Import Data from Databricks to Insider One](/import-data-from-databricks-to-insider-one.md) - [Send Google BigQuery Data to Insider One](/send-google-bigquery-data-to-insider-one.md) - [Import Data from Amazon Redshift to Insider One](/import-data-from-amazon-redshift-to-insider-one.md) - [Import Data from Amazon S3](/import-data-from-amazon-s3.md) - [Architect Channel: Fetch Data through Call an API](/architect-channel-fetch-data-through-call-an-api.md) - [Upsert User Data](/upsert-user-data-api.md) - [Integration Hub](/integration-hub.md)