Mobile Actions and Action Groups¶
Note
This page is about the buttons on an Actionable Notification (referred to throughout as Mobile Actions), not Home Assistant Actions (previously known as 'services') such as supernotify.notify - those are documented at Actions.
Mobile Actions currently only affect the Mobile Push transport - other transports either ignore actions/action_groups entirely, or only pick up the single action_url link described below.
Note
Don't confuse action_groups: here with mobile_push_group - that's an unrelated Companion App feature for visually stacking notifications together, named group for consistency with the Companion App's own docs even though it clashes with "action groups" here.
Ad-hoc actions on a single notification¶
Add an actions list directly to the data: of a notify call. Each entry maps almost directly onto the Home Assistant Mobile App Actions:
- action: supernotify.notify
data:
message: Garage door has been open for 10 minutes
actions:
- action: CLOSE_GARAGE_DOOR
title: Close it
icon: "sfsymbols:door.garage.closed"
Recognized fields per action:
| Field | Notes |
|---|---|
action | Required to make a real button - the identifier delivered back on mobile_app_notification_action |
title | Button label |
action_url | A URL (relative URLs are resolved against your HA external/internal URL) |
action_url_title | Optional explicit title for action_url - see Auto-fetched link titles below |
anything else (icon, uri, destructive, behavior, textInputButtonTitle, textInputPlaceholder, activationMode, authenticationRequired, ...) | Passed straight through to the Companion App - see its action fields reference |
Action Groups¶
Ad-hoc actions are fine for a one-off, but most actionable notifications are reused across many notifications (arm/disarm buttons, camera snooze, etc). Define them once under the top-level action_groups: YAML key, then attach them by name.
action_groups:
alarm_panel_disarm:
- action: ALARM_PANEL_DISARM
title: Disarm Alarm Panel
icon: "sfsymbols:bell.slash"
alarm_panel_reset:
- action: ALARM_PANEL_RESET
title: Arm Alarm Panel for at Home
icon: "sfsymbols:bell"
Each group is a list of the same action objects described above (action/title plus any extra Companion App fields). There's also an action_template/title_template pair in the schema for a templated action/title - these are currently accepted but never rendered, so the literal {{ ... }} template text would be sent to the app. Stick to plain action/title for now.
Attaching groups to a notification¶
- action: supernotify.notify
data:
message: Someone is at the front door
action_groups:
- alarm_panel_disarm
action_groups in a notify call is a list of group names. Only those named groups' actions are added.
Attaching groups from a scenario¶
More commonly, a Scenario attaches the group instead, so the right buttons appear automatically depending on state, without every automation having to know about them:
scenarios:
alarm_armed:
conditions:
- condition: state
entity_id: alarm_control_panel.home_alarm
state: [armed_home, armed_night, armed_away]
action_groups:
- alarm_panel_disarm
- alarm_panel_reset
Groups from every currently-enabled scenario are unioned together with any explicit action_groups on the call itself.
There's no implicit "all groups" default
It might look, from the transport code, like omitting action_groups entirely means "use every configured group" - but in practice a plain notification (no matching scenario, no explicit action_groups: in the call) ends up with no group actions attached at all. An empty action_groups: [] on the call behaves the same as omitting it: scenarios can still add groups on top. To guarantee no group actions ever appear on a given notification, don't enable a scenario that adds them.
A scenario referencing a group name that isn't defined under the top-level action_groups: is dropped at startup with a logged error and a repair issue, rather than failing to load.
Snoozing from a Mobile Action¶
When a notification includes media.camera_entity_id, Supernotify automatically appends one more action - SUPERNOTIFY_SNOOZE_EVERYONE_CAMERA_<camera_entity_id> - with a text-input prompt for minutes to snooze. This, and the wider SUPERNOTIFY_<COMMAND>_<RecipientType>_<TargetType> action naming scheme that Supernotify listens for on mobile_app_notification_action events, is covered in full on the Snoozing page - you don't need to wire up your own automation for it.
Auto-fetched link titles¶
If an action (ad-hoc or from a group) has action_url set but no action_url_title, Mobile Push will fetch the page at that URL and use its HTML <title> as action_url_title. Titles are cached per-URL for the life of the transport; a failed fetch is not retried for 15 minutes. This never affects whether the button appears - it only adds metadata to the action object.