Triggers

Photo Added

Runs your flow when a new photo reaches your Photos library — an iPhone sync, an import, a save from Messages or Mail.

trigger.photo_added
TRIGGERPhoto Added

At a glance

Fires when
A photo is added to the Photos library
Emits
Working-copy path, name, extension, asset id, screenshot flag, creation date
Needs
Full Photos access

Set it up

The node watches the Photos library itself, not a folder on disk, so it sees photos that never land as loose files. macOS asks for Photos access the first time the flow arms.

The inspector for Photo Added. Album and Screenshots Only narrow what fires.
The inspector for Photo Added. Album and Screenshots Only narrow what fires.

Configure

FieldDefaultWhat it does
Screenshots OnlyOffFire only for photos the library marks as screenshots.
Album—Limit to photos added to one named album.
Download iCloud originalsOnWhen the original lives only in iCloud, fetch it so the flow gets real pixels. Off skips those photos — they fire with an empty filePath.
Custom Arguments—Extra key-value pairs merged into the payload.

Output

Every key is available downstream as {{key}}.

KeyTypeValue
filePathStringA temporary working copy of the original — empty when a cloud-only photo was skipped
fileNameStringName of the added photo
fileExtensionStringLowercased, no dot: heic
assetIdentifierStringThe photo's library identifier — the stable handle to it
isScreenshotBooleanWhether the photo is a screenshot
localImageAvailableBooleanWhether a working copy was made; false for a skipped cloud-only photo
creationDateStringWhen the photo was created, ISO 8601
timestampStringWhen the trigger fired, ISO 8601

Example: keep a copy of every new photo

Photo Added hands over the working copy. Move File, set to Copy, puts it in ~/Pictures/Inbox. Notification confirms the filename.

Three nodes. A photo syncs in, a permanent copy is filed.
Three nodes. A photo syncs in, a permanent copy is filed.

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

When a photo is added to my Photos library, copy it into ~/Pictures/Inbox and notify me which one it was.

Good to know

filePath is temporary. The working copy is swept up when the run ends. Wire in a Move File or Copy step for anything you want to keep.

Selected Photos is not enough. Limited access hides new photos from the app, so the trigger refuses to arm and says so. Grant full access in System Settings ▸ Privacy & Security ▸ Photos.

⌘⇧4 screenshots never reach the library. They land on the Desktop as ordinary files — point Directory Changed at that folder instead. Screenshots Only is for screenshots that did get into Photos, usually from an iPhone.