Segmentation & Campaigns

Build audience segments and deliver targeted campaigns across banner, email, and push channels.

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

TypeDescription
STATICManually curated list of profile IDs
DYNAMICComputed at evaluation time by running analytics queries via Trino
EVERYONEImplicitly includes all users and anonymous visitors

Segment Status

Segments follow a lifecycle:

StatusDescription
DRAFTBeing configured, not yet active
ACTIVELive and available for campaigns
PAUSEDTemporarily suspended
ARCHIVEDNo 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

ChannelDescription
BANNERIn-app banners displayed at configurable placement slots
EMAILEmail messages with subject, text, and HTML body
PUSHPush notifications sent to registered devices

Campaign Status

Campaigns follow a delivery lifecycle:

StatusDescription
DRAFTBeing configured
SCHEDULEDWaiting for scheduled delivery time
SENDINGDelivery in progress
SENTDelivery complete (email, push)
ACTIVECurrently live (banners)
FAILEDDelivery encountered errors
CANCELLEDManually cancelled before completion

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

  1. Define a Segment — create a static, dynamic, or everyone segment and activate it.
  2. Create a Campaign — choose a segment, select channels, and configure your content.
  3. Schedule or Send — set a delivery date or send immediately.
  4. 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: