Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
claude-office-skills avatar

Gmail Workflows

  • 4k installs
  • 357 repo stars
  • Updated January 31, 2026
  • claude-office-skills/skills

Intelligent Gmail automation that extracts attachments, organizes emails with labels, archives processed messages, syncs to Drive, and notifies stakeholders—reducing manual email management.

About

Gmail Workflows enables developers to design and deploy intelligent email automation using n8n templates and Google Apps Script. Automate attachment extraction to Drive, implement smart email labeling and archiving, organize invoices, and track email metrics. Supports 7800+ workflow templates with filtering, conditional routing, batch processing, and notifications. Integrates Gmail, Google Drive, Slack, and email systems. Features include OCR-powered invoice detection, client communication routing, email analytics dashboards, and duplicate prevention. Handles large files, implements OAuth security, and supports scheduled batch operations with configurable triggers and date-based folder structures.

  • Automate attachment extraction and Google Drive synchronization
  • Smart email filtering with conditional routing and batch processing
  • OCR-powered invoice detection and organization
  • Email analytics dashboard with response time tracking
  • n8n workflow templates and Google Apps Script implementations

Gmail Workflows by the numbers

  • 4,042 all-time installs (skills.sh)
  • +56 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #98 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/claude-office-skills/skills --skill gmail-workflows

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs4k
repo stars357
Security audit2 / 3 scanners passed
Last updatedJanuary 31, 2026
Repositoryclaude-office-skills/skills

What it does

Automate Gmail attachment extraction, email organization, labeling, and Google Drive synchronization with intelligent workflows.

Who is it for?

Backend engineers automating business operations, DevOps teams managing communication workflows, developers integrating Gmail into larger automation pipelines.

Skip if: Email client builders, UI-focused email applications, real-time chat platforms, synchronous email processing requirements.

When should I use this skill?

Building automation for attachment management, designing email organization systems, implementing notification workflows, creating email analytics dashboards, scaling email processing.

What you get

Developers can build serverless email automation pipelines that process attachments, organize communications by client/project, generate analytics, and scale to thousands of emails daily.

  • Automated label rules
  • Drive folder uploads
  • Archived inbox states

By the numbers

  • Exposes 6 google-workspace-mcp tools
  • Version 1.0.0 MIT-licensed Claude Office skill

Files

SKILL.mdMarkdownGitHub ↗

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

IssueSolution
Attachments not detectedCheck MIME type filters, increase trigger frequency
Duplicate filesEnable deduplication by hash or filename
Rate limitsReduce trigger frequency, use batch processing
Permission errorsRe-authorize OAuth credentials
Large files failingSet size limits, use chunked upload

---

Security Considerations

1. OAuth Scopes: Request minimal permissions

  • gmail.readonly for reading
  • gmail.modify for labels/archive
  • drive.file for Drive access

2. Data Privacy:

  • Don't log email content
  • Use secure storage for credentials
  • Implement retention policies

3. 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

How it compares

Pick gmail-workflows when Gmail and Drive must be orchestrated through MCP tools rather than writing custom Google API scripts from scratch.

FAQ

Which MCP tools does gmail-workflows use?

gmail-workflows connects to google-workspace-mcp with six tools: gmail_search, gmail_get_attachments, gmail_apply_label, gmail_archive, gdrive_upload, and gdrive_create_folder. Together they automate search, labeling, archiving, and Drive uploads.

What Gmail tasks can gmail-workflows automate?

gmail-workflows handles email attachment extraction to Google Drive, intelligent label application, and auto-archiving for inbox organization. Version 1.0.0 targets operations teams needing repeatable Gmail hygiene without manual UI steps.

Is Gmail Workflows safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.