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.