Supernotify Notification Flow

Supernotify Notification Flow A data-flow diagram generated by Archify. 01 / Home Assistant caller 02 / Notification 03 / Delivery selection 04 / Target generation 05 / Home Assistant Integrations Automation / script · calls an action · 01 / Home Assistant caller · Home Assistant · www.home-assistant.io Automation / script calls an action Home Assistant Notification · created from call · 02 / Notification · SupernotifyEngine Notification created from call SupernotifyEngine Archive + event · supernotify_notification · 02 / Notification · file / MQTT / event Archive + event supernotify_notification file / MQTT / event Delivery selection · evaluates conditions · 03 / Delivery selection · ranked deliveries Delivery selection evaluates conditions ranked deliveries Scenarios · named + conditions · 03 / Delivery selection · configured Scenarios named + conditions configured Targets + envelopes · per delivery · 04 / Target generation · resolve + select Targets + envelopes per delivery resolve + select Recipients · from person entities · 04 / Target generation · people registry Recipients from person entities people registry Transport · e.g. email, mobile_push · 05 / Home Assistant Integrations · reshapes data Transport e.g. email, mobile_push reshapes data Home Assistant action · e.g. notify.* · 05 / Home Assistant Integrations · owned by integration · www.home-assistant.io Home Assistant action e.g. notify.* owned by integration supernotify.notify message, target, data priority, message ConditionVariables active scenarios enable / disable occupancy condition variable each delivery run concurrently person → targets all people if no target envelope delivery data async_call Home Assistant Context outcome after all deliveries Legend notification path after all deliveries stored state evaluated input

Delivery selection

  • • Occupancy and ConditionVariables built first, then scenarios whose conditions match (or named in apply_scenarios)
  • • Deliveries = scenario-enabled + inclusion: default + the call's delivery block, less disabled ones
  • • Per delivery, at send time: priority and delivery conditions checked

Target generation

  • • Runs separately for each selected delivery, concurrently
  • • People resolved to direct targets; scenario targets added; delivery picks its categories
  • • Envelope data: delivery, then target, then scenario, then the call's data

Outcome + ownership

  • • Delivered = the Home Assistant action returned without error
  • • Nothing delivered → fallback deliveries
  • • The integration owns the actual send once the action is called