Automation examples
21 automations you can copy in two minutes
Real Google Sheets and Drive workflows, each with the exact settings to recreate it — source, trigger, condition, action. Copy the recipe, point it at your own sheet, activate. New to it? Start on the Automations overview.
- 21 worked examples
- Copy-paste settings
- Full variable reference
Jump to an example
New data6
Status change5
Drive folder7
- 12Get notified when a client delivers files
- 13Archive only PDFs — ignore everything else
- 14Route files to the right team folder based on name
- 15Notify legal only when a contract file arrives
- 16Alert the legal team when a contract is modified
- 17Log every uploaded file into a Google Sheet
- 18Create a project folder when a new project row is added
Scheduled3
New data automations
1. Notify sales the moment a new lead comes in
when New row added · Google Sheetthen Email sales
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
when New row added · Google Sheetif Email not emptythen Auto-reply email
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
when New row added · Google Sheetif Value > 10000then Slack #deals
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 New row added · Google Sheetthen Copy rowthen 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
when New row added · Google Sheetthen Copy row, formulas kept
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 New row added · Google Sheetif Name not emptythen Create Drive folderthen Write link back
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 Cell = Approved · Google Sheetthen Email requesterthen Timestamp row
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 Cell = Shipped · Google Sheetthen Move row to Archive
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 New row added · Google Sheetthen Copy row to region sheet
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 Cell = Overdue · Google Sheetthen Google Chat alert
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 Cell change: Status · Google Sheetthen Webhook to your API
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
when New file in folder · Drive folderthen Email team
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
when New file in folder · Drive folderif mime = PDFthen Copy file to archive
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
when New file in folder · Drive folderif name starts LEGAL_then Move file to Legal
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 |
15. Notify legal only when a contract file arrives
when New file in folder · Drive folderif mime = PDFthen Slack #legal
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
when File modified · Drive folderthen Slack #legal
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 New file in folder · Drive folderthen Write sheet row
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
when New row added · Google Sheetthen Create folderthen then watch 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 |
| 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
when Scheduled: Mon 08:00 · Google Sheetthen Backup to Drive
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
when Scheduled: Fri 17:00 · Google Sheetthen Backup, email .xlsx
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
when Scheduled: Sun 02:00 · Google Sheetthen Remove duplicates
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 |
| 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 |
Pick one and wire it up
Every example here is live-ready. Connect Google once, paste the settings, and watch the first run land in your log.