docs/.mintlify/skills/design-workflow/references/severity-and-critical.md
severity and critical are two independent workflow-level dials. Most workflows set neither.
| Value | Meaning | When to use |
|---|---|---|
| unset | No prioritization | Default. Use for the vast majority of workflows. |
LOW | Informational, no urgency | Marketing nudges, low-priority lifecycle. |
MEDIUM | Worth surfacing | Mentions, light alerts. |
HIGH | "Deal with this today" | Payment failed, trial expiring tomorrow, KYC required. |
Severity is purely visual — it does not change preferences, digest, or delivery. It only affects how the Inbox renders the notification (color, glow, bell color), and informs the digest skip rule below.
See
inbox-integration/SKILL.md("Severity styling") for the visual mapping (colorSeverityHigh,severityHigh__notificationBar, etc.).
critical: true is the runtime override. When set:
subscriber.isOnline == false).Reserve critical: true for must-deliver events:
A workflow can be
critical: truewithseverityunset — the two dials don't depend on each other.
readOnly vs critical — the trapThese are easy to confuse. They control different things:
| Flag | Where it lives | What it does |
|---|---|---|
preferences.all.readOnly: true | Workflow's preference defaults | Hides the workflow from the Preferences UI. Subscribers can't toggle channels for it. |
critical: true | Workflow-level flag | Bypasses preferences, digest, and delays at runtime. Delivers regardless of opt-out. |
In practice you usually want critical: true (forces delivery). readOnly: true alone just removes the toggle from the UI but does not override existing subscriber overrides. See manage-preferences/SKILL.md for the resolution order.
| Scenario | Preferences applied? | Digest runs? | Delays applied? | Inbox styling |
|---|---|---|---|---|
severity unset, critical: false | yes | yes | yes | default |
severity: HIGH, critical: false | yes | no | yes | high |
severity: HIGH, critical: true | no | no | no | high |
severity unset, critical: true | no | no | no | default |
Digest is automatically skipped when severity: HIGH or critical: true.
| Use case | severity | critical |
|---|---|---|
| Order confirmation | unset | false |
| Comment on your post | unset | false |
| Payment failed | HIGH | false |
| Trial expiring tomorrow | HIGH | false |
| Account suspended (KYC required) | HIGH | true |
| Forgot password / OTP | unset | true |
| Security alert | HIGH | true |
| Marketing / weekly newsletter | unset | false |
severity: HIGH doesn't make the workflow critical — it still respects preferences and runs delays. Add critical: true if you need bypass.critical: true doesn't auto-set severity — set severity: HIGH explicitly if you also want the high-severity Inbox styling.readOnly: true won't force delivery — it only hides the workflow toggle. Use critical: true to actually force delivery.channel-selection.md — how critical expands the channel mixdigest-defaults.md — when digest is auto-skippedworkflow-templates.md — templates that show critical in contextmanage-preferences/SKILL.md — preference resolution order