Triggers

System Event

Runs your flow when the Mac itself does something — sleeps, wakes, locks, changes network, mounts a volume, or meets a Bluetooth device.

trigger.system_event
TRIGGERSystem Event

At a glance

Fires when
The chosen macOS event happens
Emits
The event, plus keys specific to it
Events
Sleep · Wake · Screen Lock · Screen Unlock · Dark Mode · Network · Volume Mount/Unmount · Bluetooth Connect/Disconnect

Set it up

Pick one event. The fields below the dropdown change with it — only the Bluetooth events have any.

The inspector for System Event. Bluetooth adds a name filter and a paired-only switch.
The inspector for System Event. Bluetooth adds a name filter and a paired-only switch.

Configure

FieldDefaultWhat it does
EventWakeSleep, Wake, Screen Lock, Screen Unlock, Dark Mode Changed, Network Changed, Volume Mount, Volume Unmount, Bluetooth Device Connected, or Bluetooth Device Disconnected.
Device Name Filter—Bluetooth events. Fire only when the device name contains this text, case-insensitively. The connect and disconnect events each keep their own filter.
Paired Devices OnlyOnBluetooth events. Only devices paired with this Mac fire — what the Bluetooth menu shows. Each event keeps its own switch.
Custom Arguments—Extra key-value pairs merged into the payload.

Output

event and timestamp always arrive. The rest depend on which event fired.

KeyTypeValue
eventStringThe event that fired
timestampStringWhen it fired, ISO 8601
isDarkModeBooleanDark mode's new state (dark mode)
networkTypeStringwifi, cellular, wired, or other (network)
isConnectedBooleanWhether the network is up (network)
isExpensiveBooleanWhether it is metered (network)
volumeNameStringName of the volume (volume events)
volumePathStringWhere it mounted (volume events)
deviceNameStringThe Bluetooth device's name
deviceAddressStringIts MAC address, ac-88-fd-ee-30-66
deviceKindStringheadphones, audio, keyboard, mouse, gamepad, phone, computer, or unknown
transportStringclassic or ble
isPairedBooleanWhether it is paired with this Mac
deviceClassNumberRaw Bluetooth class-of-device; 0 for BLE
vendorIDStringHID vendor id, when available
productIDStringHID product id, when available

Example: dark mode, announced

System Event watches Dark Mode Changed. Template reads {{isDarkMode}}. Notification shows which way it went.

Three nodes. The system starts the flow.
Three nodes. The system starts the flow.

Paste this into the Flow Builder to get the same flow:

When macOS switches dark mode, notify me which mode it is now in.

Good to know

Bluetooth needs its own permission. The first time a Bluetooth flow arms, macOS asks. Denied, the trigger stays unarmed until you allow it in System Settings ▸ Privacy & Security ▸ Bluetooth.

Disconnects wait three seconds. A device that comes back inside that window — AirPods hopping to your phone and back — emits nothing. A real disconnect fires about three seconds after the drop.

Waking counts as connecting. Devices that reconnect on wake, or when the radio comes back on, fire real connect events on purpose: "when my AirPods connect, set the volume" should run then too.

Paired Devices Only exists because of phantom links. Some devices open a second, unpaired low-energy link alongside the real one — AirPods do it in their case — which would otherwise fire a duplicate connect under the same name. Turn it off to see every link, and route on {{isPaired}} or {{transport}}.

Names shift between connect and disconnect. The personalised name ("Greg's AirPods Pro") is available while connected; a disconnect may only know the generic one. Filters match either as a substring, but an exact match should use {{deviceAddress}}.