Skip to content

# Self-Service Contact Profile

Give supporters a private, token-based link to view and manage their own contact profile -- no login required.

## How It Works

1. An admin generates a profile link from the People CRM -- each link contains a unique 64-character hex token with a configurable expiration (24 hours to 1 year).
2. The supporter opens the link -- if the link is password-protected, they enter the password first. If expired, they see a branded expiration notice.
3. The supporter views and edits their profile -- they can update their name, email, phone, address, and cover photo.
4. Communication preferences -- supporters can opt out of email and/or SMS communications with simple toggle switches.

## Profile Tabs

- Profile -- edit display name, first/last name, email, phone, and address
- Preferences -- toggle email and SMS opt-out switches
- Activity -- paginated timeline of all engagement: emails sent, responses submitted, shift signups, canvass visits, donations, video views, and profile edits
- Social tabs -- if the viewer is a logged-in user viewing their own profile and the social feature is enabled, additional tabs appear: Friends, Feed, Achievements, Notifications, and Discover

## Security

- Token-based access -- no account or login needed; the URL token grants access
- Password protection -- admins can optionally set a password on the profile link
- Expiration -- links expire after a configurable duration, showing a branded message with the expiration date
- Rate limiting -- separate rate limits on profile views, edits, photo uploads, and password attempts
- Cover photo -- supporters can upload a JPEG, PNG, or WebP cover photo (max 5 MB), automatically resized to 800x400

## Engagement Score

Each profile shows a circular engagement score (0-100) calculated from the contact's activity across the platform -- emails, shifts, canvass visits, donations, and video views.

## Public Routes

- `/profile/:token` -- self-service contact profile page