ChangelogBook a demoSign up

Set up realtime audiences

AudienceMarketers, platform admins
Prerequisites
  • A configured Customer Studio schema
  • An event source sending events to Hightouch (Hightouch Events, Segment, RudderStack, or Snowplow)
  • A destination that supports realtime syncing, or a system that will call the Membership API
  • Realtime sync capability enabled for your workspace

Realtime audiences evaluate user behavior during the current session using streaming events and warehouse context.


What you'll learn

After reading this article, you'll know how to:

  • Configure realtime events in your Customer Studio schema
  • Build an audience that evaluates live user behavior
  • Deliver audience membership through realtime syncs or the Membership API
  • Choose the right delivery pattern for your personalization or campaign workflow

Overview

Realtime audiences evaluate audience membership from live behavioral events during the current session, combining streaming events with warehouse attributes.

This guide walks you through the four steps to create one:

  1. Connect an event stream
  2. Define a realtime event in your schema
  3. Build an audience that references that event
  4. Configure how audience membership is delivered

Step 1: Connect an event stream

Hightouch must receive realtime events before audiences can be evaluated.

Supported event sources include:

  • Hightouch Events
  • Snowplow
  • RudderStack
  • Segment

These events flow through Hightouch’s event pipeline and can be used for realtime audience evaluation once a corresponding realtime event model is defined in your schema.

See:


Step 2: Create a realtime event

Realtime events define which incoming events should be available for realtime audience evaluation.

To create one:

  1. Go to Customer Studio → Schema

  2. Locate or create a parent model (usually Users)

  3. Click the plus (+) icon next to the parent model

Create event

  1. Select Create a related realtime event

Configure the event source

In the Select event source screen:

  • Choose the event source (for example Segment or Hightouch Events)
  • Enter the event type (for example track, page, or order_completed)
  • Define event properties by adding columns and optional aliases
  • Select the timestamp column, which determines when the event occurred

Click Continue.

Event model


Configure the event model

Next, configure how the event relates to your schema.

Provide:

FieldDescription
NameDisplay name for the event in Customer Studio
DescriptionOptional explanation of the event
Timestamp columnUsed for time-based audience filters
Foreign keyColumn linking the event to the parent model (for example user_id)

Click Create realtime event.

Realtime event configuration

Once created, the realtime event appears as an event filter option in the audience builder.


Step 3: Create an audience

Next, create an audience that references the realtime event.

  1. Go to Customer Studio → Audiences

  2. Create a new audience or open an existing one.

  3. Select the parent model connected to your realtime event.

Any existing audience can become a realtime audience once it includes a realtime event condition.


Step 4: Add a realtime event condition

Add a filter that evaluates the realtime event.

  1. In the audience builder, click Add filter

  2. Select Event and choose your realtime event model

Event filter

  1. Define the event condition—for example, set it to "performed within the last 5 minutes" to capture recent activity

Event performed

  1. Click Continue

  2. Finalize audience settings and click Finish

Time-based conditions expire automatically. When a user no longer meets a lookback-window condition—for example, "viewed a page 3 times in the last 4 hours"—Hightouch removes them from the audience even if they generate no further events. This produces an audience exit, which is sent downstream if exit events are enabled on the sync.


Step 5: Choose a delivery method

Realtime audiences can deliver membership updates through two mechanisms.

MethodBest forDescription
Realtime syncsCampaign tools, CRMs, advertising platformsPush audience entry or exit events to supported destinations
Membership APIWebsites, apps, personalization enginesQuery audience membership on demand

API push

Option 1: Realtime syncs

Realtime syncs send audience membership changes to supported destinations.

When a user enters or exits an audience, Hightouch forwards a membership event to the destination.

Example event: User 123 entered audience "High-intent pricing visitors"

Create a realtime sync

  1. Open your audience and go to the Syncs tab

  2. Click Add Sync

  3. Select a destination that supports realtime syncing

    Supported destinations include:

Supports realtime syncing

  1. Complete the sync setup.

Configure events

