How to upload a file in a n8n workflow (for any external user)

I would love to have a option to upload a file in n8n form trigger, (Feature request submitted here Upload file / attanchment in n8n form trigger) but meanwhoile what would be your recommendation for any person to fill a form and submit a file. I’m looking for a simple, user-friendly approach, ideally free to use and easy to implement
I was thinking of:

  • Send an email to dedicated adress
  • Google Form
  • Tally form

Any recommendation ? I’d love to hear your feedback

  • n8n version: community 1.36
  • Database (default: SQLite): PostGres
  • n8n EXECUTIONS_PROCESS setting (default: own, main): own
  • Running n8n via (Docker, npm, n8n cloud, desktop app): cloudron

It looks like your topic is missing some important information. Could you provide the following if applicable.

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Hello @Yoann ,

Thank you for bringing this to our community and for submitting a feature request.

I have read your requirements and I think a Google Form can be a good solution. For example you could integrate it with a n8n HTTP Request to receive the file and process it through the flow. You can check options from Google Forms integrations | Workflow automation with n8n.

In your Google Form you would need to observe pretty much the following:

1. Create a Google Form with File Upload Option:

  • Go to Google Forms and create a new form.
  • Add a “File Upload” question to the form. Google will automatically create a folder in your Google Drive where the files will be stored.
  • Add any additional fields as needed (e.g., name, email, etc.).

2. Set Up a Google Apps Script to Trigger on Form Submission:

  • Go to the form’s response sheet in Google Sheets.
  • Click on Extensions > Apps Script to open the script editor.

You have then to create a Javascript that will allow the user uploads a file via the Google Form, the Google Apps Script captures the file, converts it to a Base64-encoded string (or keeps it as binary), and sends it along with other form data to the n8n HTTP Request node.
n8n receives the file and processes it according to the workflow you’ve set up.

1 Like

Thank you Flavio for this solution