File Storage Integrations
Upload files and manage folders in Google Drive, OneDrive, SharePoint, Dropbox, and OneNote from your Buildorado workflows.
File storage integrations handle the documents, images, and files that your forms collect. When a user uploads a resume, signed contract, photo, or any other file through a file upload field, Buildorado can automatically store it in the right folder in your cloud storage service. All file storage integrations authenticate via OAuth 2.0 and store credentials with AES-256 encryption through AWS KMS.
Google Drive
Google Drive is the most popular cloud storage integration in Buildorado. Upload files from form submissions and organize them into folders automatically.
Setting Up Google Drive
- Navigate to Settings > Integrations in your Buildorado dashboard.
- Find Google Drive and click Connect.
- Sign in with your Google account in the authorization popup.
- Grant the following permissions:
drive.file-- Create and manage files created by Buildoradodrive.readonly-- View files and folders for navigation
- Once authorized, Google Drive shows as Connected with your Google account email.
You can connect both personal Google accounts and Google Workspace (formerly G Suite) accounts. For Google Workspace, your administrator may need to approve the Buildorado app in the Google Admin console.
Operations
uploadFile
Upload a file from a form submission to Google Drive.
| Field | Type | Required | Description |
|---|---|---|---|
fileField | file | Yes | Select a file upload field from your form (max 50MB) |
fileName | string | No | Custom name for the file. Supports variables. Leave empty to use original name |
folderId | string | No | Google Drive folder ID to upload into. Leave empty for root |
folderPath | string | No | Auto-create folders if they don't exist. Used when Folder ID is empty |
Output:
| Field | Type | Description |
|---|---|---|
id | string | Google Drive file ID |
name | string | The name of the uploaded file |
webViewLink | string | Link to view the file in Google Drive |
webContentLink | string | Direct download link |
mimeType | string | MIME type of the file |
size | number | File size in bytes |
createFolder
Create a new folder in Google Drive.
| Field | Type | Required | Description |
|---|---|---|---|
folderName | string | Yes | Name of the new folder |
parentFolderId | string | No | Parent folder ID (defaults to root) |
Output:
| Field | Type | Description |
|---|---|---|
id | string | Google Drive folder ID of the created folder |
name | string | Folder name |
webViewLink | string | Link to view the folder |
listFiles
List files in a Google Drive folder.
| Field | Type | Required | Description |
|---|---|---|---|
folderId | string | No | Folder ID (leave empty for root folder) |
query | string | No | Search query (e.g., name contains 'report') |
pageSize | number | No | Number of files to return |
Output:
| Field | Type | Description |
|---|---|---|
files | string | Files as JSON |
File Upload from Form Fields
The most common pattern is mapping a form file upload field directly to the Google Drive upload action:
[Form: Job Application]
-- [Google Drive: Upload resume]
fileField: {{form.resumeUpload}}
folderId: "1ABC123_folder_id_here"
fileName: "{{form.lastName}}_{{form.firstName}}_Resume"Buildorado handles the file transfer automatically. The file is streamed from Buildorado's temporary storage to Google Drive without requiring you to manage URLs or binary data.
Folder Organization Patterns
Create a folder per submission:
[Form: Project Submission]
-- [Google Drive: createFolder]
folderName: "{{form.projectName}} - {{submission.createdAt}}"
parentFolderId: "root_projects_folder_id"
-- [Google Drive: uploadFile]
fileField: {{form.projectFiles}}
folderId: {{googleDrive_1.id}}Finding Folder IDs
To find a Google Drive folder ID:
- Open the folder in Google Drive in your browser.
- Look at the URL:
https://drive.google.com/drive/folders/FOLDER_ID_HERE. - Copy the
FOLDER_ID_HEREportion and use it as thefolderIdvalue.
Tips for Google Drive
- Files uploaded through Buildorado count against the connected Google account's storage quota.
- The
drive.filescope means Buildorado can only access files it created, not your entire Drive. This is a security best practice. - For multiple file uploads (when a form field accepts multiple files), Buildorado uploads each file individually. Use a loop node if you need to process each file separately.
- Custom file names support template variables, making it easy to create descriptive, searchable file names.
OneDrive
OneDrive provides cloud storage for Microsoft 365 users. The integration works with both personal Microsoft accounts and organizational (work/school) accounts.
Setting Up OneDrive
- Navigate to Settings > Integrations and click Connect next to OneDrive.
- Sign in with your Microsoft account in the authorization popup.
- Grant permissions for file read and write access. The following scopes are requested:
User.Read-- Read your profileFiles.ReadWrite.All-- Read and write filesoffline_access-- Maintain the connection
- Once authorized, OneDrive shows as Connected.
Operations
uploadFile
Upload a file to OneDrive (up to 4MB).
| Field | Type | Required | Description |
|---|---|---|---|
filename | string | Yes | Name for the uploaded file (e.g., document.pdf) |
content | text | Yes | File content (base64 encoded for binary files) |
parentId | string | No | Parent folder ID (defaults to root) |
contentType | string | No | MIME type of the file (e.g., application/pdf) |
Output:
| Field | Type | Description |
|---|---|---|
id | string | File ID |
name | string | File name |
webUrl | string | Web URL to view the file |
size | number | File size in bytes |
listFiles
List files in a OneDrive folder.
| Field | Type | Required | Description |
|---|---|---|---|
folderId | string | No | Folder ID (defaults to root) |
Output:
| Field | Type | Description |
|---|---|---|
files | string | Files as JSON |
createFolder
Create a new folder in OneDrive.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Folder name |
parentId | string | No | Parent folder ID (defaults to root) |
Output:
| Field | Type | Description |
|---|---|---|
id | string | Folder ID |
name | string | Folder name |
webUrl | string | Web URL to the folder |
Tips for OneDrive
- OneDrive for Business has different storage limits than personal OneDrive. Check your organization's allocation.
- Shared folders in OneDrive are accessible if the connected user has write permissions.
- The upload limit for the
uploadFileoperation is 4MB. For larger files, consider using the Google Drive integration or direct API calls via the HTTP Request node.
SharePoint
SharePoint integration manages SharePoint sites, lists, and list items. It is designed for working with SharePoint list data rather than document library file uploads.
Setting Up SharePoint
- Navigate to Settings > Integrations and click Connect next to SharePoint.
- Sign in with your Microsoft 365 account.
- Grant permissions for reading and writing SharePoint data. The following scopes are requested:
User.Read-- Read your profileSites.ReadWrite.All-- Read and write SharePoint site dataoffline_access-- Maintain the connection
- Once authorized, SharePoint shows as Connected.
Operations
listSites
Search for SharePoint sites.
| Field | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query for sites (e.g., Marketing) |
Output:
| Field | Type | Description |
|---|---|---|
sites | string | Sites as JSON |
listItems
Get items from a SharePoint list.
| Field | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | SharePoint site ID |
listId | string | Yes | SharePoint list ID |
Output:
| Field | Type | Description |
|---|---|---|
items | string | Items as JSON |
createListItem
Create a new item in a SharePoint list.
| Field | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes | SharePoint site ID |
listId | string | Yes | SharePoint list ID |
fields | JSON | Yes | Field values for the new list item |
Output:
| Field | Type | Description |
|---|---|---|
id | string | Item ID |
fields | string | Item fields as JSON |
createdDateTime | string | When the item was created |
webUrl | string | URL to the item |
Tips for SharePoint
- SharePoint permissions are inherited. The connected user must have Contribute or higher permissions on the target list.
- Use
listSitesto discover site IDs during setup, then hardcode them in your workflow. - For document library file uploads, use the OneDrive integration instead, which can access SharePoint-hosted files via OneDrive paths.
Dropbox (Coming Soon)
Dropbox integration provides file storage for teams and individuals. This integration is currently in development and will be available in an upcoming release.
Setup
- Navigate to Settings > Integrations and click Connect next to Dropbox.
- Sign in with your Dropbox account in the authorization popup.
- Grant permissions for file and folder access.
- Once authorized, Dropbox shows as Connected.
Operations
| Operation | Description |
|---|---|
uploadFile | Upload a file to a Dropbox folder |
createFolder | Create a new folder |
listFolder | List contents of a folder |
getSharedLink | Create a shared link for a file |
Tips for Dropbox
- Dropbox paths are case-insensitive but case-preserving.
- Shared folders work if the connected account has edit access.
- Dropbox Business accounts have team folders with different permission models than personal folders.
OneNote
OneNote integration lets you create pages and add content to notebooks, useful for collecting structured notes from form submissions.
Setting Up OneNote
- Navigate to Settings > Integrations and click Connect next to OneNote.
- Sign in with your Microsoft account.
- Grant permissions for reading and writing OneNote notebooks. The following scopes are requested:
User.Read-- Read your profileNotes.ReadWrite.All-- Read and write notebooksoffline_access-- Maintain the connection
- Once authorized, OneNote shows as Connected.
Operations
createPage
Create a new page in a OneNote section.
| Field | Type | Required | Description |
|---|---|---|---|
sectionId | string | Yes | OneNote section ID |
title | string | Yes | Page title |
content | text | Yes | Page content in HTML format |
Output:
| Field | Type | Description |
|---|---|---|
id | string | Page ID |
title | string | Page title |
createdDateTime | string | When the page was created |
self | string | API URL for the page |
listNotebooks
Get a list of the user's OneNote notebooks. This operation takes no input fields.
Output:
| Field | Type | Description |
|---|---|---|
notebooks | string | Notebooks as JSON |
listSections
Get a list of sections in a OneNote notebook.
| Field | Type | Required | Description |
|---|---|---|---|
notebookId | string | Yes | Notebook ID |
Output:
| Field | Type | Description |
|---|---|---|
sections | string | Sections as JSON |
Tips for OneNote
- OneNote pages are created in HTML format. Use standard HTML tags for formatting.
- Section and notebook IDs can be discovered using the
listNotebooksandlistSectionsoperations. - OneNote has a page content size limit of approximately 50 MB per page.
Notion (Coming Soon)
Notion integration is on the Buildorado roadmap. When available, it will support:
- Creating pages in Notion workspaces
- Adding entries to Notion databases
- Updating existing database records
- Querying databases with filters
If you need Notion integration now, use the HTTP Request node with the Notion API and an API key.
Airtable (Coming Soon)
Airtable integration is on the Buildorado roadmap. When available, it will support:
- Creating records in Airtable bases
- Updating existing records
- Listing records with filters
- Mapping form fields to Airtable columns
In the meantime, use the HTTP Request node with the Airtable API and a personal access token.
Best Practices for File Storage Integrations
Naming Conventions
Use descriptive file names with template variables to make files searchable:
fileName: "{{form.lastName}}_{{form.firstName}}_{{form.documentType}}_{{submission.createdAt}}"Folder Structure
Organize files into a logical folder hierarchy. Create folders by date, department, or form type:
/Buildorado Submissions/
/Contact Forms/
/2024-01/
/2024-02/
/Job Applications/
/Engineering/
/Marketing/Error Handling
File upload failures can occur due to storage quota limits, permission issues, or network problems. Attach an error handler node to catch upload failures and notify your team:
[Google Drive: uploadFile]
-- error -- [Slack: "#ops File upload failed for {{form.email}}"]
-- error -- [Email: Alert admin about storage issue]Multiple File Uploads
When a form field accepts multiple files, Buildorado provides an array of file references. To upload each file individually with custom naming, use a loop node to iterate over the array and upload each file in sequence.