After your sync has been created, open its Configuration tab to choose which membership changes to forward to the destination.

Depending on the destination, you can configure:

  • Entry events — sent when a user qualifies for the audience
  • Exit events — sent when a user leaves the audience
  • Custom event mappings — additional event or property mappings supported by the destination

Configure events

Send entry events when downstream systems only need to react when a user qualifies. Add exit events when downstream systems also need to react when a user stops qualifying—for example, to remove a suppression, cancel a journey, or stop targeting. Exit events fire whenever a user leaves the audience, including when a time-based condition ages out, not only when their latest event activity stops matching.

Option 2: Membership API

The Membership API allows applications to check audience membership directly.

Your application sends a user_id and receives all realtime audiences the user currently qualifies for.

This is commonly used for:

  • website personalization
  • feature gating
  • experimentation platforms
  • in-app messaging

Example request:

GET /v1/audiences/{parent_model_id}/{user_id}
Authorization: Bearer <API_KEY>

Example response:

{
  "parent_model_id": "1234567",
  "user_id": "123xyz",
  "audience_ids": ["1212121", "3434343"]
}

The Membership API returns realtime audience membership. To retrieve warehouse-backed traits and profile attributes, use the Personalization API.


Refresh warehouse-backed conditions

If a realtime audience includes warehouse-backed conditions, Hightouch evaluates those conditions against a cached copy of your warehouse data rather than querying the warehouse for every incoming event. That cache refreshes on a schedule, and you can see its freshness and control when it refreshes from the audience.

When an audience has warehouse-backed conditions, a freshness indicator appears in the audience header next to the source, showing the current state—Current, Stale, Refreshing, or Pending. Hovering over it opens a panel with the Last pull time and result, the Next scheduled pull, and a link to the pull history.

Realtime audience warehouse cache freshness

To control refreshes:

  • Run an on-demand pull. On the History tab, select Run [source] pull (labeled with your source, for example Run Snowflake pull) to refresh the cache immediately—useful when you've changed warehouse data or audience logic and want it reflected sooner than the next scheduled pull.
  • Adjust the refresh cadence. Open the Configuration tab and set the Pull schedule. Options are every 4, 6, 8, 12, or 24 hours (the default is every 24 hours).
  • Review pull history. The History tab lists recent pulls with their Pull Date, Status, Trigger (on-demand or scheduled), Duration, and Rows, so you can confirm refreshes are succeeding.

Realtime audience warehouse pull history

Realtime audience warehouse pull schedule

Scheduled pulls are always full refreshes. On-demand pulls may be partial when the staging table is still compatible.

Running an on-demand pull and changing the pull schedule require permission to update the audience.

Realtime event conditions are always evaluated live and are not affected by the warehouse refresh cadence.


Example: Suppression use case

Goal: Hide a promotional banner after a user completes a purchase.

Audience filters:

  • Event: order_completed in the last 5 minutes
  • Trait: LTV > 300
  • Property: channel = web

Delivery: Realtime webhook sync to the personalization system

Result: A user completes a purchase and immediately exits the promotional audience. The banner no longer appears during the same session.

This pattern is commonly used for cart abandonment suppression, real-time promotions, and session-based personalization.


Constraints

Keep the following limitations in mind when designing realtime audiences:

  • Realtime event conditions must include a lookback window (maximum 24 hours)
  • Only event count conditions are supported today (no arbitrary aggregations like SUM)
  • User property conditions from identify calls must go through the warehouse and cannot be evaluated in realtime

For the full list of constraints, see Constraints and limitations in the architecture guide.


Best practices

When designing realtime audiences:

  • Focus on recent session behavior (minutes rather than hours)
  • Keep event conditions specific and narrow
  • Combine live events with warehouse traits for richer targeting
  • Monitor delivery through sync logs or API responses

Realtime event conditions must include a lookback window and support windows up to 24 hours.


What's next

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Privacy PolicyTerms of Service

Last updated: Jun 26, 2026

On this page

Was this page helpful?