
TL;DR
You can automate image editing (resizing, compression, and watermarking) by connecting Cloudinary + Make.com in a simple 4-step workflow.
The image you upload to Cloudinary must be a publicly accessible URL. This single gotcha trips up almost everyone.
Use ChatGPT to generate the Cloudinary transformation parameter code instead of wrestling with Cloudinary URL syntax yourself.
The final step uses an HTTP “Get a File” module to download the transformed image and send the binary file to Google Drive (or anywhere else).
I finally figured out how to properly use Cloudinary to automate image resizing and watermarking, and honestly it took me way longer than it should have 🤙. The official docs are thorough, almost too thorough, to the point where finding a straight answer for a specific workflow felt impossible.
If you’ve been manually resizing, compressing, and slapping watermarks on images one by one, this is the post that’s gonna make you stop 💪.
I built this whole thing inside Make.com and got it working end-to-end: upload an image from a public URL, resize it, compress it, add a watermark overlay, and dump the final version into Google Drive. All automated end-to-end.
And the best part? I used ChatGPT to write the Cloudinary transformation code so I didn’t have to learn the syntax myself.
It took me a while to figure this out and I didn’t find a lot of resources on it, so here you go. You’re welcome.
Learn how to edit, resize, and compress images using Cloudinary
What This Workflow Actually Does (And Why You’d Want It)
I had a very specific, very annoying problem: every image I was working with needed three things done to it before it was usable. Three edits, every time.

I needed to resize it so no image was wider than 1,200 pixels. I needed to compress it so file sizes weren’t bloated. And I needed to add a watermark overlay, a logo in the corner. Doing this manually is brutal.
Doing this once? Fine. Doing it for every single image across a project? Absolute time sink. And if you’re running a small business or managing content at any kind of volume, you know exactly what I’m talking about.
Volume makes it painful. I was making sure that no images are wider than 1200 pixels and also compressing the images all in one go.
That “all in one go” part is what matters. This isn’t three separate tools or three separate steps you babysit. It’s one automated pipeline.
The 4-Step Make.com Workflow (Complete Blueprint)
The entire automation lives inside Make.com and uses exactly four modules chained together. If you’ve built any scenario in Make before, you’ll feel right at home. If you haven’t, this is honestly a great first project because it’s linear, no branching, no conditionals, just A → B → C → D. Simple, straight-through automation.
Step 1: Set Your Image Source (The Variable or Trigger)
In my test setup, I used a “Set Variable” module with a single image URL pasted in. That’s it. Super simple for testing.
In a real-world scenario though, you’d replace this with whatever feeds your images, a webhook, a Google Drive watch trigger, an Airtable row, whatever. The point is that this first step just needs to produce a URL that points to your image. All you need is a URL.
That URL must be publicly accessible. If the image is behind authentication or stored in a private bucket, Cloudinary can’t reach it via URL upload. You’ll get a silent failure or a cryptic error and waste an hour troubleshooting.
If your image source isn’t public (like a private Google Drive file), you have an alternative. You can use Make’s “Get a File” module to download it first, then pass the Base64 encoded data to Cloudinary instead of a URL.
The upload module supports both: URL for public files, Base64 for everything else. Base64 solves private files.
Step 2: Upload the Resource to Cloudinary
This is the “Cloudinary: Upload a Resource” module. Configuration is pretty straightforward once you know what goes where. This is the ingestion step.
Upload Settings
- File Type: Select “URL” for a public link, or “Base64 Encoded Data” if you downloaded the file first.
- URL: Map the variable/output from Step 1 (your image URL).
- Resource Type: Image
- Type: Upload
Before any of this works, you need to connect your Cloudinary account to Make. You’ll need three credentials from your Cloudinary dashboard: your API Key, your API Secret, and your Cloud Name.
They’re all on the main dashboard page when you log in, takes about 30 seconds to find them. Grab the three credentials.
Cloudinary’s free tier is genuinely useful for getting started. You get 25 credits per month, which translates to roughly 25,000 transformations or 25GB of managed storage (or a combination of both), making it more than enough for most small business use cases. You can check the latest details on Cloudinary’s pricing page. The free tier goes far.
Step 3: Transform the Resource (Where the Magic Happens)
This is the “Cloudinary: Transform a Resource” step, and I love this tool because all I have to do is set these parameters and all I did was go to ChatGPT and just basically ask it to do it for me. ChatGPT writes the syntax.
That’s not an exaggeration. Cloudinary transformations work by stringing together parameters in a very specific syntax. Something like c_limit,w_1200/q_auto/l_your-watermark-id,w_150,g_south_east,o_60.
If you stare at that and your eyes glaze over, same. The syntax is dense. The documentation explains every individual parameter but doesn’t hold your hand through combining them for a real workflow.
So here’s the move: open ChatGPT and tell it exactly what you want. Describe the outcome.
I literally told it something like: “Write me a Cloudinary transformation string that resizes an image to a max width of 1200 pixels, compresses it with auto quality, and adds a watermark overlay from a specific image public ID, positioned in the bottom-right corner at 60% opacity and scaled to 150 pixels wide.” Copy/paste the prompt.
And it just… gave me the code. Pasted it in. Worked. It worked immediately.
Using ChatGPT for Cloudinary transformations is the single biggest time-saver in this entire workflow. You don’t need to learn the syntax; just describe what you want in plain English and paste the output into Make’s transformation field.
Now, one thing you do need for the watermark: the public ID of your watermark image. This is the identifier Cloudinary assigns when you upload it. You can find it in your Cloudinary Media Library (often the filename without the extension). The public ID is required.
| Parameter | What It Does | Example Value |
|---|---|---|
c_limit,w_1200 | Resizes image, max width 1200px | Prevents upscaling |
q_auto | Auto-compresses for best quality/size ratio | Can typically save 40-60% file size |
l_[public_id] | Adds overlay image (watermark) | l_my-logo |
g_south_east | Positions overlay in bottom-right | Other options: north_west, center, etc. |
o_60 | Sets overlay opacity to 60% | Range: 0-100 |
w_150 (on overlay) | Scales watermark to 150px wide | Adjust to your logo size |
Step 4: Get the Transformed Image and Send It Home
After transformation, Cloudinary gives you a new URL for the processed image. But you can’t just map that URL directly to a Google Drive upload. You need to actually download the file first. You need the binary file.
That’s where the “HTTP: Get a File” module comes in. You point it at the transformed image URL Cloudinary outputs, and it downloads the actual file data.
Then you pass that file data to your final module (in my case “Google Drive: Upload a File”), and you’re done. HTTP bridges URL to file.
Image uploaded. Resized. Compressed. Watermarked. Sitting in your Google Drive folder. No manual work.
Why the extra HTTP step? Make.com needs actual file data to upload to Google Drive, not just a URL. The HTTP module fetches the binary file from Cloudinary’s delivery URL, which is the step many people miss the first time.
Why This Beats the Alternatives
You could do this in Photoshop with batch actions. You could use Canva’s bulk tools if you’re on their paid plan. You could write a Python script. But none of those are truly automated in the way this is. This runs on autopilot.
Once this Make.com scenario is set up and connected to your actual image source (a watched folder, a form submission, an e-commerce product upload), it just runs. No clicking, no opening apps, no remembering to do it. Set it once, forget it.
And the Cloudinary piece handles three tasks that usually require separate tools, all in a single API call. That’s hard to beat.

