Skip to content

Mail Document Flow

Mail uses contact and subscription status enums for directory reachability. Message outbox state lives on framework email entities — not an EtaActionPolicy Actions menu.

Hub: Target Document Flow. Overview: Mail. Campaigns: Newsletter Document Flow.

  • Active
  • NotYetVerified
  • Inactive / Bounced
  • Unsubscribed / Forgotten
Email contact

#Statuses (EmailContactStatus)

Status Meaning
Active Eligible source record
Inactive Disabled / blacklisted source
NotYetVerified Valid email; consent/verification incomplete

Also: IsEmailReachable on the unified contact; per-channel detail via subscription resolver.

Contact subscription (per channel)

#Statuses (ContactSubscriptionStatus)

Active, Inactive, Unsubscribed, Bounced, NotYetVerified, Forgotten

Contact subscription — per-channel status

flowchart TB
  Start((Subscribe)) --> NYV[NotYetVerified]
  NYV -->|Verify consent| Active[Active]
  Active -->|Opt out| Unsub[Unsubscribed]
  Active -->|Hard bounce| Bounced[Bounced]
  Active -->|Pause channel| Inactive[Inactive]
  Inactive -->|Resume channel| Active
  Active -->|GDPR forget| Forgotten[Forgotten]

  class Start egkStart
  class NYV egkActive
  class Active egkSuccess
  class Inactive,Bounced egkWarn
  class Unsub,Forgotten egkTerminal
Compose / directory / outbox

UI surfaces: Compose, Contact Directory, Dashboard (toolbars present). Outbox/send progress uses entity fields on the framework email pipeline.

Not implemented: Decline Rejection, Decline Cancellation, Validate/Submit-to-ETA. Use compliance modules for those verbs. Campaign send statuses live under Newsletter Document Flow.

#Post-action sync

Directory grids refresh after contact/subscription updates. Failed sends leave outbox items pending/failed without inventing Approve/Reject.

#Scenarios

Scenario Result
Complete verification Contact/subscription → Active
Hard bounce Subscription → Bounced
Opt out Unsubscribed
GDPR forget Forgotten

Reconnecting to the server…

Please wait, or reload the page.