# Email and fan CRM

Status: In progress

Fanful already treats email as more than a signup form: newsletter opt-in, campaign drafts, previews, broadcast sends, suppression rows, inbound messages, replies, events, and usage tracking are modeled in the app. Provider limits and mailbox integration boundaries still matter.

## What is usable now

- The newsletter form writes pending subscribers to D1 and sends a confirmation magic link.
- /admin/email can save drafts, send previews, and send broadcasts to confirmed subscribers who are still eligible for General updates.
- Suppression rows exclude unsubscribed, bounced, complained, manually blocked, or otherwise suppressed addresses before provider sends.
- Inbound message APIs can store, mark read, archive, and reply to messages that route through the Worker path.
- email_usage_daily records transactional previews, broadcast recipient attempts, inbound counts, and stored bytes for future billing or quota decisions.

## Fan value

- Fans can hear from the creator without relying only on social feeds.
- Email preferences and unsubscribe/suppression state can be respected from the same account and subscriber model.
- Replies can eventually become part of fan support instead of vanishing into a separate inbox.

## Creator value

- Creators can draft and preview campaigns where subscriber, purchase, lesson, and membership context can later converge.
- Inbound capture gives Fanful a path to an online inbox while still forwarding mail to a normal external mailbox.
- Usage rows let pricing change later without losing historical send and storage records.

## Evidence in the current stack

- Email portal: docs/features/email-portal.md documents newsletter confirmation, campaign drafts, previews, broadcasts, usage tracking, and suppression behavior.
- Inbound path: The email portal notes document /api/admin/inbound-messages for message storage, read/archive state, replies, and usage increments.
- Analytics labels: Email open and click counts are documented as directional signals, not perfect proof of individual reading.

## Boundaries

- Cloudflare Email Service free sending is limited to account-owned verified addresses; arbitrary listener broadcasts may require a paid Cloudflare plan and permissions.
- Replies sent only from Gmail are not automatically visible to Fanful until a mailbox integration exists.
- Open and click tracking should stay opt-in and described as directional because clients proxy or block tracking.

## Pricing notes

- Fanful pricing includes outbound email send limits because email can become a direct cost driver.
- Inbound message storage and attachments can become storage usage when raw or normalized bodies are preserved.

## Related pages

- [All features](/features): Return to the Fanful feature catalog.
- [Pricing](/pricing): Compare outbound email and fan-record limits.
- [Roadmap](/roadmap): Track broader audience and CRM hardening.
- [Markdown feature catalog](/features.md)
- [HTML feature page](/features/email-and-fan-crm)
