Pull in a file through a CSV link from Bubble

I’ll use an example of my workflow to ask the question.

User uploads an excel doc. The doc needs to be edited by removing rows & columns, renaming headers etc. So the files gets send to Parabola for editing. After editing the file is convert to csv to import back into Bubble db.

I have successfully edited the file in Parabola. I need assistance importing the file into Parabola. I’ve used the API to call Bubble but I only get a link to the file. Can I import the file from a link?

Thanks!

Hi @Thinus_Enslin ,

To clarify, are you pulling in the CSV into Parabola by calling a Bubble database, where one of the fields in the database has the CSV url of a the user-uploaded Excel doc?

Hey @Brian_Dawson, I chatted with Thinus earlier today so am happy to share some info from that conversation.

By pulling from Bubble’s API using the “Pull from API” step, we are receiving a URL that links to a CSV file. We can then connect our “Pull from API” step to an “Enrich with API” step to dynamically pull in data from that linked CSV.

As I know you know, Parabola can pull a CSV file from a URL, but not an Excel file. Thinus is working on uploading files to Bubble in a CSV format that we’re able to pull in, because right now the content-type of the CSV is causing issues.

Once a standard CSV is uploaded to Bubble, we should be able to pull in this file directly through the URL address. Let us know how it goes @Thinus_Enslin!

1 Like

Hi Admin,

Thank you so much for your help. Much appreciated.

I tried a new csv file that I’ve exported out of Bubble. So the csv format should be ok?

But I still don’t get any info. I can see that the flow “sees” the data. See image below

The data marked in yellow shows that it is being read properly.

So how do I convert my URL into a file?

Hey @Thinus_Enslin,

That is definitely a strange way for the CSV file to be pulled in. After a fair bit of testing on our end, I’m led to believe that the issue is still the file type of the CSV file.

This appears to be the issue because:

A) When I try to pull in the same file through the same link (with your permission), I am still being met with the following error message:

The API response couldn’t be parsed: Data with Content-Type “application/vnd.ms-excel” could not be parsed.

I’m surprised that you were able to temporarily get around this message in your “Enrich with an API” step! I think if you tried to refresh the data, you’d likely hit the same error. While the URL that you’re trying to pull in does end in .CSV, it looks like the Excel file being uploaded to Bubble is not properly being saved in CSV format. I’d recommend researching the potential cause of this issue further.

B) Every other CSV file I’ve tested returns the data in multiple rows as opposed to one giant string. It looks like your comma-separated list in the api column is missing a line-break character, which I can tell because your last column header and your first value in row 1 are separated by a space instead of a comma.

If you are able to consistently pull in data in this current format as seen in your screenshot, you can use these steps to unpack the data into standard rows and columns:

Feel free to paste this snippet directly into your flow to use these steps: parabola:cb:e04a39fe22b842e48074b5674513e1b6

Hope this helps!

Hi Admin,

Thanks for your reply.

To test if the CSV file is the problem, I used the URL and pasted that into a browser to download the file. I then created a new FLOW with the USE CSV FILE and uploaded the new downloaded file into that flow and it work 100%. So if my logic does not fail me, that means the CSV file is not the problem. Correct?

I then uploaded the CSV file into another website I have to test the link http://www.boas.co.za/statement_testing.csv and using the API GET I successfully made contact with the file.

So where does that leave me? The CSV file is working / readable. It seems there is a problem between Bubble and Parabola to read the link for a file. Maybe I’m messed up the setup as I’m not that familiar with API calls :woman_shrugging:.

Anyway, I will be chipping away at it, maybe I can get it to work.

Hey @Thinus_Enslin – To ensure that we’re normally able to pull in CSV files uploaded to Bubble, I just uploaded multiple test files into a personal Bubble app and was able to successfully pull the files into Parabola. The files were uploaded as standard CSV files into Parabola.

When you upload the file to Bubble, Bubble saves the CSV on Amazon Web Services (hence the AWS file link returned from Bubble).

When Parabola tries to pull that file from AWS, we are currently unable to given the type of file being uploaded to Bubble and saved to AWS. This is why we should try to modify the file type being uploaded to Bubble at the source.

It is expected that your browser would be able to return you a downloaded file from that link – the browser’s functionality can support the content-type of the file that you’re uploading, while Parabola unfortunately cannot.

When you save the file to Boas, it looks like that file is being converted to a standard CSV that we can work with, so makes sense that you were able to successfully pull in the file through that link.

How are you currently saving these files as CSV files from Excel? Meaning, what is the step-by-step process you’re taking from saving the Excel file to upload? If everything there checks out, I’ll touch base with our engineering team about any other possible causes.

Hi Admin,
The CSV that is being tested is not converted from Excel. That file is a csv file exported from my bank account, so there is no conversion taking place.

When I export a csv from excel I select the Save-As CSV UTF-8 option.

I was thinking of another solution / workaround via Dropbox. As I understand it, as soon as a file (eg test.xlsx) is updated in Dropbox, Parabola will pull that file and run a flow. Correct?

If I run the flow manually in Parabola it works 100%, but when I update the file in Dropbox, nothing happens.

Any suggestions?
Thx!

Hi @Thinus_Enslin – Nice workaround going the Dropbox route! Flows are not automatically triggered when a file is updated in Dropbox; rather, the section that you’re highlighting is saying that the file will be automatically updated the next time your flow is ran.

Other than hitting the “Run flow now” button, flows in Parabola will only every be triggered automatically by a scheduling rule, a webhook call, the “Pull from email attachment” step, or the “Run another Parabola Flow” step.

You’ll need to manually hit “Run flow now” after updating the file in Dropbox to run the flow with the new data.

Great stuff!
So I can run a webhook from Bubble and trigger a flow? (In short - update excel file in Dropbox - run webhook - run Patabola flow)

I have never used a webhook. I know it is a Bubble feature but do you have any tips / advice?

Thanks!

Feel free to check out the below post which provides info on pulling in data from Bubble using webhooks:

For this use case, you’ll need to make sure that the file is updated in Dropbox in advance of the webhook call to Parabola.

Please note that webhook functionality is normally offered to users on our Advanced plan, so if you’d like to discuss a more custom plan that includes this functionality, feel free to shoot us an email at support@parabola.io.