---
title: Advocacy Campaigns
description: Help supporters contact elected representatives through email campaigns with postal code lookup and response tracking.
icon: material/email-fast
tags:
  - guide
  - admin
  - influence
  - campaigns
---

# Advocacy Campaigns

Help supporters contact their elected representatives through email campaigns.


![Campaigns Management](../../../assets/images/screenshots/admin/campaigns.png){ loading=lazy }

---

## How It Works

1. **An admin creates a campaign** — writes the email subject and body, selects which government levels to target (federal, provincial, municipal, school board), and publishes it.
2. **A supporter visits the campaign page** — enters their postal code to look up their representatives.
3. **The supporter sends the email** — either directly through the platform ("Send Now") or by opening it in their own email app (Gmail, Outlook, etc.).
4. **Responses get tracked** — supporters and admins can share representative responses on the Response Wall, with upvoting and moderation.

---

## Key Features

- **Postal code lookup** — powered by the Represent API, returns representatives at all government levels
- **Two send methods** — server-sent SMTP (tracked) or mailto link (opens user's email app)
- **Email editing** — optionally let supporters personalize the email before sending
- **Response Wall** — public wall where people share how their representatives responded, with moderation and verification
- **Campaign stats** — track emails sent, responses received, and upvotes
- **Featured campaigns** — highlight important campaigns on the public listing page

---

## User-Submitted Campaigns

Registered (non-temporary) users can create their own advocacy campaigns and submit them for admin review. See the [user-facing submission guide](../../user-guide/campaigns.md#submit-your-own-campaign) for the supporter's perspective.

- **Public submission route** — users visit `/campaigns/create` to draft a campaign through a guided wizard
- **3-step wizard** — the submission flow walks users through campaign details (title, description, government levels), email template (subject and body), and a final review step before submitting
- **My campaigns dashboard** — users can view and manage their submitted campaigns at `/campaigns/mine`, including checking moderation status and editing campaigns that have been sent back for changes
- **Restricted fields** — user-submitted campaigns have limited options compared to admin-created ones (no SMTP sending, no highlight, no custom recipients); only the mailto link fallback is enabled by default
- **Auto-moderation status** — newly submitted campaigns start in `PENDING_REVIEW` status and remain in `DRAFT` until an admin approves them
- **Edit restrictions** — users can only edit their own campaigns, and only when the moderation status is `PENDING_REVIEW` or `CHANGES_REQUESTED`; editing automatically resets the status back to `PENDING_REVIEW`
- **Rate limiting** — campaign submissions are rate-limited to 5 per hour per IP to prevent abuse
- **XSS protection** — all user-supplied text (title, description, email subject, email body) is HTML-escaped before storage

---

## Campaign Moderation

Admins review user-submitted campaigns before they go live.

- **Moderation queue** — accessible at `/app/campaign-moderation`, showing all user-generated campaigns filtered by moderation status (pending, approved, rejected, changes requested)
- **Moderation actions** — for each campaign in the queue, admins can:
    - **Approve** — sets the moderation status to `APPROVED` and the campaign status to `ACTIVE`, making it publicly visible
    - **Reject** — marks the campaign as `REJECTED` with an optional reason visible to the submitter
    - **Request changes** — sets the status to `CHANGES_REQUESTED` with feedback, allowing the user to revise and resubmit
- **Moderation stats** — the queue page displays counters for total user-generated campaigns, pending reviews, approved, rejected, and changes-requested counts
- **Reviewer tracking** — each moderation action records the reviewer's user ID and timestamp
- **Search and filter** — the moderation queue supports searching by campaign title, submitter name, or email, and filtering by moderation status

---

## Campaign Analytics

The Campaign Effectiveness dashboard provides cross-campaign performance analytics at `/app/influence/effectiveness`.

- **Performance tab** — per-campaign KPIs including total emails sent, email delivery status breakdown, response counts, response rates, and call counts; top campaigns visualized as a horizontal bar chart
- **Representatives tab** — tracks individual representative responsiveness across all campaigns; shows emails received, responses given, verified response count, and response rate per representative; sortable by response count, response rate, or name; includes government level distribution
- **Geography tab** — engagement breakdown by geographic area; group results by postal code, city, or province; enriched with city/province data from the postal code cache
- **Funnel tab** — conversion funnel visualization showing progression from emails sent to unique participants to responses received to verified responses, plus calls made; includes percentage-of-first and stage-to-stage dropoff rates
- **Trends tab** — time-series activity chart showing daily or weekly email and response volumes; default view covers the last 30 days; merged email and response series for side-by-side comparison
- **Global filters** — all tabs share campaign and date range filters; select a specific campaign or view aggregate data across all campaigns

---

## Admin Routes

- `/app/campaigns` — create, edit, and manage campaigns
- `/app/campaign-moderation` — review and moderate user-submitted campaigns
- `/app/influence/effectiveness` — campaign effectiveness analytics dashboard
- `/app/responses` — moderate submitted responses
- `/app/email-queue` — monitor outgoing email delivery

## Public Routes

- `/campaigns` — browse active campaigns
- `/campaigns/create` — submit a new user-generated campaign (requires login)
- `/campaigns/mine` — view and manage your submitted campaigns (requires login)
- `/campaign/:slug` — take action on a specific campaign
- `/campaign/:slug/responses` — view the response wall
