Type Alias EmailSendOutcome
EmailSendOutcome:
| { reason: "NO_RECIPIENTS"
| "NO_ACTIVE_TEMPLATE"; sent: false }
| {
contentHash: string;
sent: true;
statusVariant: StoredEmailTemplate["statusVariant"];
templateKey: EmailTemplateKey;
version: number;
}
Type Declaration
- { reason: "NO_RECIPIENTS" | "NO_ACTIVE_TEMPLATE"; sent: false }
- {
contentHash: string;
sent: true;
statusVariant: StoredEmailTemplate["statusVariant"];
templateKey: EmailTemplateKey;
version: number;
}
-
contentHash: string
-
sent: true
-
statusVariant: StoredEmailTemplate["statusVariant"]
-
templateKey: EmailTemplateKey
-
version: number
What a send actually did. The skip arms are deterministic non-sends the caller may surface (the lambda logs them; admin sendTest reports them to the operator); the sent arm identifies the exact copy that went out, so an audit row can record it (
emailTemplate.testSendRequestedcarries the content hash — EMAIL_TEMPLATES.md §4.6).