| Audience | Marketers, platform admins |
| Prerequisites |
|
Same-session 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
Same-session 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:
- Connect an event stream
- Define a realtime event in your schema
- Build an audience that references that event
- 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 same-session audience evaluation.
To create one:
-
Go to Customer Studio → Schema
-
Locate or create a parent model (usually
Users) -
Click the plus (+) icon next to the parent model

- 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, ororder_completed) - Define event properties by adding columns and optional aliases
- Select the timestamp column, which determines when the event occurred
Click Continue.

Configure the event model
Next, configure how the event relates to your schema.
Provide:
| Field | Description |
|---|---|
| Name | Display name for the event in Customer Studio |
| Description | Optional explanation of the event |
| Timestamp column | Used for time-based audience filters |
| Foreign key | Column linking the event to the parent model (for example user_id) |
Click Create realtime event.

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.
-
Go to Customer Studio → Audiences
-
Create a new audience or open an existing one.
-
Select the parent model connected to your realtime event.
Any existing audience can become a same-session audience once it includes a realtime event condition.
Step 4: Add a realtime event condition
Add a filter that evaluates the realtime event.
-
In the audience builder, click Add filter
-
Select Event and choose your realtime event model

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

-
Click Continue
-
Finalize audience settings and click Finish
Step 5: Choose a delivery method
Same-session audiences can deliver membership updates through two mechanisms.
| Method | Best for | Description |
|---|---|---|
| Realtime syncs | Campaign tools, CRMs, advertising platforms | Push audience entry or exit events to supported destinations |
| Membership API | Websites, apps, personalization engines | Query audience membership on demand |

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
-
Open your audience and go to the Syncs tab
-
Click Add Sync
-
Select a destination that supports realtime syncing
Supported destinations include:

- Complete the sync setup.
Configure events
After your sync has been created, open its Configuration tab to define which events should be forwarded.
Depending on the destination, you can configure:
- audience entry events
- audience exit events
- custom event mappings

Option 2: Membership API
The Membership API allows applications to check audience membership directly.
Your application sends a user_id and receives all same-session 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 same-session audience membership. To retrieve warehouse-backed traits and profile attributes, use the Personalization API →.
Example: Suppression use case
Goal: Hide a promotional banner after a user completes a purchase.
Audience filters:
- Event:
order_completedin 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 same-session 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
identifycalls 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 same-session 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.