Skip to main content

Save Form Uploads to Your Own Google Drive

By default, files uploaded through Forms Plugin upload fields are stored on our hosted storage. If you’d rather keep every uploaded file inside your own Google Drive, this guide walks you through the one-time setup. It applies to all six upload-type fields:
  • File Upload
  • Image Upload
  • Audio Upload
  • Video Upload
  • Voice Upload
  • Signature
What you’ll need - A Google account. Setup takes about 10 minutes and only needs to be done once. After that, every file submitted through any of these fields lands directly in your Drive folder, organized into clean subfolders.

Step 1 - Create a Google Drive Folder

This folder will become the home for every file uploaded through your forms.
  1. Go to drive.google.com and sign in with your Google account
  2. Right-click any empty area, choose New folder, name it something like FormsPlugin Uploads, then click Create
  3. Open the folder and copy the full URL from your browser’s address bar
The URL will look like this:
Copy the entire URL from the address bar as it is. You don’t need to extract any ID, the script will handle that automatically.

Step 2 - Create the Apps Script

The Apps Script is a small piece of code that runs under your own Google account. It receives files from your form and saves them to the Drive folder you just created.

2.1 - Open Google Apps Script

Go to script.google.com and click New project.
Google Apps Script homepage with the New project button highlighted in the top-left corner

2.2 - Paste the Script

Select all the existing code in the editor and delete it. Then paste the script below.
The script is provided by Forms Plugin and is safe to use. It only runs on your own Google account and writes files to the folder you choose.
Google Apps Script

2.3 - Edit the Three Config Lines

At the top of the script you’ll see a CONFIG block with three values. Update each one as described below. ROOT_FOLDER_URL - Replace the placeholder URL with the Google Drive folder URL you copied in Step 1.
ALLOWED_ORIGINS - This is your safety net. Only the websites listed here are allowed to upload files to your Drive. List every domain where your form is published, including the Framer subdomain and any custom domain.
If you leave the list empty ([]), any website on the internet can upload files to your Drive folder. This is fine for first-time testing, but always add your real domains before going live.
ABSOLUTE_MAX_SIZE_MB - The largest file size (in MB) your script will accept. The default value of 25 is a safe choice.

2.4 - Save the Project

Press Ctrl + S (or Cmd + S on Mac). Give the project a name like FormsPlugin Upload and click Rename.

2.5 - Deploy as a Web App

Now you’ll publish the script so your form can talk to it.
  1. Click Deploy at the top-right, then New deployment
Apps Script editor with the Deploy dropdown menu open, showing New deployment, Manage deployments, and Test deployments options
  1. Click the gear icon next to Select type and choose Web app
  2. Fill in the form:
    • Description: FormsPlugin Upload v1 (anything you like)
    • Execute as: Me (your Google account)
    • Who has access: Anyone
  3. Click Deploy
New deployment modal with Web app selected, Description filled in, Execute as set to Me, and Who has access set to Anyone
A permissions popup will appear. Click Authorize access, choose your Google account, and click Allow.
You may see a warning that says “This app isn’t verified.” This is normal because the script is your own private deployment. Click Advanced, then Go to [your project] (unsafe), and finally Allow to give the script permission to save files to your Drive.

2.6 - Copy the Web App URL

After deploying, Google will show you a Web app URL that looks like this:
Click Copy. You’ll paste this URL into Forms Plugin in the next step.
Deployment success modal showing the Web app URL with a Copy button highlighted below it
Important - Every time you edit the script later, you must create a New deployment (not “Manage deployments”). Otherwise your changes won’t take effect.

Step 3 - Connect Forms Plugin to Your Drive

Now switch back to Framer. Select any upload field on your canvas (File Upload, Image Upload, Audio Upload, Video Upload, Voice Upload, or Signature) and open the Upload Settings panel on the right.

3.1 - Switch Storage to Google Drive

Find the Storage option and change it to Google Drive. New fields will appear below it.

3.2 - Paste the Apps Script URL

In the Apps Script URL field, paste the /exec URL you copied at the end of Step 2. This controls what kind of link your form submission will contain after a file is uploaded.
  • Downloadable - Returns a direct file URL. Clicking it downloads the file straight to the visitor’s device.
  • Preview only - Returns a Google Drive preview page URL. Visitors view the file inside Drive without downloading.
Pick whichever fits your workflow.
Forms Plugin Upload Settings panel showing Storage set to Google Drive, the Apps Script URL field with a pasted URL, and Link Type set to Preview only

3.4 - (Optional) Customize the Folder Structure

By default, every file lands inside your root folder under a subfolder named after the form. If you want more control, toggle Customize Folder to On. The following extra settings will appear.
Upload Settings with Customize Folder turned On, revealing Form Name override, Date/Time Folder, and Folder by Field controls
Form Name (override) - Leave empty to let the field auto-detect the parent form’s name. Set a custom value here if you want a specific folder name instead. Date/Time Folder - Adds a date or date + time subfolder so submissions group naturally. Folder by Field - Click the { } token picker and select one or more form fields from your form (like Full Name or Email). The live values entered by the visitor at submission time are joined together and used as the next folder level. Empty values are skipped automatically. Joiner - If you list more than one field above, this controls the character placed between their values.

3.5 - Example Folder Path

With all customization options on, a file uploaded to a contact form might land here:
Empty levels collapse automatically, so if a visitor leaves their email blank, the field-combo level is skipped without leaving an awkward separator.

Re-Deploying After Edits

If you ever edit the script (for example to add a new domain to ALLOWED_ORIGINS), saving the editor alone is not enough. You must create a fresh deployment for the changes to go live.
  1. In the Apps Script editor, click Deploy then New deployment
  2. Choose Web app again
  3. Click Deploy and Done
Your /exec URL stays the same, so no changes are needed in Framer.
Do not use Manage deployments to update the existing one. Always create a New deployment so your edits go live.

How Your Files Stay Safe

  • The /exec URL is public by design, but the Allowed Origins list blocks any website that isn’t on your approved list
  • The script always enforces the Absolute Max Size even if a tampered request claims something different
  • File names and folder names are automatically cleaned of special characters that could break the folder structure
  • Your Google account credentials never leave Google, the script runs as you on Google’s servers and the visitor’s browser only ever sees the public /exec URL

Things to Keep in Mind

  • The maximum file size per upload is 25 MB. This limit is enforced both on the Forms Plugin component and inside the script.
  • Google Drive’s daily upload and bandwidth quotas apply, the same limits as your regular Drive usage.
  • Files are saved with Anyone with the link can view sharing so the URL embedded in your submission email is openable. Change this on individual files in Drive if needed.

Next Steps