Audience

Last updated on 2026-08-27

The audience system provides comprehensive subscriber management with segmentation, tagging, list organization, growth tools, import capabilities, and suppression management.

Subscriber List (/audience/subscribers)

The subscriber list is the central hub for managing your audience.

Features

  • Search -- search by email, first name, or last name
  • Status filtering -- filter by active, subscribed, unsubscribed, bounced, or complained
  • Engagement tiers -- visual indicators for hot, warm, and cold subscribers
  • Tag display -- inline tag badges for each subscriber
  • Sortable columns -- sort by name, email, status, engagement, join date, or last activity
  • Bulk actions -- select multiple subscribers for tag assignment, list moves, or deletion

Subscriber Statuses

Status Description
active Actively receiving emails
subscribed Confirmed subscription, receiving emails
unsubscribed Opted out of emails
bounced Email address bounced
complained Marked email as spam

Engagement Tiers

Tier Description Score Range
Hot Highly engaged -- opens and clicks regularly High engagement score
Warm Moderately engaged -- opens occasionally Medium engagement score
Cold Low engagement -- rarely opens or clicks Low engagement score

Data Model

interface Subscriber {
  id: string;
  email: string;
  firstName: string;
  lastName: string;
  status: 'active' | 'subscribed' | 'unsubscribed' | 'bounced' | 'complained';
  engagement?: 'hot' | 'warm' | 'cold';
  engagementScore?: number;
  tags: string[];
  lists?: string[];
  listIds?: string[];
  joinDate?: string;
  joinedAt?: string;
  lastActivity?: string | null;
  lastActivityAt?: string | null;
  unsubscribedAt?: string | null;
  customFields?: Record<string, string | number | boolean>;
  avatar: string | null;
}

Subscriber Profile (/audience/subscribers/[id])

The subscriber profile page shows a complete view of an individual subscriber.

Sections

  • Contact information -- email, first name, last name, avatar
  • Engagement score -- numerical score and tier (hot/warm/cold)
  • Subscription details -- status, join date, last activity, unsubscribe date
  • Tags -- list of applied tags with add/remove actions
  • Lists -- mailing lists the subscriber belongs to
  • Custom fields -- key-value pairs for additional subscriber data
  • Activity timeline -- chronological feed of subscriber actions (opens, clicks, purchases)

Segment List (/audience/segments)

Segments are dynamic groups of subscribers defined by rules.

Features

  • Segment overview -- name, description, subscriber count, and creation date
  • Rule summary -- human-readable display of segment rules
  • Last refreshed -- timestamp of the last subscriber count recalculation
  • Quick actions -- edit rules, duplicate, or delete segments

Data Model

interface Segment {
  id: string;
  name: string;
  description?: string;
  subscriberCount: number;
  rules: SegmentRule[];
  lastRefreshed?: string;
  createdAt: string;
}

Segment Builder (/audience/segments/builder)

The segment builder provides a visual rule editor for creating complex audience segments.

Rule Structure

Rules are organized in groups with AND/OR logic:

Group 1 (AND):
  - Email opened in last 30 days
  - Tag contains "vip"

OR

Group 2 (AND):
  - Subscriber since > 90 days
  - List is "Premium Members"

Available Fields

Field Category Fields
Subscriber Data Email, first name, last name, join date
Email Activity Last opened, last clicked, open count, click count
Tags Has tag, does not have tag
Lists Is in list, is not in list
Dates Joined before/after, last active before/after
Custom Fields Any custom field with appropriate operators

Operators

Field Type Available Operators
String equals, not equals, contains, starts with, ends with
Number equals, greater than, less than, between
Date before, after, in last N days, more than N days ago
Tag has tag, does not have tag
List is in list, is not in list

Data Model

interface SegmentRule {
  field: string;
  operator: string;
  value: string | number | boolean | string[];
  logic?: 'and' | 'or';
}

Builder Features

  • Add rule -- add a new rule to the current group
  • Add group -- add a new AND/OR group
  • Remove rule -- delete individual rules
  • Live count -- real-time subscriber count preview as rules are configured
  • Save segment -- save with name and optional description

Tag Manager (/audience/tags)

Tags provide flexible, lightweight categorization for subscribers.

Features

  • Tag list -- all tags with subscriber counts
  • Group organization -- tags organized by groups (e.g., "Source", "Interest", "Status")
  • Color labels -- optional color assignment for visual distinction
  • Subscriber count -- number of subscribers with each tag
  • Tag actions -- rename, delete, merge, or view subscribers with a tag

Data Model

interface Tag {
  id: string;
  name: string;
  subscriberCount: number;
  group: string;
  color?: string;
  createdAt?: string;
}

List Management (/audience/lists)

Mailing lists provide structured subscriber organization.

Features

  • List overview -- name, description, subscriber count, and creation date
  • Double opt-in toggle -- enable or disable double opt-in for the list
  • Welcome email -- configure an optional welcome email for new subscribers
  • List stats -- total subscribers, active subscribers, unsubscribed, bounced, average open rate, average click rate

Data Model

interface SubscriberList {
  id: string;
  name: string;
  description?: string;
  subscriberCount: number;
  doubleOptIn?: boolean;
  welcomeEmail?: string | null;
  createdAt: string;
  stats?: SubscriberListStats;
}

Growth Tools (/audience/forms)

Growth tools help you acquire new subscribers through various form types.

Form Types

Type Description
embedded Inline form embedded on a webpage
popup Modal/overlay form triggered by behavior
landing / landing-page Standalone signup landing page

Features

  • Form list -- all forms with type, status, and performance metrics
  • View count -- number of times the form was displayed
  • Submission count -- number of successful submissions
  • Conversion rate -- percentage of views that resulted in submissions
  • Status toggle -- activate or deactivate forms
  • List assignment -- assign new subscribers to specific lists

Data Model

interface GrowthForm {
  id: string;
  name: string;
  type: 'embedded' | 'popup' | 'landing' | 'landing-page';
  views: number;
  submissions: number;
  conversionRate: number;
  status?: 'active' | 'inactive';
  listIds?: string[];
  createdAt?: string;
}

Import Tool (/audience/import)

The import tool provides CSV-based subscriber import.

Features

  • File upload -- drag-and-drop or click-to-upload CSV files
  • Column mapping -- map CSV columns to subscriber fields
  • Duplicate handling -- skip, update, or overwrite existing subscribers
  • List assignment -- assign imported subscribers to a mailing list
  • Import progress -- real-time progress with processed, imported, skipped, and duplicate counts
  • Import history -- log of past imports with status and results

Data Model

interface ImportJob {
  id: string;
  fileName: string;
  totalRows: number;
  imported: number;
  skipped: number;
  duplicates: number;
  status: 'pending' | 'processing' | 'completed' | 'failed';
  createdAt: string;
}

Suppression List (/audience/suppressions)

The suppression list prevents emails from being sent to specific addresses.

Features

  • Suppression entries -- email address, reason, and date added
  • Add entries -- manually add email addresses to the suppression list
  • Bulk operations -- add or remove multiple addresses at once
  • Search -- search for specific email addresses in the list

Data Model

interface SuppressionEntry {
  id: string;
  email: string;
  reason: string;
  dateAdded?: string;
  addedAt?: string;
}