CASL + CAN-SPAM compliant footer standard for all outreach
Status
DECIDED
Context
The outreach infrastructure was built to send cold emails to church contacts sourced from the PewSearch database. Cold email to Canadian recipients is governed by CASL (Canada's Anti-Spam Legislation), which requires:
- Sender identity clearly stated
- Physical mailing address included
- Unambiguous unsubscribe mechanism in every message
CAN-SPAM (US) has similar requirements. ChurchWiseAI LTD is registered in Ontario — all outreach is subject to CASL regardless of recipient country.
The business address was registered at formation: 125 Concession St, Ingersoll, ON N5C 1G2.
Decision
Every outreach email MUST include:
- ChurchWiseAI LTD physical address: 125 Concession St, Ingersoll, ON N5C 1G2
- An unambiguous one-click unsubscribe link that writes to
churches.email_do_not_contact = true - The unsubscribe action must be honoured immediately — no "processing time"
The DNC flag (churches.email_do_not_contact) is the enforcement column.
All outreach query helpers auto-exclude rows where this flag is true. The
outreach workspace at /founder/[token]/outreach enforces DNC at the query
layer, not as a post-send filter.
Transactional emails (welcome, magic link, billing, payment-failed) are exempt from DNC gating under CASL — a pastor who unsubscribes from marketing emails must still receive their login link and billing notices.
Rationale
CASL violations carry fines up to $10M CAD per violation. For a solo-founder bootstrapped company, a single CASL enforcement action would be existential. The cost of compliance is one footer line and a working unsubscribe endpoint.
Enforcing DNC at the query layer (rather than at send time) ensures no approved draft can slip through to a pastor who has unsubscribed, even if the approval happens days after the initial draft was created.
Consequences
- Good: Compliant with both CASL and CAN-SPAM from day one. No exposure to regulatory action. Unsubscribe is immediate and persistent.
- Bad: Every outreach template requires the footer — agents and content writers must be reminded not to remove it.
- Reversible? The compliance requirement is not reversible. The physical address used can change if the business address changes (requires updating all templates and this decision record).
Alternatives considered
- List-unsubscribe header only (no visible footer link) — rejected; CASL requires an accessible unsubscribe mechanism that a non-technical recipient can use without email client support.
- Suppress at send time — rejected; creates a race condition where an approved draft can be sent to someone who unsubscribed between approval and send. Query-layer enforcement is safer.
Links
- Business address reference:
~/.claude/projects/C--dev/memory/reference_business_address.md - Flows doc:
knowledge/flows/unsubscribe-and-dnc-gating.md - DECISION_LOG entry:
## 2026-04-13 (Hope Community bug + 9 CASL/DNC gaps closed) - Related decision:
2026-04-13-outreach-send-workspace