Make File Private using workflow

Hey Guys,

Does anyone know how to make the file private after it has been added to the database using the workflow? For example if I am saving a file to S3 how do I make that file private? Right now the private option is restricted to the file element editor settings

1 Like

The private setting has to be set at upload time, so it can’t be done in a workflow, since at that point you’re only using the URL to the file. It has already been uploaded.

Thanks for reply. I hate being the one that makes impossible scenarios, but here it goes.

A bit of background here on what I am trying to achieve. So you can guide me better. Below are the steps

  1. user adds private document (no problem here)
  2. Bubble API connector is triggered to send the document URL to for conversion (Since it’s a private document the API can’t access the document URL to initiate the download. And I can not use other options like base64 due to the size, and can not use binary as it’s not available. How can I bypass this issue)
  3. returns converted document URL which can be downloaded by bubble and saved to the same entity in step 1 (issue here the converted document must be also private and since the workflow can not make the file private I don’t know what to do.)

I know this is quite complex but I need a proof of concept for an external client and since these are legal documents they have to remain private.

Your feedback is appreciated.

1 Like

I’m afraid we don’t have a solution there in the short term. If the files are hosted in cloudconvert can they handle security?

I am afraid cloudconvert does no have file storage. They do hold converted documents for short amount of time.

I will try zapier. Do private documents rules effect zapier?

Also would this be something I can do on a sponsorship bases? Just exploring all options

There are a 2 features requests there, a way to access images that are private from external services and ability to save to S3 with privacy rules. We can talk about sponsorship if you want. Please reach out by email for this.

Could you re-upload the processed file when it gets returned? If it’s a new upload, you should be able to replace the file sent to cloudconvert and make it private. It’s a guess; I haven’t tried it.

Sent to support

Any updates about this? It there a way to make public files private using API workflows?


Were you able to find a way to make “:saved to S3” file private in the backend workflows?

The workaround I’ve used is to use the API connector to make an API call to the app.

And then delete the original file (workflow for that)


Bumping this up. Any news ?

I’m getting 401 status even when I use Oauth on bubble to bubble connector. Despite the fact that User is Current User (when using Oauth) I can’t save to S3 actual private photo to other bubble app.

Hi Zubair,

Can I please check how you setup the API connector? I followed the screenshot but I get the error message:

You have set the data type of this call to JSON/XML, but what is returned is not an object, but a text. Please check your settings.

What authentication do you use to upload It securely back to your own app?

Thanks in advance.

I got this from the EZ plugin which you can see the source to.

Here: Bubble Plugin Editor - EZ File Uploader

Authentication may need a token generated in settings.



Did you find a way to make the file private ?

Change the Data type to “text”. The workflow was working (check your file manager tab), but it couldn’t handle the response, which is just a text with the new file’s url.

What are you using for the contents value when initializing the call? Is Contents a parameter
of type file in the workflow? Can you share a screenshot of the associated workflow for this?

I’m wanting to make a Bubble db .mp3 file private after upload but can’t work out how to get the base64 JSON to .mp3 and vice versa without manually using an external service.

The contents value when initializing can be any base64 encoded string.

Just use this to encode a piece of text into base64

Then in your actual workflows you can base64 encode the public file and pass it to the action.

I think bubble itself has a :encodedinbase64. But it works only on public files. so if you have a public file, you can use that in an action and pass that in the contents parameter


Ok so now I have an unattached mp3 file in Bubble’s file manager and this file’s Base64 text in the db. As per thread, the goal is to have it as an attached mp3 file in Bubble’s file manager (then delete the unattached one).
Is this API workflow supposed to have any actions itself? How does the base64 text from my db actually get uploaded to the File Manager from a server workflow? Nothing happens when I run this call.

Was recording a loom but it glitched half way.

Do the images above help?