Running a campaign

Admin platform

Everything campaign staff use to run the operation. Same single sign-on for the whole team, role-based access, tenant isolation by default.

Content management

Donation page editor

Live preview as you edit. Brand, copy, preset amounts, custom fields, receipt overrides, exit-intent config — all in one tabbed editor with sane defaults inherited from your tenant settings.

Event editor

Mirror of the page editor with ticket types, capacity, named- attendees toggle, and per-event receipt overrides. Save the basics first, refine ticketing without losing context.

Theme inheritance

Tenant defaults (brand colour, fonts, logo) populate every new page and event. Per-resource overrides for one-off campaigns without retyping eight settings.

Slug conflict guard

Donation page and event slugs share a namespace on the tenant's domain. The editor refuses to publish a page that would shadow an event (or vice versa).

Donor & donation tools

Donor list with sort + search

Click-to-sort columns for name, email, lifetime value, gift count, last gift date. Search by name / email / phone / postal-code substring. Tag filter and inline tag-display per donor.

Donations list

Filter by kind (donations / event tickets / both), status (completed / include-incomplete / all), and source code. Totals widget at the top shows gross, money-received, and not-received across the active filter.

Tags & auto-tagging

Free-form chips, autocomplete from the tenant's existing vocabulary. Donors who give through a tagged page or event automatically inherit the tags — segment without manual lists.

Refunds + dispute handling

Issue Stripe refunds straight from the donation detail page; the donor sees the refund in their portal. Disputes show up automatically via webhook with the legally-defensible net contribution calculation.

Reporting & exports

CSV exports with saved presets

Date range, kind, status, and source filters compose into a CSV download. Save the filter set as a named preset ("Monthly EC filing", "Year-end tax receipts") so the next run is one click.

Tax-year-aware date math

Standard tax-year ranges and arbitrary date ranges for one-off reports. Year boundaries align with each tenant's jurisdiction.

Per-tenant Elections Canada columns

The CSV includes the fields EC and provincial returns expect — citizenship attestation, full address, transaction reference, fee disclosure.

Team & multi-tenancy

Role-based admin access

Owner, admin, viewer roles per tenant. Viewers see everything but can't mutate; admins can manage donations and pages; owners can manage team and settings.

Team invitations

Invite by email with the right role pre-selected. Branded invite emails from your verified sending domain. Re-invite deleted users without resetting the row.

Profile + audit-of-self

Every admin sees their own session activity and can sign out other devices. Future: full per-tenant audit log.