Skip to main content

Preferences and channel inheritance

Global and workflow preferences combine to determine ordinary notification eligibility. Channel names depend on the operation, and critical workflow policy can bypass ordinary preference suppression.

Preference inheritance and critical workflows​

SettingEffect
Global channel preferenceApplies across notification workflows.
Per-workflow channel preferenceFurther restricts that workflow. Ordinary delivery requires both levels to allow the channel.
global.enabled: falseSuppresses non-critical notifications under the preference policy.
Workflow critical: trueCan bypass ordinary preference suppression.
Explicit optional falsePreserves an opt-out where the field or map entry supports explicit presence.
Missing channelCan mean unsupported or inherited; do not interpret every omission as an explicit opt-out.

A critical workflow does not guarantee provider delivery or replace recipient authorization and business eligibility. Explain critical-notification policy in the preference UI.

Preference update semantics​

OperationUpdate behavior
Update global preferencesApplies across workflows. Omitted channels retain their current values.
Update workflow preferencesRequires workflowId; omitted channels retain their values. Use the global operation for global changes.
Batch workflow preference updateMissing workflow IDs are skipped. Compare updatedCount with the number of submitted entries.

Send only the settings the user changed; these operations patch preferences rather than replacing the entire set.

Channel names across operations​

API contextChannel vocabulary
Preference toggle keysinApp, push, email, sms, chat
Registered channelsCHANNEL_* enum values
Activity filtersProvider strings such as in_app and push; see activity filter fields.

Use the vocabulary defined by each operation.