Skip to main content
skill CX Codex

sheets-automation — Claude Code skill: Google Sheets automation

A skill for automating Google Sheets: data sync, task reminders, reports and dashboards. Useful when spreadsheets are already part of your workflow.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add claude-office-skills/skills --skill sheets-automation -a claude-code
Open on GitHub

What sheets-automation does

The skill lays out ready-made Google Sheets workflows: pulling data from several sources into one sheet, tracking tasks with Slack reminders, generating scheduled reports, and stock alerts. Inside are n8n-style workflow configs — schedule, steps, sheet and column structure.

It needs the google-workspace-mcp MCP server with the sheets_read, sheets_write, sheets_append and sheets_format tools. Without it the skill can neither read nor write to your sheets. The recommended model is claude-sonnet-4.

The workflows build on n8n templates, so some steps assume you assemble the automation there too. No n8n? You port the logic by hand. The skill ships with English and Chinese.

What it helps with

  • pull CRM, payment and analytics metrics into one sheet
  • ping an assignee about an overdue task in Slack
  • build a weekly report with charts and send it out
  • flag low stock and email the supplier
  • refresh a dashboard on a schedule without manual entry

Example prompts for the agent

  • Set up a daily 6 AM sync from HubSpot, Stripe and Google Analytics into the Business Dashboard sheet
  • Build a task tracker in Google Sheets with Slack reminders for overdue and due-today items
  • Generate a weekly sales and marketing report with charts and send it to the team

How to install sheets-automation

1Skills CLI (Vercel)

npx skills add claude-office-skills/skills --skill sheets-automation -a claude-code

2Manually: put the files in place

~/.claude/skills/sheets-automation/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/sheets-automation/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about sheets-automation

How do I install sheets-automation in Claude?

Run npx skills add claude-office-skills/skills --skill sheets-automation -a claude-code. The skill lands in ~/.claude/skills/sheets-automation/SKILL.md.

What does sheets-automation do?

It describes Google Sheets workflows: syncing data from multiple sources, task tracking with reminders, report generation and stock alerts.

What does the skill need to run?

The google-workspace-mcp MCP server with the sheets_read, sheets_write, sheets_append and sheets_format tools. claude-sonnet-4 is the recommended model.

Source text

SKILL.md · MIT
---
name: sheets-automation
description: "Google Sheets automation workflows - data sync, task management, reporting dashboards, and multi-platform integrations"
version: "1.0.0"
author: claude-office-skills
license: MIT

category: productivity
tags:
  - google-sheets
  - automation
  - data-sync
  - reporting
  - n8n
department: Operations

models:
  recommended:
    - claude-sonnet-4

mcp:
  server: google-workspace-mcp
  tools:
    - sheets_read
    - sheets_write
    - sheets_append
    - sheets_format

capabilities:
  - data_synchronization
  - automated_reporting
  - task_tracking
  - dashboard_creation
  - multi_source_aggregation

languages:
  - en
  - zh

related_skills:
  - data-analysis
  - gmail-workflows
  - crm-automation
---

# Google Sheets Automation

Automate Google Sheets workflows for data synchronization, task management, reporting dashboards, and multi-platform integrations. Based on n8n's 7,800+ workflow templates.

## Overview

This skill covers:
- Automated data sync from multiple sources
- Task management with Slack reminders
- Real-time reporting dashboards
- CRM/Marketing data aggregation
- Scheduled report generation

---

## Core Workflows

### 1. Multi-Source Data Aggregation

```
┌─────────────┐   ┌─────────────┐   ┌─────────────┐
│ HubSpot     │   │ Stripe      │   │ Google      │
│ (CRM)       │   │ (Payments)  │   │ Analytics   │
└──────┬──────┘   └──────┬──────┘   └──────┬──────┘
       │                 │                 │
       └─────────────────┼─────────────────┘
                         │
                         ▼
              ┌──────────────────┐
              │ Google Sheets    │
              │ (Master Dashboard)│
              └──────────────────┘
                         │
                         ▼
              ┌──────────────────┐
              │ Slack/Email      │
              │ (Daily Report)   │
              └──────────────────┘
```

