gmail-workflows
claude-office-skills/skills
Automate Gmail tasks with intelligent workflows for attachment management, email organization, and Google Drive integration.
What is gmail-workflows?
This skill enables you to design and implement Gmail automation workflows that extract attachments, organize emails with smart labeling, archive processed messages, and synchronize with Google Drive. Use it when you need to reduce manual email management and create scalable, repeatable email processes.
- Automatically extract attachments from emails and save to Google Drive with organized folder structures
- Apply intelligent labels and filters to organize emails by sender, subject, project, or priority
- Archive processed emails and track email metrics for analytics and reporting
- Detect and organize invoices with OCR parsing and spreadsheet integration
- Forward and notify team members via Slack or email based on workflow rules
- Create date-based folder hierarchies and rename files with metadata like sender and date
How to install gmail-workflows
npx skills add https://github.com/claude-office-skills/skills --skill gmail-workflows- Google Workspace account with Gmail and Google Drive access
- n8n instance or Google Apps Script environment for workflow execution
- Appropriate Gmail API permissions and Google Drive folder access
- Slack workspace (optional, for notifications)
How to use gmail-workflows
- 1.Install the skill using the provided npm command
- 2.Configure your Gmail trigger criteria (sender filters, subject keywords, attachment requirements)
- 3.Define your workflow actions (extract attachments, apply labels, upload to Drive, send notifications)
- 4.Set up folder structures in Google Drive using naming patterns like {year}/{month} or {vendor}
- 5.Test the workflow with sample emails and verify files are organized correctly in Drive
- 6.Enable the workflow trigger (time-based or event-based) to run automatically
- 7.Monitor the workflow execution and adjust filters or actions based on results
Use cases
- Automatically collect invoices from vendor emails and organize them by date and vendor in Google Drive
- Route client emails to team members and apply project-based labels for better collaboration
- Extract and organize attachments from specific senders with size limits and duplicate detection
- Track email response times and generate weekly metrics reports for inbox management
- Process urgent emails with specific keywords and send immediate Slack notifications to relevant teams
- Operations managers automating email-based processes
- Finance teams managing invoice collection and tracking
- Project managers organizing client communications by project
- Teams seeking to reduce manual email organization and improve response times
- Anyone managing high-volume email with attachments requiring systematic organization
gmail-workflows FAQ
The skill supports PDF, XLSX, DOCX, and CSV files with a default maximum size of 25 MB. You can configure file type filters and size limits in the workflow configuration.
Yes. You can create multiple workflow rules with different conditions (sender domain, subject keywords, attachment presence) and apply different labels, folders, or actions to each.
Yes. The skill supports multiple languages including English and Chinese. Subject pattern matching and OCR work across supported languages.
Enable duplicate detection in the workflow configuration. The skill can check for existing files by name or hash before uploading to prevent redundant copies.
The skill is built on n8n and Google Apps Script, which support 7,800+ workflow templates. You can extend workflows to integrate with Slack, spreadsheets, and other services via notifications and data updates.
Full instructions (SKILL.md)
Source of truth, from claude-office-skills/skills.
name: gmail-workflows description: "Automate Gmail with intelligent workflows - attachment management, email organization, auto-archiving, and Google Drive integration" version: "1.0.0" author: claude-office-skills license: MIT
category: productivity tags:
- gmail
- google-drive
- email-automation
- workflow
- n8n department: Operations
models: recommended: - claude-sonnet-4 - claude-opus-4 compatible: - gpt-4 - gpt-4o
mcp: server: google-workspace-mcp tools: - gmail_search - gmail_get_attachments - gmail_apply_label - gmail_archive - gdrive_upload - gdrive_create_folder
capabilities:
- email_attachment_extraction
- automatic_file_organization
- email_filtering_rules
- drive_synchronization
- notification_setup
languages:
- en
- zh
related_skills:
- email-drafter
- email-classifier
- file-organizer
Gmail Workflows
Automate Gmail with intelligent workflows for attachment management, email organization, and Google Drive integration. Based on n8n's 7,800+ workflow templates.
Overview
This skill helps you design and implement Gmail automation workflows that:
- Automatically save attachments to Google Drive
- Organize emails with smart labeling
- Archive processed emails
- Send notifications via Slack/Email
- Track email metrics
Core Workflow Templates
1. Gmail Attachment Manager
Purpose: Automatically extract attachments from emails and save to Google Drive
Workflow Steps:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Gmail │───▶│ Filter by │───▶│ Extract │───▶│ Upload to │
│ Trigger │ │ Criteria │ │ Attachments │ │ Google Drive│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│
┌─────────────┐ ┌─────────────┐ │
│ Send │◀───│ Apply Label │◀───┘
│ Notification│ │ & Archive │
└─────────────┘ └─────────────┘
Configuration:
trigger:
type: gmail_new_email
filters:
has_attachment: true
from: ["*@company.com", "*@vendor.com"]
subject_contains: ["invoice", "report", "contract"]
actions:
- extract_attachments:
file_types: [pdf, xlsx, docx, csv]
max_size_mb: 25
- upload_to_drive:
folder_path: "/Attachments/{year}/{month}"
naming_pattern: "{filename}_{sender}_{date}"
create_folder_if_missing: true
- organize_email:
apply_label: "Processed/Attachments"
mark_as_read: true
archive: true
- notify:
channel: slack
message: "New attachment saved: {filename} from {sender}"
Best Practices:
- Use specific sender filters to avoid processing spam
- Set file size limits to prevent storage issues
- Use date-based folder structure for easy retrieval
- Enable duplicate detection to avoid redundant uploads
2. Invoice Auto-Archiver
Purpose: Automatically collect and organize invoices from email
Workflow Steps:
Gmail Trigger → Detect Invoice → Extract PDF → OCR/Parse → Save to Drive → Update Spreadsheet → Archive Email
Configuration:
trigger:
subject_patterns:
- "invoice"
- "bill"
- "statement"
- "付款"
- "发票"
processing:
- detect_invoice:
methods: [subject_keywords, attachment_name, sender_domain]
- extract_data:
fields: [invoice_number, amount, date, vendor, due_date]
use_ocr: true
- save_to_drive:
folder: "/Finance/Invoices/{year}/{vendor}"
naming: "{date}_{vendor}_{amount}"
- update_tracker:
spreadsheet: "Invoice Tracker"
columns: [Date, Vendor, Amount, Invoice#, Status, File_Link]
- archive:
label: "Finance/Invoices"
star: true
3. Client Communication Organizer
Purpose: Automatically organize client emails by project/client
Configuration:
rules:
- name: "Client A Emails"
condition:
from_domain: "clienta.com"
actions:
- apply_label: "Clients/Client A"
- forward_to: "team-a@company.com"
- save_attachments: "/Clients/Client A/{subject}"
- name: "Project X Updates"
condition:
subject_contains: ["Project X", "PX-"]
actions:
- apply_label: "Projects/Project X"
- add_to_task: "Project X Board"
- notify_slack: "#project-x"
- name: "Urgent Requests"
condition:
subject_contains: ["URGENT", "ASAP", "紧急"]
is_unread: true
actions:
- apply_label: "Priority/Urgent"
- send_sms: "+1234567890"
- move_to_inbox: true
4. Email Analytics Dashboard
Purpose: Track email metrics and generate reports
Metrics to Track:
daily_metrics:
- emails_received: count(inbox)
- emails_sent: count(sent)
- response_time_avg: avg(reply_time)
- unread_count: count(unread)
- attachment_count: count(has_attachment)
weekly_report:
- top_senders: group_by(from, count)
- busiest_hours: group_by(hour, count)
- label_distribution: group_by(label, count)
- response_rate: sent / received
automation:
- schedule: "every Monday 9am"
- output: Google Sheets
- notify: Slack #email-metrics
Implementation Guide
Using n8n
// n8n Workflow: Gmail to Google Drive
{
"nodes": [
{
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"parameters": {
"pollTimes": { "item": [{ "mode": "everyMinute" }] },
"filters": { "labelIds": ["INBOX"] }
}
},
{
"name": "Filter Attachments",
"type": "n8n-nodes-base.if",
"parameters": {
"conditions": {
"boolean": [{
"value1": "={{ $json.hasAttachment }}",
"value2": true
}]
}
}
},
{
"name": "Get Attachments",
"type": "n8n-nodes-base.gmail",
"parameters": {
"operation": "getAttachments",
"messageId": "={{ $json.id }}"
}
},
{
"name": "Upload to Drive",
"type": "n8n-nodes-base.googleDrive",
"parameters": {
"operation": "upload",
"folderId": "your-folder-id",
"name": "={{ $json.filename }}"
}
}
]
}
Using Google Apps Script
// Gmail to Drive Automation
function processNewEmails() {
const threads = GmailApp.search('has:attachment is:unread');
const targetFolder = DriveApp.getFolderById('FOLDER_ID');
threads.forEach(thread => {
const messages = thread.getMessages();
messages.forEach(message => {
const attachments = message.getAttachments();
attachments.forEach(attachment => {
// Save to Drive
const file = targetFolder.createFile(attachment);
// Rename with date and sender
const newName = `${Utilities.formatDate(message.getDate(), 'GMT', 'yyyy-MM-dd')}_${message.getFrom()}_${attachment.getName()}`;
file.setName(newName);
});
// Mark as processed
message.markRead();
thread.addLabel(GmailApp.getUserLabelByName('Processed'));
});
});
}
// Set up trigger
function setupTrigger() {
ScriptApp.newTrigger('processNewEmails')
.timeBased()
.everyMinutes(5)
.create();
}
Common Workflow Patterns
Pattern 1: Filter → Process → Organize → Notify
Email arrives
│
▼
┌─────────────────┐
│ Apply Filters │ → Skip if doesn't match
│ (sender, subject│
│ attachment) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Process Content │ → Extract data, attachments
│ │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Organize │ → Save files, apply labels
│ │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Notify │ → Slack, email, SMS
│ │
└─────────────────┘
Pattern 2: Batch Processing
schedule: "daily at 6am"
steps:
1. Collect all unprocessed emails from last 24h
2. Group by category (invoices, reports, misc)
3. Batch upload to respective Drive folders
4. Generate summary report
5. Send daily digest to stakeholders
Pattern 3: Conditional Routing
conditions:
- if: attachment_type == "pdf" AND subject contains "invoice"
then: route_to_finance_folder
- if: from_domain in ["important-client.com"]
then: priority_handling + immediate_notification
- if: attachment_size > 10MB
then: save_to_large_files_folder + skip_backup
- default:
then: standard_processing
Troubleshooting
Common Issues
| Issue | Solution |
|---|---|
| Attachments not detected | Check MIME type filters, increase trigger frequency |
| Duplicate files | Enable deduplication by hash or filename |
| Rate limits | Reduce trigger frequency, use batch processing |
| Permission errors | Re-authorize OAuth credentials |
| Large files failing | Set size limits, use chunked upload |
Security Considerations
-
OAuth Scopes: Request minimal permissions
gmail.readonlyfor readinggmail.modifyfor labels/archivedrive.filefor Drive access
-
Data Privacy:
- Don't log email content
- Use secure storage for credentials
- Implement retention policies
-
Access Control:
- Limit who can modify workflows
- Audit automation activities
- Use separate service accounts
Output Example
Daily Email Report:
# Email Activity Report - 2026-01-30
## Summary
- Emails Received: 47
- Emails Sent: 23
- Attachments Processed: 12
- Average Response Time: 2.3 hours
## Attachment Processing
| File | Sender | Saved To | Time |
|------|--------|----------|------|
| Invoice_Jan.pdf | vendor@co.com | /Finance/Invoices | 09:15 |
| Report_Q4.xlsx | team@company.com | /Reports/Q4 | 10:30 |
| Contract_v2.docx | legal@client.com | /Contracts | 14:22 |
## Labels Applied
- Finance/Invoices: 5 emails
- Projects/Active: 12 emails
- Clients/Priority: 8 emails
## Pending Actions
- 3 emails require manual review
- 2 large attachments need approval
Gmail Workflows Skill - Part of Claude Office Skills
Related skills
More from claude-office-skills/skills and the wider catalog.

google-ads-manager
Set up and optimize Google Ads campaigns with keyword research, ad copy generation, bid strategy selection, and performance reporting.

Home Assistant Automation
Automate smart home devices and create intelligent workflows with Home Assistant integration

hr-automation
Automate recruiting, onboarding, employee management, and offboarding workflows

html-slides
Create interactive HTML presentations with reveal.js animations, code highlighting, and speaker notes.

html-to-ppt
Convert Markdown/HTML to PowerPoint presentations using Marp

image-generation
Create effective AI image generation prompts for DALL-E, Midjourney, and Stable Diffusion.