About sections and policies have a dedicated set of triggers and actions for the "publish → require acknowledgement → chase unread → review stale revisions" loop.
Useful triggers
about.section_created/about.section_updated— fire when content changes.about.section_read/about.section_read_completed— fire when staff acknowledge.about.section_unread_for_days— fire on individual users who haven't read after N days.about.revision_stale_for_days— fire when the latest revision is older than N days.All five mirrored for
policy.*.
Useful actions
about.mark_required_reading/policy.require_acknowledgement— flag a section as required reading. Currently the ONLY way to set theensure_readflag in the database — there is no UI control for it.about.remind_unread/policy.remind_unread— send reminder to staff who haven't marked it read.about.publish_section/policy.publish_section— publish a new section.
Common pattern: stale-review chase
Trigger:
policy.revision_stale_for_daysthreshold 365.Action:
notify.emailto the realm admin — "Policy [X] is due for annual review."
Common pattern: unread-reminder loop
Trigger:
policy.section_unread_for_daysthreshold 7 withrequire_ensure_read = true.Action:
policy.remind_unread(ornotify.emailif you want a richer email).
Heads up — The
about.section_unread_for_daysandpolicy.section_unread_for_daystriggers respect therequire_ensure_readflag by default. Until a section is flagged as required reading (viaabout.mark_required_readingorpolicy.require_acknowledgement), those triggers fire for nothing.