**n8n Configuration**:
```yaml
workflow: "Daily Business Metrics Sync"

schedule: "6:00 AM daily"

steps:
  1. fetch_crm_data:
      source: hubspot
      data:
        - new_leads_today
        - deals_closed
        - pipeline_value
        
  2. fetch_revenue_data:
      source: stripe
      data:
        - mrr
        - new_subscriptions
        - churn
        
  3. fetch_traffic_data:
      source: google_analytics
      data:
        - sessions
        - conversions
        - bounce_rate
        
  4. update_sheets:
      spreadsheet: "Business Dashboard"
      sheet: "Daily Metrics"
      action: append_row
      data:
        - date: today
        - leads: "{hubspot.new_leads}"
        - deals: "{hubspot.deals_closed}"
        - mrr: "{stripe.mrr}"
        - sessions: "{ga.sessions}"
        
  5. update_charts:
      refresh: automatic (Sheets built-in)
      
  6. send_summary:
      slack:
        channel: "#daily-metrics"
        message: |
          📊 Daily Metrics - {date}
          
          💰 Revenue: ${mrr} MRR
          👥 New Leads: {leads}
          🎯 Deals Closed: {deals}
          📈 Website Sessions: {sessions}
```

---

### 2. Task Management with Reminders

```yaml
workflow: "Sheets Task Tracker"

trigger:
  type: schedule
  frequency: every_15_minutes

sheet_structure:
  columns:
    - A: Task
    - B: Assignee
    - C: Due Date
    - D: Priority (High/Medium/Low)
    - E: Status (Todo/In Progress/Done)
    - F: Slack ID

steps:
  1. read_tasks:
      filter: |
        Status != "Done" AND
        Due Date <= TODAY() + 1
        
  2. categorize_urgency:
      overdue: Due Date < TODAY()
      due_today: Due Date == TODAY()
      due_tomorrow: Due Date == TODAY() + 1
      
  3. send_reminders:
      for_each: task
      
      overdue:
        slack_dm:
          to: "{assignee_slack_id}"
          message: |
            🚨 *OVERDUE*: {task_name}
            Due: {due_date} ({days_overdue} days ago)
            Priority: {priority}
            
      due_today:
        slack_dm:
          to: "{assignee_slack_id}"
          message: |
            ⏰ *Due Today*: {task_name}
            Priority: {priority}
            
  4. daily_recap:
      schedule: "6:00 PM"
      slack_channel: "#team"
      message: |
        📋 *Daily Task Recap*
        
        ✅ Completed: {completed_count}
        ⏳ In Progress: {in_progress_count}
        🚨 Overdue: {overdue_count}
        
        Top priorities for tomorrow:
        {tomorrow_tasks}
```

---

### 3. Automated Report Generation

```yaml
workflow: "Weekly Report Generator"

schedule: "Friday 5:00 PM"

steps:
  1. collect_data:
      sheets:
        - "Sales Data"
        - "Marketing Metrics"
        - "Support Tickets"
        
  2. calculate_metrics:
      sales:
        - total_revenue: SUM(revenue_column)
        - deals_closed: COUNT(won_deals)
        - avg_deal_size: AVG(deal_value)
        - win_rate: won / (won + lost)
        
      marketing:
        - leads_generated: COUNT(new_leads)
        - cost_per_lead: spend / leads
        - conversion_rate: conversions / visitors
        
      support:
        - tickets_resolved: COUNT(resolved)
        - avg_response_time: AVG(first_response)
        - csat_score: AVG(satisfaction)
        
  3. generate_report:
      format: google_doc
      template: "Weekly Report Template"
      sections:
        - executive_summary
        - sales_performance
        - marketing_metrics
        - customer_support
        - next_week_priorities
        
  4. create_charts:
      google_sheets:
        - revenue_trend: line_chart
        - deal_funnel: bar_chart
        - lead_sources: pie_chart
        
  5. distribute:
      email:
        to: leadership_team
        subject: "Weekly Business Report - Week {week_number}"
        attach: [report_doc, charts_pdf]
        
      slack:
        channel: "#leadership"
        message: "📊 Weekly report ready: {doc_link}"
```

---

### 4. Inventory/Stock Tracker