Frequently Asked Questions
Absolutely. The first part of the workflow (Cloudinary upload and transform) doesn’t care where your images come from or go; it just needs a public URL or Base64 data. Swap the Google Drive module at the end for a Dropbox upload module and you’re set.
This is where you might need to tweak the overlay width parameter or use percentage-based scaling instead of fixed pixel values. In your ChatGPT prompt, ask for the watermark to be “15% of the image width” rather than a fixed size so it adapts to different dimensions.
No. Cloudinary transformations are non-destructive. Your original stays untouched in your media library; the transformation generates a new version at a new URL.
Two limits to watch: Cloudinary’s free tier includes 25 credits per month (about 25,000 transformations or 25GB of managed storage, depending on usage) and Make’s free plan caps you at 1,000 operations per month. If you’re processing thousands of images, you’ll likely need paid plans on both platforms.
Yes. Cloudinary supports text overlays with custom fonts, sizes, colors, and positioning. Instead of using l_[image_public_id], you’d use a text overlay parameter. Just describe it to ChatGPT and it’ll generate the transformation string.
Final Thoughts
The whole point of automating your image workflow is to stop doing the same tedious edits over and over. This Cloudinary + Make.com workflow handles resizing, compression, and watermarking in a single automated pass, and the ChatGPT trick for generating transformation code makes the hardest part of the setup take about 60 seconds. One pass, no repeats.
If you’ve been putting off automating this because the API docs felt overwhelming, just start with this exact blueprint. Set up the four modules, paste in a test image URL, and run it once. Run one test image.
Once you see that first perfectly resized, watermarked image land in your Google Drive without you lifting a finger, you’ll wonder why you didn’t do this months ago. So yeah, here you go. You’ll never go back. You’re welcome.


















