Auto-save family photo emails to Google Photos albums

Every two hours, grab photos that family and close friends emailed you and file them into the right Google Photos album by sender or event.

Agentic Task
GmailGoogle PhotosPersonal ProductivityOperationsEmail AutomationData Sync

Build me an agent workflow that automatically archives photo attachments my family and close friends email me, sorted into a Google Photos album per sender (or per event when the subject names one).

Trigger: cron, every 2 hours.

Each run:

1. Use the Gmail List Messages operation with a query like `has:attachment newer_than:1d (from:mom@example.com OR from:dad@example.com OR label:family)` to find new image-bearing emails since the last run. Leave the sender list and label as workflow inputs the user can edit.

2. For each message, call Gmail Get a Message (format: full) to read headers (Subject, From, Date) and walk the payload parts to find image attachments (mimeType starts with image/, e.g. JPG, PNG, HEIC). For each image part, call Gmail Get Attachment to download the bytes (it returns base64url-encoded data; decode before uploading).

3. Reason about which album each set of photos belongs in. Default rule: one album per sender, named after the sender's display name (e.g. "Photos from Mom"). Override: if the subject line clearly names an event ("Hawaii 2026", "Emma's Birthday", "Wedding Weekend"), use that as the album title instead. Group attachments from the same thread together so a single trip lands in a single album.

4. Call Google Photos List Albums to find an existing album with that title. If none exists, call Create Album to make it. Remember: Google Photos only lets us see and edit albums this app created, so first-time users will start with fresh app-created albums.

5. Dedup before uploading: call Google Photos Search Media Items with an album filter on the target album, and skip any incoming attachment whose filename plus creationTime (the email's Date header) already exists in the album.

6. For each remaining image, call Google Photos Upload Bytes to get an upload token, then call Batch Create Media Items with the album id to attach the new items in one batch. Upload tokens expire after 24 hours, so do the batchCreate call promptly after uploading bytes (don't queue them up across runs).

7. For each newly created media item, call Update Media Item to set a short description derived from the email's subject line and sent date, e.g. "From Mom — \"Hawaii sunset\" — Mar 14, 2026".

Workflow inputs (so the user can edit without touching the prompt):

- senders: list of email addresses to watch

- label: optional Gmail label that also qualifies a message (e.g. "family")

- album_strategy: "per_sender" (default) or "single_album" with a single album name

- min_attachment_size_kb: optional, to ignore tiny tracking-pixel images

Be quiet on success. Only surface output when something needs the user's attention (e.g. an album hit its 20,000-item cap, or an attachment failed to upload). Do not re-process messages from previous runs; key off the email's internalDate and only handle messages newer than the last successful run timestamp.

Additional information

What does this prompt do?
  • Checks your inbox every two hours for new emails from a list of people you care about that have photos attached.
  • Decides which album each photo belongs in. By default it groups by sender, or by event when the subject line names one like Hawaii 2026.
  • Creates the album if it does not exist yet, adds the new photos, and writes a short caption with the email subject and date.
  • Skips photos that are already in the album so the same picture never gets saved twice.
What do I need to use this?
  • A Gmail account where the photos arrive.
  • A Google Photos account where albums should be created.
  • A short list of senders to watch, like mom and dad, plus any Gmail labels you use to mark family mail.
How can I customize it?
  • Change the list of people whose photos you want to archive, or swap in a Gmail label like Family or Friends.
  • Adjust how often it runs. Every two hours is the default, but every morning or every Sunday works too.
  • Tell it to file everything under one shared album instead of one album per sender, or to always use the email subject as the album name.

Frequently asked questions

Will this touch photos that are already in my Google Photos library?
No. It only creates new albums and adds new photos from the emails it processes. Existing albums and photos in your library are not modified.
What happens if the same photo gets emailed twice?
Before adding a photo, the workflow checks whether one with the same filename and date is already in the destination album, so duplicates are skipped.
What kinds of attachments will it save?
Common photo formats like JPG, PNG, and HEIC. Files that are not images, like PDFs or documents, are ignored.
Can I limit it to just a few senders instead of my whole inbox?
Yes. You give it a list of email addresses or a Gmail label, and it only looks at messages that match. Everything else is left alone.
How does it pick which album to use?
By default it files photos under an album named after the sender. If the email subject describes an event, like Hawaii 2026 or Wedding Weekend, it uses that as the album name instead.

Stop losing family photos in your inbox.

Connect Gmail and Google Photos once, and Geni quietly files every new photo from the people you love into the right album.