How to handle multiple file URLs from Tally form and convert each to Base64 in Make.com

Hi there !:waving_hand:,

I’m building ascenario where I receive responses from a Tally form.
The form includes standard contact information and multiple file uploads, which Tally returns as private file URLs (e.g. from storage.tally.so).


What I want to do:

For each file uploaded, I want to:

  1. Use HTTP > Get a file to get the file using the Tally private URL.
  2. Use Tools > Set Variable to:
  • Set the key (variable name) as the name of the document (e.g. “Kbis”, “Insurance”).
  • Set the value to the file’s content encoded in Base64 (via base64(HTTP.data)).

This works perfectly when there is only one file, but I’m struggling to make it work dynamically when there are multiple file fields.


What I’ve tried:

  1. Tally - Watch New Reponses
  2. Tools - Compose a string
    I build a JSON like this
[
  {
    "name": "Kbis",
    "url": "{{1.fields.`K bis`[].url}}"
  },
  {
    "name": "Assurance RC",
    "url": "{{1.fields.`Attestation assurance Responsabilité civile`[].url}}"
  },
  {
    "name": "Travailleurs étrangers",
    "url": "{{1.fields.`Attestation travailleurs étranger`[].url}}"
  },
  {
    "name": "URSSAF",
    "url": "{{1.fields.`Attestation de vigilance URSSAF`[].url}}"
  }
]

  1. JSON - Parse JSON
    Parses the array correctly.

  2. HTTP - Get a file
    Downloads each file

  3. Tools - Set Variable
    Converts to Base64: base64(HTTP.data)

Each file runs as a separate execution, which is expected.
But now I want to send all 4 Base64-encoded documents to specific fields in a single Salesforce record (e.g. Kbis__c, Assurance_RC__c, etc.).

However, because each execution is isolated, I can’t access the other variables across those runs — so I can’t populate all fields at once.

So I need a way to:

  • Process each file individually (HTTP → base64)
  • Store the Base64-encoded content per file type
  • After all are processed, send one unified update to Salesforce, assigning each Base64 string to the correct field

Any tips on how to structure this better inside Make, or best practices for handling multiple files like this from Tally?

Thanks a lot in advance :folded_hands:
There is the blueprint I made
blueprint.json (18.0 KB)

2 Likes

Hey Rodolphe

you need one of the Aggregator modules to combine all of the bundles in an array and go back to one bundle.

Hi Stoyan, thanks a lot for your reply!

I did try using an Array Aggregator at the end to merge the bundles back into one — but when I do that, it seems like the HTTP Get file module stops looping, and I only get one file processed.

My goal is a bit specific, so maybe my flow isn’t optimal.

Is there a simpler or more robust way to:

  • Process multiple Tally file uploads
  • Download and convert each to base64
  • Store them in named variables (so I can map them to specific fields later)?

Thanks again for your help!

1 Like

I tried something else.

I’m facing two problems:

  1. The output of my Array Aggregator only includes the first bundle from the Set Variable module.
    However, each execution of Set Variable contains valid data:

But this is what I get as the output from the Array Aggregator:

  1. The Array Aggregator returns a single array object, which I can’t use to map specific values into different fields in Salesforce.

What I need is to extract each base64 string from the array and map it to the corresponding Salesforce field (e.g. Kbis__c, Assurance_RC__c, etc.).

Is there a simple way to flatten the array or convert each item into a separate variable or field I can use?

1 Like

You need to have the variables with the same name. Maybe have two variables - one is the file name and a second one is called “data” and has the file it self. Dont use the file name as the variable name.

Then in the last module you can use the order index of each item to map them individually.

Hi Stoyan, thanks again for your help!

I’m still having a bit of trouble understanding your suggestion — I’m fairly new to Make and automation in general :sweat_smile:

One important detail I should have added:
Not all 4 files are always submitted.
The Tally form can include up to 4 file uploads, but they’re optional, so in some cases I only get 2 or 3 documents.

That’s why using a fixed position (like item 0, item 1…) in the array might not work reliably, since the order could vary depending on which files are present.

Also, I’m not sure how to implement what you’re suggesting with static field names and filtering. Could you maybe show an example or explain how that would look inside the scenario?

Thanks a lot again

1 Like