Practical Google Sheets and Drive automations you can set up in under two minutes with FileDrop. Each one solves a real workflow problem.
SIGN UP HERE TO START YOUR AUTOMATION
New data automations
1. Notify sales the moment a new lead comes in
A Google Form or FileDrop form feeds responses into a Sheet. The instant a new row lands, email your sales team with the full lead details — name, company, message — so nothing sits unread.
| Setting | Value |
|---|---|
| Source | Google Sheet (form responses tab) |
| Trigger | New row added |
| Action | |
| To | sales@yourcompany.com |
| Subject | New lead: {column:A} from {column:B} |
| Body | Name: {column:A}\nCompany: {column:B}\nEmail: {column:C}\nMessage: {column:D}\n\nView sheet: {sheet_url} |
2. Auto-reply to whoever submitted
New row contains the submitter’s own email address. Send them a personalised confirmation automatically — no manual follow-up needed.
| Setting | Value |
|---|---|
| Source | Google Sheet |
| Trigger | New row added |
| Condition | Column Email is not empty |
| Action | |
| To | {column:Email} |
| Subject | We received your submission, {column:Name} |
| Body | Hi {column:Name},\n\nThanks for getting in touch. We'll review your submission and be in touch within 1 business day. |
3. Slack your team when a high-value deal is added
Filter on deal size so only high-value leads hit the channel — not every row.
| Setting | Value |
|---|---|
| Source | Google Sheet (CRM or pipeline tab) |
| Trigger | New row added |
| Condition | Column Value greater than 10000 |
| Action | Slack |
| Webhook | #deals channel webhook |
| Message | 🚀 New deal: *{column:Company}* — ${column:Value}\nOwner: {column:Owner}\n{sheet_url} |
4. Copy new rows to a separate tracker — skip duplicates
When a sales rep logs a lead in the main sheet, copy it to the team tracker. If the same email already exists in the tracker, the copy is skipped automatically — no duplicates.
| Setting | Value |
|---|---|
| Source | Google Sheet (main leads tab) |
| Trigger | New row added |
| Action | Copy row |
| Target spreadsheet | Team tracker spreadsheet |
| Sheet tab | Leads |
| Skip duplicates — key column | Email |
5. Copy a row preserving its formulas and formatting
Your pipeline sheet has colour-coded priority rows and formula-driven totals. When a new row is added, copy it to the reporting sheet — formulas, formatting, and notes intact.
| Setting | Value |
|---|---|
| Source | Google Sheet |
| Trigger | New row added |
| Action | Copy row |
| Target spreadsheet | Reporting spreadsheet |
| Preserve formulas | ✓ |
| Preserve formatting | ✓ |
| Preserve notes | ✓ |
6. Create a client folder the moment a client is added
When a new client row hits your CRM sheet, automatically create a named Drive folder for them and write the folder link back into the row. The link appears in the sheet within seconds.
| Setting | Value |
|---|---|
| Source | Google Sheet (CRM tab) |
| Trigger | New row added |
| Condition | Column Name is not empty |
| Action | Create Drive folder |
| Folder name | {column:Name} — {column:Company} |
| Parent folder | Your “Clients” Drive folder |
| Write folder URL back to column | FolderLink |
Status change automations
7. Approval flow — notify + timestamp in one step
When someone marks a row Approved, email the requester and write the approval date back into the sheet automatically.
| Setting | Value |
|---|---|
| Source | Google Sheet |
| Trigger | Cell change — Column: Status, Value: Approved |
| Action 1 | Email to {column:RequestorEmail} |
| Subject | Your request has been approved |
| Body | Hi {column:Name},\n\nYour request ({column:RequestID}) was approved on {triggered_at}.\n\nNo further action needed. |
| Action 2 | Update sheet row — Column ApprovedAt, Value {triggered_at} |
8. Move a completed order out of the active sheet
When an order’s status is set to “Shipped”, move the entire row from the active orders sheet into the archive — no manual cutting and pasting, and the active list stays short.
| Setting | Value |
|---|---|
| Source | Google Sheet (active orders tab) |
| Trigger | Cell change — Column: Status, Value: Shipped |
| Action | Move row |
| Target spreadsheet | Same spreadsheet (or a separate archive) |
| Sheet tab | Archive |
| Skip duplicates — key column | OrderID |
Note: “Move row” copies the row to the destination then permanently deletes it from the source.
9. Route rows to different sheets based on region
When a new sale is logged, copy it into the right region’s spreadsheet based on the Region column — EU deals go to the EU sheet, US deals to the US sheet.
| Setting | Value |
|---|---|
| Source | Google Sheet (all sales tab) |
| Trigger | New row added |
| Action | Copy row |
| Target spreadsheet | {column:DestSpreadsheetID} (store the spreadsheet ID in a hidden column) |
| Sheet tab | {column:Region} |
| Skip duplicates — key column | OrderID |
10. Escalate overdue items to a manager
When a row is marked Overdue, post immediately to the right channel so nothing slips.
| Setting | Value |
|---|---|
| Source | Google Sheet (project tracker or invoices tab) |
| Trigger | Cell change — Column: Status, Value: Overdue |
| Action | Google Chat |
| Webhook | Your management space webhook |
| Message | ⚠️ Overdue: *{column:A}* — assigned to {column:Owner}\nDue: {column:DueDate}\n{sheet_url} |
11. Trigger your own API when a row is updated
When a payment, order, or ticket row changes status, POST the full row data to your internal API so your system stays in sync — no polling, no delay.
| Setting | Value |
|---|---|
| Source | Google Sheet |
| Trigger | Cell change — Column: Status |
| Action | Webhook |
| URL | https://your-api.com/webhooks/sheet-update |
| Payload | FileDrop sends { row_number, column, old_value, new_value, row_data: {...} } |
Drive folder automations
12. Get notified when a client delivers files
A client uploads contract documents, design files, or deliverables to a shared Drive folder. Email your team the instant the file lands — with a direct link to open it.
| Setting | Value |
|---|---|
| Source | Drive Folder |
| Trigger | New file in folder |
| Action | |
| To | projects@yourcompany.com |
| Subject | New file from client: {file_name} |
| Body | A new file has been uploaded to {folder_name}.\n\nFile: {file_name}\nOpen: {file_url}\nTime: {triggered_at} |
13. Archive only PDFs — ignore everything else
Files of all types land in a shared uploads folder. Copy only the PDFs to the archive folder; thumbnails, temp files, and anything else are ignored.
| Setting | Value |
|---|---|
| Source | Drive Folder (shared uploads) |
| Trigger | New file in folder |
| Condition | Column mime_type equals application/pdf |
| Action | Copy/move file — Copy |
| Destination folder | Your PDF archive folder |
14. Route files to the right team folder based on name
Incoming files are prefixed by department — LEGAL_contract.pdf, HR_onboarding.pdf. Copy each file to the correct team folder based on a name prefix.
| Setting | Value |
|---|---|
| Source | Drive Folder (incoming drop zone) |
| Trigger | New file in folder |
| Condition | Column name starts with LEGAL_ |
| Action | Copy/move file — Move |
| Destination folder | Legal team Drive folder |
Repeat with separate automations for each department prefix.
15. Notify legal only when a contract file arrives
Files of all kinds land in a project folder. The legal team only needs to know about PDFs — not every image or spreadsheet that gets added.
| Setting | Value |
|---|---|
| Source | Drive Folder (project folder) |
| Trigger | New file in folder |
| Condition | Column mime_type equals application/pdf |
| Action | Slack |
| Webhook | #legal channel webhook |
| Message | 📄 New contract to review: *{file_name}*\n{file_url} |
16. Alert the legal team when a contract is modified
A contract, SLA, or NDA lives in Drive. Any edit triggers an immediate notification to the team responsible for it.
| Setting | Value |
|---|---|
| Source | Drive Folder (contracts folder) |
| Trigger | File modified |
| Action | Slack |
| Webhook | #legal channel webhook |
| Message | 📝 Contract edited: *{file_name}*\nReview the changes: {file_url} |
17. Log every uploaded file into a Google Sheet
When files land in a shared Drive folder, automatically append a row to a log sheet — file name, link, and timestamp — so you have a permanent audit trail without opening Drive.
| Setting | Value |
|---|---|
| Source | Drive Folder |
| Trigger | New file in folder |
| Action | Write sheet row |
| Target spreadsheet | Your audit log spreadsheet |
| Column A | {file_name} |
| Column B | {file_url} |
| Column C | {triggered_at} |
| Column D | {mime_type} |
18. Create a project folder when a new project row is added, and file uploads into it
Two-automation setup: the first creates a Drive folder per project and writes the folder link back to the sheet. The second watches that folder and logs or forwards every file that arrives.
Automation 1 — Create the folder:
| Setting | Value |
|---|---|
| Source | Google Sheet (projects tab) |
| Trigger | New row added |
| Action | Create Drive folder |
| Folder name | {column:ProjectName} |
| Parent folder | Your “Projects” Drive folder |
| Write folder URL back to column | FolderURL |
Automation 2 — Watch the folder and notify: (Set up one automation per project folder, or use a single parent folder watch.)
| Setting | Value |
|---|---|
| Source | Drive Folder (the project folder) |
| Trigger | New file in folder |
| Action | Email to {column:ProjectManager} |
| Subject | New file in {folder_name}: {file_name} |
| Body | {file_url} |
Scheduled automations
19. Weekly backup to Drive every Monday morning
Keep a dated snapshot of a critical spreadsheet — pipeline, budget, inventory — that you can roll back to. Runs automatically before the week starts.
| Setting | Value |
|---|---|
| Source | Google Sheet |
| Trigger | Scheduled — Weekly, Monday at 8:00 AM |
| Timezone | Your local timezone |
| Action | Backup sheet |
| File name | {sheet_name} — {date} |
| Format | Google Sheet |
| Delivery | Save to Drive folder |
20. Email an Excel report to your manager every Friday
Export the week’s data as an Excel file and have it land in your manager’s inbox before the weekend — without touching the computer.
| Setting | Value |
|---|---|
| Source | Google Sheet |
| Trigger | Scheduled — Weekly, Friday at 5:00 PM |
| Timezone | Your local timezone |
| Action | Backup sheet |
| File name | Weekly report — {date} |
| Format | Excel (.xlsx) |
| Delivery | Email to up to 5 addresses |
21. Keep a contacts sheet clean with weekly deduplication
A shared contacts or leads sheet accumulates duplicates over time. Run a dedup scan every week and let FileDrop remove them automatically.
| Setting | Value |
|---|---|
| Source | Google Sheet (contacts or leads tab) |
| Trigger | Scheduled — Weekly, Sunday at 2:00 AM |
| Timezone | Your local timezone |
| Action | Remove duplicates |
| Key column | Email (or whichever column defines a unique record) |
| Keep | First occurrence |
Template variable reference
Sheet and general variables
| Variable | Available in | Resolves to |
|---|---|---|
{column:A} |
Sheet triggers | Value in column A of the changed row |
{column:Status} |
Sheet triggers | Value in the column with header “Status” |
{row_number} |
Sheet triggers | Row number of the changed row (1-based) |
{old_value} |
Cell change | Previous cell value |
{new_value} |
Cell change | New cell value |
{column_letter} |
Cell change | Which column changed (e.g. B) |
{sheet_url} |
Sheet triggers | URL to open the source spreadsheet |
{sheet_name} |
All | Name of the spreadsheet |
{sheet_tab} |
Sheet triggers | Name of the specific sheet tab |
{automation_name} |
All | Name of this automation |
{triggered_at} |
All | ISO timestamp of when the run fired |
Drive file variables
| Variable | Available in | Resolves to |
|---|---|---|
{file_name} |
Drive triggers | Name of the new/modified file |
{file_url} |
Drive triggers | Direct Google Drive link to the file |
{file_id} |
Drive triggers | Google Drive file ID |
{mime_type} |
Drive triggers | MIME type (e.g. application/pdf, image/png) |
{folder_name} |
Drive triggers | Name of the monitored folder |
Backup file name variables
| Variable | Resolves to |
|---|---|
{date} |
Today’s date (YYYY-MM-DD) |
{time} |
Current time (HH-MM) |
{datetime} |
Date and time combined |
Condition field reference for Drive folder triggers
When the source is a Drive folder, use these values in the Column field of a condition:
| Column value | Filters on |
|---|---|
name |
File name — use contains, starts_with, or equals |
mime_type |
MIME type — e.g. application/pdf, image/jpeg, application/vnd.google-apps.spreadsheet |
file_url |
The Google Drive share link |
file_id |
The Drive file ID |
Common MIME types
| File type | MIME type |
|---|---|
application/pdf |
|
| JPEG image | image/jpeg |
| PNG image | image/png |
| Google Doc | application/vnd.google-apps.document |
| Google Sheet | application/vnd.google-apps.spreadsheet |
| Google Slides | application/vnd.google-apps.presentation |
| Word document | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| Excel spreadsheet | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| ZIP archive | application/zip |