Campaign Management

Overview

The Campaign Management feature lets school administrators send bulk emails to filtered groups of users and track delivery and engagement metrics in real time. Every bulk email sent through the platform is automatically recorded as a campaign, with per-recipient tracking for opens and clicks.


Accessing Campaigns

Navigate to Campaigns in the admin menu. You will see a list of all campaigns sent from your school, sorted from most recent to oldest.


Sending a Campaign

Campaigns are created automatically whenever you send a bulk email through the Messages section using a mailing list filter. There is no separate "create campaign" step — the campaign is recorded the moment you send the email.

Available recipient filters:

Filter Description
Ongoing / Upcoming / Current / Ended enrollments Target users by their enrollment status
Online enrollments Users enrolled in online courses
Upcoming / Past bookings Target users by booking time range
Valid pass holders Users with an active pass
Active subscription holders Users with a running subscription
Past orders Users who ordered in the last N months
Recently created accounts Newly registered users
Active users Users with active status
Group A specific user group

You can further narrow recipients by trainer, category, marketing/newsletter preferences, and whether to exclude remote courses.


Message Types

When sending, choose the type that matches your intent:

Type Description
Operational Transactional messages (confirmations, reminders). No unsubscribe link required.
Marketing Promotional emails. Includes an unsubscribe link and complies with RFC 8058 one-click unsubscribe.
Newsletter Newsletter emails. Also includes unsubscribe and one-click unsubscribe support.

Campaign List

The campaign index shows a summary row for each campaign:

Column What it shows
Sent at Date and time the campaign was dispatched
Campaign name Optional name, or "Untitled" if not set
Type Operational / Marketing / Newsletter badge
Recipients Total intended recipient count
Sent Number handed off to the email provider, with a % of recipients
SES Delivered Confirmed deliveries from AWS SES
Bounced Permanent and soft bounces combined
Opened Unique opens, with open rate %
Clicked Unique clicks, with click rate %

Campaign Detail View

Click View on any campaign to see the full report.

Summary cards

  • Recipients — total addresses targeted
  • Sent — emails handed to the email provider, with sent rate
  • SES Delivered — confirmed deliveries; also shows bounced, complained, and failed counts as badges if any exist
  • Pending — emails still awaiting a delivery status notification from SES
  • Opened — unique opens with open rate
  • Clicked — unique link clicks with click rate

Campaign metadata

Displays the email subject, send timestamp (with timezone), the admin who sent it, and the message type.

Per-recipient table

A full drill-down of every recipient with:

  • Recipient name (linked to their profile)
  • Whether the email was sent
  • SES delivery status (color-coded: green = delivered, red = bounced/failed)
  • Whether the email was opened, with timestamp and open count
  • Whether a link was clicked, with timestamp and click count

Rows are highlighted red for bounces and failures, and green for opens.


How Tracking Works

Open tracking: A 1×1 invisible pixel is appended to each email. When an email client loads images, the pixel request is recorded as an open.

Click tracking: Links in the email are automatically rewritten to route through the platform before redirecting to the original destination. Each click is recorded before the user reaches their destination.

SES delivery status: AWS SES sends delivery, bounce, soft bounce, complaint, and failure events back to the platform in real time via webhooks. These update each recipient's delivery status automatically.

Note: Open tracking depends on the recipient's email client loading images. Clients that block remote images will not register opens even if the email was read.


Unsubscribe Compliance

For Marketing and Newsletter campaigns, the platform automatically:

  • Includes an unsubscribe button in the email footer
  • Adds a List-Unsubscribe header supporting one-click unsubscribe (RFC 8058)

Recipients who unsubscribe are excluded from future campaigns of the same type based on their stored preferences.