This app runs inside the BotSurf browser. Don't have it yet? Get the app or extension now!

Airtable Bulk Attachment Uploader

Productivity · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — try it free, no account needed.
CategoryProductivity
PlatformAll
Pricing Free
Installs0
Download BotSurf to use — free
No account needed for free apps. Once BotSurf is open, find this app in Apps from the + menu.

About this app

WHAT IT DOES

Airtable Bulk Attachment Uploader is a database productivity tool that streamlines the process of uploading attachments to multiple Airtable records. Instead of manually clicking each record, opening the attachment field, clicking the upload button, selecting a file, and saving—a process that can be extremely tedious when managing many records—this script automates the entire workflow. It scans the current Airtable grid or gallery view, identifies visible records with their primary field values and attachment fields, and presents them as a scrollable checklist. You can select individual records, use Select All/Deselect All toggles, choose files from your local machine or provide URLs, and upload your selections to the attachment field of all selected records in configurable batches. The tool handles the complete interaction sequence: clicking the attachment cell, opening the upload modal, selecting the file, and confirming the upload. Real-time progress updates show how many records have been updated, and the list automatically refreshes after completion. This is ideal for product managers, content creators, database administrators, and anyone who needs to add images, documents, or files to Airtable records in bulk.

WHERE IT RUNS

This script operates exclusively on Airtable (*.airtable.com/*) as a userscript injected through the BotGentz extension. It runs within the context of your current browser tab and cannot access other tabs, bookmarks, history, or downloads. The script reads the page DOM to identify records and attachment fields using Airtable's selectors (.cellContainer, .grid-row, .gallery-card), extracts record primary values, detects attachment field columns from column headers, and interacts with Airtable's native UI controls—cell clicks, file inputs, upload modals, and save/confirm buttons—to perform uploads. All operations occur locally in your browser; no data is sent to external servers except for the uploads themselves.

HOW TO USE

1. Open any Airtable base in grid or gallery view with records and an attachment field.

2. Click the BotGentz extension icon and select "Airtable Bulk Attachment Uploader" from the script list.

3. The panel opens on the right side of the page. It automatically scans the current view for records.

4. Review the displayed records, showing the primary field value and an indicator if attachments exist.

5. Select upload source: "Local Files" for files from your computer, or "URL" for online files.

6. For local files, click "Choose Files" and select one or more files. For URLs, enter comma-separated URLs.

7. Adjust the "Batch size" number (default 3) to control how many records are processed per batch.

8. Toggle "Confirm before each batch" if you want a confirmation popup before each batch executes.

9. Check the boxes next to records you wish to upload attachments to.

10. Click "Upload Attachments" to begin. The script processes records in batches, shows progress, and handles errors.

11. After completion, the record list automatically refreshes showing your updated attachments.

WHY IT WORKS WHERE OTHERS FAIL

Many Airtable automation tools fail because they attempt to call Airtable's internal API endpoints or rely on brittle DOM selectors that change with every Airtable UI update. This script takes a resilient approach: it locates the actual interactive DOM elements Airtable renders—the attachment cell, the file input in the upload modal, and the save/confirm button—and triggers native click events and value changes on them, exactly as a human would. When uploading, the script clicks the attachment cell, waits for the upload modal to appear, finds the file input, sets the selected file using DataTransfer (which mimics a real file selection), and triggers the change event. It then waits for the upload to complete and clicks Done. Between operations, the script introduces controlled delays (300ms between actions and 500ms between batches) to mimic human interaction speed. By interacting at the UI layer rather than the framework layer, it remains functional across Airtable's frequent code updates.

THE PANEL

The script uses BotGentz's BGPanel system, which provides a floating, draggable panel on the right side of your screen. Drag the panel by its header to reposition it anywhere on the page—the panel remembers its position per site and snaps to the nearest edge when released. Click the minimize button to collapse the panel to a small floating bubble; click the bubble to expand it back. Resize the panel vertically by dragging its bottom edge. Press the Escape key to close the panel entirely. All panel state (position, collapsed/expanded) is persisted locally using GM_setValue, so your preferences survive page reloads.

PLEASE NOTE

This userscript requires the free BotGentz browser extension—it is not a standalone application. Airtable periodically updates its website layout and UI components; if the script stops working, an updated version may be released. The script supports both local file uploads and URL-based uploads (using file-like objects). It automatically detects attachment fields from column headers and uses the first one found. This script does not store, transmit, or process any of your Airtable data outside your local browser. It does not access your password, hidden inputs, or file inputs. All uploads are performed through Airtable's own authenticated session using the official user interface. Use responsibly and ensure you have the correct attachment field selected before uploading.

Similar Apps

Log in to BotGentz

Suggest an App

Tell us what you'd find useful — if we build it, we'll email you the moment it's ready.