```yaml
workflow: "Inventory Alert System"

trigger:
  type: sheets_change
  sheet: "Inventory"
  
sheet_structure:
  columns:
    - Product
    - SKU
    - Current Stock
    - Reorder Level
    - Supplier
    - Lead Time (days)

steps:
  1. check_stock_levels:
      condition: Current Stock <= Reorder Level
      
  2. generate_alerts:
      for_each: low_stock_item
      actions:
        - update_cell:
            column: "Status"
            value: "REORDER NEEDED"
            format: red_background
            
        - slack_alert:
            channel: "#inventory"
            message: |
              ⚠️ *Low Stock Alert*
              
              Product: {product_name}
              SKU: {sku}
              Current: {current_stock}
              Reorder Level: {reorder_level}
              Supplier: {supplier}
              
        - email_supplier:
            if: auto_reorder == true
            template: "reorder_request"
            
  3. daily_summary:
      schedule: "9:00 AM"
      report:
        - total_skus: count
        - low_stock_items: count
        - out_of_stock: count
        - pending_orders: list
```

---

### 5. Form Responses → CRM + Slack

```yaml
workflow: "Google Form Lead Capture"

trigger:
  type: google_forms
  form: "Contact Us Form"
  
steps:
  1. capture_response:
      fields: [name, email, company, message, source]
      
  2. append_to_sheet:
      spreadsheet: "Lead Tracker"
      data:
        - timestamp: NOW()
        - name: "{name}"
        - email: "{email}"
        - company: "{company}"
        - message: "{message}"
        - status: "New"
        
  3. enrich_lead:
      clearbit:
        lookup_by: email
        append: [company_size, industry, linkedin]
        
  4. create_in_crm:
      hubspot:
        object: contact
        properties:
          email: "{email}"
          firstname: "{name}"
          company: "{company}"
          lead_source: "Website Form"
          
  5. notify_sales:
      slack:
        channel: "#new-leads"
        message: |
          🎉 *New Lead!*
          
          👤 {name}
          🏢 {company} ({company_size} employees)
          📧 {email}
          💬 "{message}"
          
          [View in HubSpot]({hubspot_link})
          
  6. auto_respond:
      email:
        to: "{email}"
        template: "thank_you_for_contacting"
```

---

## Sheet Templates

### Sales Dashboard

```
┌────────────────────────────────────────────────────────────────┐
│                    SALES DASHBOARD - {Month}                   │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐          │
│  │ Revenue │  │ Deals   │  │ Avg Deal│  │ Win Rate│          │
│  │ $125K   │  │ 23      │  │ $5,400  │  │ 34%     │          │
│  │ ▲ 15%   │  │ ▲ 8%    │  │ ▲ 12%   │  │ ▼ 2%   │          │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘          │
│                                                                │
│  [Revenue Trend Chart - Line]                                  │
│  [Pipeline by Stage - Funnel]                                  │
│  [Top Sales Reps - Bar]                                        │
│                                                                │
├────────────────────────────────────────────────────────────────┤
│ Date    │ Deal      │ Value   │ Rep    │ Stage    │ Prob     │
│ 1/30    │ Acme Corp │ $15,000 │ Alice  │ Proposal │ 60%      │
│ 1/29    │ Tech Inc  │ $8,500  │ Bob    │ Demo     │ 40%      │
│ ...     │ ...       │ ...     │ ...    │ ...      │ ...      │
└────────────────────────────────────────────────────────────────┘
```

### Marketing Tracker

```
┌────────────────────────────────────────────────────────────────┐
│                   MARKETING METRICS                            │
├────────────────────────────────────────────────────────────────┤
│ Channel     │ Spend    │ Leads │ CPL    │ Conv % │ Revenue   │
├─────────────┼──────────┼───────┼────────┼────────┼───────────┤
│ Google Ads  │ $5,000   │ 150   │ $33    │ 3.2%   │ $45,000   │
│ Facebook    │ $3,000   │ 200   │ $15    │ 1.8%   │ $28,000   │
│ LinkedIn    │ $2,500   │ 50    │ $50    │ 5.5%   │ $35,000   │
│ Organic     │ $0       │ 300   │ $0     │ 2.1%   │ $52,000   │
├─────────────┼──────────┼───────┼────────┼────────┼───────────┤
│ TOTAL       │ $10,500  │ 700   │ $15    │ 2.8%   │ $160,000  │
└────────────────────────────────────────────────────────────────┘

ROAS: 15.2x
Best Channel: LinkedIn (highest conversion)
Action: Increase LinkedIn budget by 20%
```

