Tinify Module Replacement Issue

:bullseye: What is your goal?

Using the Tinify module, compress all the images in a file field in my Baserow table.

:thinking: What is the problem & what have you tried?

While I have multiple files in the field, they are getting uploaded one by one. This, in turn, deleted the previous compressed file as the Make scenario moved onto the next compressed image file. Only the very last compressed image remains; the rest of the images in the field get overwritten.

Notes: I replaced the “Watch Rows” with a “Webhook” to save credits. I dont need it to fire every 15 minutes or once a day. I ONLY need it to fire when a “row comes into view”!

:clipboard: Error messages or input/output bundles

I can see two bundles going in and two bundles going out.

:link: Create public scenario page

:camera_with_flash: Screenshots (scenario flow, module settings, errors)

I suppose I need both files uploaded at the same time, but I don’t know if that’s possible, nor how to do it.

I know some guy made an Airtable automation for this that fixed the problem, but I no longer use Airtable and have switched to Baserow.

It looks like your Aggregator’s Source Module is incorrectly set. It should be pointing to where the bundles are coming from, which is the Iterator module.

Hope this helps! Let me know if there are any further questions or issues.

— @samliew

Hey there,

The reason your images are overwriting each other is because you are likely using an iterator or handling multiple bundles, which triggers the final Baserow update module multiple times. Each time it updates that row, it replaces the entire field contents with just the current image bundle it’s processing, leaving only the last one standing.

To fix this and upload everything at the same time, you need to group those compressed images back together before updating Baserow.

Here is how you can tweak your scenario flow:

  1. Add an Array Aggregator: Place an Array Aggregator module right after your Tinify module.

  2. Configure the Aggregator: Set the “Source Module” as your Iterator (the module that split the images up in the first place). For the structure, choose the target Baserow file field structure (it will usually ask for the file URL/data).

  3. Move your Baserow Update Module: Place your final Baserow “Update Row” module after the Array Aggregator.

  4. Map the Aggregated Array: In your Baserow module, instead of mapping a single file from a single bundle, map the entire array output from the aggregator directly into your file field.

This forces Make to wait until all images are fully compressed by Tinify, bundles them into a single neat package, and updates the Baserow row just once with all your files intact. Give that a shot!

So webhook > iterator > tinify > array > ??? Do I delete the first Baserow module and the second array module?

All I know is these images have to be downloaded, then uploaded “somewhere” before they can be PATCH into the baserow row.