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 in 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
Goals
Requirements
Build segments without copying data in
Sync warehouse tables into Insider One
Fetch warehouse values at decision time
Choose the right pattern
Example flow
Three patterns for warehouse data
Zero-copy segmentation: a Zero-Copy Segment 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) 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 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: Import Data from Snowflake, Import Data from Databricks to Insider One, Send Google BigQuery Data to Insider One, or Import Data from Amazon Redshift to Insider One (Redshift exports to your Amazon S3 bucket, and Insider One imports from there). Integrations are created under Components > Integrations > External Integrations in the InOne panel.
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:
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.
Define the audience. Pick the identifier your query returns (email, phone number, or user ID), then describe the audience in plain language, for example "customers who purchased more than 3 times in the last 90 days", and the AI assistant generates the SQL (Structured Query Language) for you. If you prefer, switch to the editor to write and run the SQL yourself. You can browse the connected warehouse's databases, schemas, and tables, and join tables within the same connection. Preview shows the first 100 rows your query returns.
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.
Use it in campaigns. Once the segment is Ready, select it under Saved Segments in bulk campaigns (email, SMS, push) and in Architect journeys started with the On Past Behavior trigger, where the segment refreshes at the trigger frequency. If a refresh is still running when a campaign starts, the campaign uses the previous successful snapshot.
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 guide for the full walkthrough.
Sync warehouse tables into Insider One
To set it up:
Create the source integration for your platform in the InOne panel and authenticate it, following the guide linked above.
Select your table and map your data: identifiers, attributes, and events.
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.
Expose an endpoint in front of your warehouse data that returns the values you need for a given customer.
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).
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 run time, and your tables are never imported. 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.
See 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 on what is in the warehouse right now, at each refresh | Zero-copy segmentation |
Personalize message content with profile attributes at scale | Scheduled sync |
Trigger journeys from warehouse events landing on profiles | Scheduled sync |
Use the freshest value at the exact send moment (balances, live scores, on-demand codes) | Decision-time fetch |
Use data your policies allow you to hold only briefly | Decision-time fetch |
All of it: audience from the warehouse, profile personalization, freshest value at send | Combine the three |
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.