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
PromptCreate

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.

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.

FAQs

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.

Related templates

Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Chase the paperwork every new client and vendor still owes

One board showing every party you are onboarding, which documents are still missing or expiring, and a one click chase email for exactly what is outstanding.

General Input Storage
General Input Database
PDF.co
+1
App
File Gmail attachments into storage with names you can find

Every hour, new email attachments get sorted by document type and vendor, saved under clear names, and logged in a spreadsheet index.

Gmail
General Input Storage
Google Sheets
+1
Agentic Task
Candidate rediscovery desk for your archived Lever applicants

Pick an open role and see which past applicants deserve a second look, with an assistant that ranks the best fits and drafts personal outreach.

Lever
Gmail
App
Laytime and demurrage claim workspace for chartering ops

See every voyage on your books ranked by money at risk, open the full statement of facts, and let an agent draft the demurrage claim for review.

MarineTraffic
Google Sheets
Gmail
+1
App
Kajabi customer support console for member access fixes

Look up any Kajabi member by email or name and see every offer, purchase, and payment in one profile, then grant, revoke, or swap access from the same row.

Kajabi
Gmail
Slack
App

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.