Every 10 minutes
Resize and watermark new photos
Photos dropped into a folder are resized, compressed and watermarked into a web-ready folder.
- Runs
- Every 10 minutes
- Apps
- Google Drive
- AI
- Not needed
- Access
- read+write
Send this to your assistant
Create a ClickRuntime automation: every 10 minutes, take new images in Product photos, resize them to 1600px wide, compress them, add our logo as a watermark and save them to Product photos - web.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A boutique hotel photographer drops forty raw JPEGs into a shared Drive folder after each shoot. Each is 6 to 9 MB, which is far too heavy for the website and slow to send to a client by link. Someone then opens an image editor, resizes every picture, exports at lower quality and pastes a logo on each one. That is an hour of repetitive work per batch, and it gets skipped when things are busy.
Every 10 minutes, ClickRuntime lists the images added to the input folder since its last run, downloads them, and runs a Python step that resizes each to your target width, compresses it and stamps your watermark. The finished files are uploaded to a separate output folder, and the originals are left untouched in place.
It is useful for photographers, estate agents, product shops and anyone who publishes pictures regularly and wants a web-ready copy without opening an editor.
What you get out of it
Pages that load faster
A 700 KB photo instead of an 8 MB one means product and gallery pages open quickly on mobile connections. Faster pages keep visitors from leaving and make it easier to pass image-weight checks in search audits.
Originals stay safe
Processing writes new files into an output folder, so the full-resolution originals remain in the input folder. If a client later asks for a print-size version, the source file is still there and unedited.
Watermark applied every time
When the watermark is part of the pipeline, no picture reaches the shared folder without it. That protects your work from being lifted from a client gallery link and republished elsewhere under another name.
Same size and quality across a batch
Hand-exported images drift in dimensions and compression. A fixed rule produces a uniform set, so a gallery grid lines up properly and a catalogue does not mix crisp pictures with blurry ones.
Hours back after each shoot
The editing step that used to eat an hour per batch happens in the background while you do other work. By the time you open the output folder, the whole set is ready to publish or send.
How it works
What happens, step by step
Every 10 minutes ClickRuntime checks your Google Drive photos folder for new images.
It resizes each one for the web, compresses it and adds your logo as a watermark.
The finished copy is saved to your output folder with the same name. Your original stays untouched.
It remembers which photos it has already processed, so each one is only done once.
Before it runs live
- Connect Google Drive
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Google Drive steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
import io
from PIL import Image # declare "pillow" in dependencies
from googleapiclient.http import MediaInMemoryUpload
from clickruntime import on_trigger, report_fetched, credentials, state
SOURCE, TARGET, LOGO = "product-photos-folder-id", "product-photos-web-folder-id", "logo-file-id"
@on_trigger
def run(event):
drive = build("drive", "v3", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
since = state.get("since") or "2026-01-01T00:00:00Z"
files = drive.files().list(q=f"'{SOURCE}' in parents and mimeType contains 'image/' and createdTime > '{since}'",
orderBy="createdTime", fields="files(id,name,createdTime)").execute()["files"]
report_fetched(len(files))
if not files:
return {"summary": "Nothing new"}
logo = Image.open(io.BytesIO(drive.files().get_media(fileId=LOGO).execute())).convert("RGBA")
for f in files:
img = Image.open(io.BytesIO(drive.files().get_media(fileId=f["id"]).execute())).convert("RGB")
img = img.resize((1600, round(img.height * 1600 / img.width)))
mark = logo.copy()
mark.thumbnail((240, 240))
img.paste(mark, (img.width - mark.width - 32, img.height - mark.height - 32), mark)
out = io.BytesIO()
img.save(out, "JPEG", quality=80, optimize=True)
name = f["name"].rsplit(".", 1)[0] + ".jpg"
drive.files().create(body={"name": name, "parents": [TARGET]},
media_body=MediaInMemoryUpload(out.getvalue(), "image/jpeg")).execute()
state.set("since", files[-1]["createdTime"])
return {"processed": len(files)}FAQ
Common questions
Which image formats can it process?
Will it process the same photo twice?
Can I change the output size or watermark text?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get told when files change in key folders
You hear about new or edited files in the folders you care about, with who changed them.
See how it worksGet an email when a file is shared with you in Google Drive
Files and folders newly shared with your Google account are emailed every 15 minutes with the owner's name and a link.
See how it worksConvert Word files uploaded to Google Drive into Google Docs
Word, Excel and PowerPoint files dropped in a Drive folder are converted to Google Docs, Sheets or Slides every 5 minutes, and the originals move to an archive folder.
See how it worksKeep exploring
Set up “Resize and watermark new photos” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.