---

## Formulas Reference

### Common Automation Formulas

```
# Auto-status based on date
=IF(C2<TODAY(), "OVERDUE", IF(C2=TODAY(), "DUE TODAY", "UPCOMING"))

# Days until due
=DATEDIF(TODAY(), C2, "D")

# Auto-assign based on criteria
=IFS(B2="Enterprise", "Alice", B2="Mid-Market", "Bob", TRUE, "Carol")

# Calculate conversion rate
=IFERROR(D2/C2, 0)

# Running total
=SUMIF($A$2:A2, "<="&A2, $B$2:B2)

# Conditional formatting trigger
=AND($E2="High", $F2<TODAY())

# VLOOKUP from another sheet
=VLOOKUP(A2, 'Reference Data'!$A:$C, 3, FALSE)

# Query for dashboard
=QUERY(Data!A:F, "SELECT A, SUM(C) WHERE B='Closed Won' GROUP BY A")
```

---

## Output Example

**Request**: "Set up automated task reminders from Google Sheets"

**Output**:

```markdown
# Task Reminder System Setup

## Sheet Structure

Create a sheet named "Tasks" with these columns:

| A | B | C | D | E | F |
|---|---|---|---|---|---|
| Task | Assignee | Due Date | Priority | Status | Slack ID |
| Review proposal | Alice | 2026-01-31 | High | In Progress | U12345 |
| Update docs | Bob | 2026-02-01 | Medium | Todo | U67890 |

## Automation Workflow

```yaml
trigger: Every 15 minutes
actions:
  1. Check for tasks due within 24 hours
  2. Send Slack DM to assignee
  3. Post daily summary at 6pm
```

## Sample Reminders

**Overdue Alert:**
```
🚨 *OVERDUE*: Review proposal
Due: Jan 29 (1 day ago)
Priority: High

Please update status or mark complete.
```

**Due Today:**
```
⏰ *Due Today*: Update documentation
Priority: Medium

You've got this! 💪
```

**Daily Recap (6pm):**
```
📋 *Daily Task Recap*

✅ Completed today: 5
⏳ In Progress: 3
🚨 Overdue: 1

Tomorrow's priorities:
• Review proposal (High) - Alice
• Client call prep (High) - Bob
```

## Setup Steps

1. Create Google Sheet with structure above
2. Set up n8n workflow with Schedule trigger
3. Connect Google Sheets and Slack nodes
4. Test with sample tasks
5. Activate workflow

Would you like the complete n8n workflow JSON?
```

---

*Sheets Automation Skill - Part of Claude Office Skills*

© claude-office-skills · MIT · claude-office-skills/skills

Similar skills

All skills for Automation and no-code: n8n, Zapier, Make →

From the same set109

contract-review Scans contracts for legal risks, verifies clause completeness, and outlines negotiation points. Handy when vetting NDAs, service agreements, or employment offers. CX Codex +1 5,400installs crm-automation A skill for sales automation: lead capture and scoring, deal stage progression, and syncing HubSpot, Salesforce and Pipedrive. CX Codex +1 5,500installs investment-memo Drafts professional investment memos for VC, PE, or public market deals. It structures investment theses, risk assessments, and recommendations. CX Codex +1 5,400installs report-generator Generates analytical reports, KPI dashboards, and visual charts from CSV, Excel, or JSON data. Helpful when turning raw metrics into clean summaries. CX Codex +1 5,200installs Amazon Seller Automates Amazon Seller Central workflows, including FBA inventory tracking, PPC campaigns, dynamic pricing, and listing optimization. CX Codex +1 5,200installs discord-bot Guides Discord bot work for moderation, notifications, and community features. Use it when planning commands, roles, tickets, or AI-assisted bot behaviour. CX Codex +1 5,300installs invoice-generator Generates professional invoices for freelancers and small businesses. It calculates taxes, handles multiple currencies, and outputs ready-to-send documents in DOCX or PDF. CX Codex +1 5,100installs company-research Research a company’s business model, market position, competitors and management. Use it for investment decisions, partnership reviews or competitive research. CX Codex +1 5,100installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor