Skip to main content

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:

  1. ChurchWiseAI LTD physical address: 125 Concession St, Ingersoll, ON N5C 1G2
  2. An unambiguous one-click unsubscribe link that writes to churches.email_do_not_contact = true
  3. 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.
  • 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