Auto-file Slack channel photos into Google Photos albums
When someone drops a photo or video in your team Slack channels, file it into a Google Photos album named for the channel and current month.
Build me an agent workflow that auto-files photos and videos shared in my Slack channels into Google Photos albums. The trigger is a Slack event webhook for the file_shared event, scoped to a configurable list of channels I provide (for example #team-photos and #event-recap). The integrations are Slack Bot for reading the file and replying in Slack, and Google Photos for uploading and organizing the media.
When the webhook fires, the agent should:
1. Pull the file id and the channel id from the event payload. If the channel id is not in my watch list, stop and do nothing.
2. Call Slack Bot Get File Info to load the file metadata, including the mime type, the private download URL, the original message text, the thread timestamp, and the user who posted it. If the mime type is not an image or video (anything that does not start with image/ or video/), stop and do nothing. Documents, links, snippets, and other file types must be ignored.
3. Download the raw file bytes from Slack's private download URL using the Slack Bot access token in the Authorization header.
4. Look up the human channel name (for example team-photos) using Slack Bot Get Channel Info if it isn't already in the event payload. Compute the target album title in the form: Slack #<channel-name> <Month> <Year>, for example Slack #team-photos June 2026, using the workflow's current month.
5. Use Google Photos List Albums to find an existing album with that exact title. Paginate through results if needed. If no match exists, call Google Photos Create Album to create one and use the returned id.
6. Upload the bytes to Google Photos with Upload Bytes to get an upload token, then call Batch Create Media Items with that token to create the media item in the user's library. Then call Add Media Items to Album to attach the new media item to the target album.
7. Generate a short caption (one or two sentences) for the new media item using the surrounding Slack message text plus the image content itself. Keep it factual and friendly, and include who posted it if the user's display name is available. Persist the caption via Update Media Item on the new media item id.
8. By default, post a tiny confirmation back in the original Slack thread using Slack Bot Send a Message with thread_ts set to the source message. The reply should mention the album it was filed into and include the album's productUrl as a link. Make this final Slack reply easy to toggle off via a workflow input named replyInThread (default true).
Other requirements:
- Treat the Slack channel watch list as a workflow input (array of channel ids or channel names). Reject events from channels not on the list silently.
- Honor Google Photos' app-created-data scope: this workflow is the uploader, so it can read, organize, and caption everything it puts in. Do not try to read or modify pre-existing albums or media that this workflow did not create.
- If a file in the event is a multi-file share (Slack can attach several files to one message), process each one independently against the same rules.
- If Google Photos rate-limits (HTTP 429), back off and retry. Call Batch Create Media Items serially per user as the Google Photos docs require.
- If anything fails after the file is uploaded but before it's added to the album or captioned, log enough context that I can re-run just the missing steps without re-uploading bytes.
Additional information
What does this prompt do?
- Watches the Slack channels you pick and fires the moment a photo or video is shared.
- Drops the file into a Google Photos album named after the channel and current month, like Slack #team-photos June 2026, creating it the first time.
- Writes a short caption from the message text and the image itself so the album reads like a story, not a dump.
- Optionally replies in the Slack thread with a confirmation and a link back to the album.
What do I need to use this?
- A Slack workspace where you can install the Geni Slack app and pick which channels it listens to.
- A Google account with Google Photos turned on, connected once so the workflow can create albums and upload media.
- A short list of the Slack channels you want auto-filed, like #team-photos or #event-recap.
How can I customize it?
- Change the list of Slack channels the workflow watches, or run a separate copy per channel.
- Rename the album pattern, for example monthly, quarterly, or one album per event keyword in the message.
- Skip the Slack thread reply if you would rather it run quietly in the background.
- Adjust the caption style, like short and factual, playful, or include who posted it.
Frequently asked questions
Will documents and PDFs also get uploaded?
What happens the first time of the month?
Can it watch a private channel?
Will it backfill old photos from before I set it up?
Will the album show up in my regular Google Photos?
Turn your Slack channels into living photo albums.
Connect Slack and Google Photos once, and every photo your team posts gets filed into the right album automatically.