Segmentation & Campaigns
Bosca includes a segmentation and campaign system for targeting the right people at the right time. Define audience segments, create multi-channel campaigns, and deliver personalized messages at scale.
What you get
- Audience Segments: Group profiles using static lists, dynamic queries, or target everyone at once.
- Multi-Channel Campaigns: Deliver banners, emails, and push notifications to segmented audiences.
- Weighted Placement: Use placement slots and weights for A/B testing banner campaigns.
- Scheduled Delivery: Schedule campaigns for future delivery with optional expiration dates.
- Batch Processing: Send to large audiences efficiently with paginated batch delivery.
Segments
Segment Types
| Type | Description |
|---|---|
STATIC | Manually curated list of profile IDs |
DYNAMIC | Computed at evaluation time by running analytics queries via Trino |
EVERYONE | Implicitly includes all users and anonymous visitors |
Segment Status
Segments follow a lifecycle:
| Status | Description |
|---|---|
DRAFT | Being configured, not yet active |
ACTIVE | Live and available for campaigns |
PAUSED | Temporarily suspended |
ARCHIVED | No longer in use |
Dynamic Segments
Dynamic segments are powered by analytics queries. You define a query, and Bosca evaluates it to determine segment membership. Dynamic segments support:
- Scheduled Evaluation — cron expressions to refresh membership automatically
- Batch Operations — populate or remove members from query results efficiently
- Member Count Tracking — always know the size of your audience
Static Segments
Static segments let you manually manage membership by adding or removing individual profile IDs. This is useful for hand-curated audiences like VIP lists or test groups.
Campaigns
A Campaign is a targeted message delivered to a segment audience through one or more channels.
Channels
| Channel | Description |
|---|---|
BANNER | In-app banners displayed at configurable placement slots |
EMAIL | Email messages with subject, text, and HTML body |
PUSH | Push notifications sent to registered devices |
Campaign Status
Campaigns follow a delivery lifecycle:
| Status | Description |
|---|---|
DRAFT | Being configured |
SCHEDULED | Waiting for scheduled delivery time |
SENDING | Delivery in progress |
SENT | Delivery complete (email, push) |
ACTIVE | Currently live (banners) |
FAILED | Delivery encountered errors |
CANCELLED | Manually cancelled before completion |
Banner Placement & Weights
Banner campaigns support placement slots (top, hero, sidebar, and more) and weights for prioritized or randomized selection. When multiple banners target the same placement, Bosca uses weighted random selection to determine which banner a user sees—useful for A/B testing and rotation.
Test Delivery
Before sending to your full audience, you can test a campaign by delivering it to a small group first. This lets you verify content, formatting, and delivery before committing.
How It Works
- Define a Segment — create a static, dynamic, or everyone segment and activate it.
- Create a Campaign — choose a segment, select channels, and configure your content.
- Schedule or Send — set a delivery date or send immediately.
- Monitor — track campaign status and delivery progress from the admin panel.
For large audiences, campaigns are delivered in batches (up to 5,000 profiles per batch) to ensure reliable processing.
Administration
The Administration UI provides:
- Segment Management — create, edit, and monitor segments with member counts
- Campaign Builder — configure multi-channel campaigns with scheduling
- Delivery Monitoring — track campaign status and delivery progress
- Test Tools — preview and test campaigns before full delivery
For developers
Related modules:
- Core interfaces:
backend/framework/core-segmentation - Implementation:
backend/framework/segmentation - GraphQL schema:
backend/framework/segmentation/src/main/resources/graphql/segmentation.graphqls
Related:
- Devices: Device registration & push
- Profiles: Audience profiles
- Analytics: Data queries for dynamic segments
- Messages: Email delivery