Google Sheets automation workflows - data sync, task management, reporting dashboards, and multi-platform integrations
npx skills add https://github.com/claude-office-skills/skills --skill 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.
This skill covers:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ HubSpot │ │ Stripe │ │ Google │
│ (CRM) │ │ (Payments) │ │ Analytics │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└─────────────────┼─────────────────┘
│
▼
┌──────────────────┐
│ Google Sheets │
│ (Master Dashboard)│
└──────────────────┘
│
▼
┌──────────────────┐
│ Slack/Email │
│ (Daily Report) │
└──────────────────┘
n8n Configuration:
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}
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}
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}"
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
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"
┌────────────────────────────────────────────────────────────────┐
│ 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 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%
# 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")
Request: "Set up automated task reminders from Google Sheets"
Output:
# 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
trigger: Every 15 minutes
actions:
## 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*
Expert startup business analyst specializing in market sizing, financial modeling, competitive analysis, and strategic planning for early-stage companies. Use PROACTIVELY when the user asks about market opportunity, TAM/SAM/SOM, financial projections, unit economics, competitive landscape, team planning, startup metrics, or business strategy for pre-seed through Series A startups.
This skill should be used when the user asks to "plan team structure", "determine hiring needs", "design org chart", "calculate compensation", "plan equity allocation", or requests organizational design and headcount planning for a startup.
End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g. "analyze my RNA-seq", "FASTQ to DESeq2", "run nf-core/rnaseq", "STAR/Salmon quantification", "build a counts matrix for DESeq2", or "go from reads to differentially expressed genes and enriched pathways". Routes between an nf-core/rnaseq (Nextflow) path and a standalone STAR/Salmon path, and covers experimental design, strandedness, and QC gates. For single-cell RNA-seq use the scanpy skill instead.
Generate project status reports from Jira issues and publish to Confluence. When an agent needs to: (1) Create a status report for a project, (2) Summarize project progress or updates, (3) Generate weekly/daily reports from Jira, (4) Publish status summaries to Confluence, or (5) Analyze project blockers and completion. Queries Jira issues, categorizes by status/priority, and creates formatted reports for delivery managers and executives.
Evaluates market bubble risk through quantitative data-driven analysis using the revised Minsky/Kindleberger framework v2.1. Prioritizes objective metrics (Put/Call, VIX, margin debt, breadth, IPO data) over subjective impressions. Features strict qualitative adjustment criteria with confirmation bias prevention. Supports practical investment decisions with mandatory data collection and mechanical scoring. Use when user asks about bubble risk, valuation concerns, or profit-taking timing.
Google Workflow: Today's meetings + open tasks as a standup summary.
Read event data from a Google Sheets spreadsheet and create Google Calendar entries for each row.
Create professional, dark-themed SVG diagrams of any type — architecture diagrams, flowcharts, sequence diagrams, structural diagrams, mind maps, timelines, illustrative/conceptual diagrams, and more. Use this skill whenever the user asks for any kind of technical or conceptual diagram, visualization of a system, process flow, data flow, component relationship, network topology, decision tree, org chart, state machine, or any visual representation of structure/logic/process. Also trigger when the user says "画个图" "画一个架构图" "diagram" "flowchart" "sequence diagram" "draw me a ..." or uploads content and asks to visualize it. Output is always a standalone .svg file.
Take claude-office-skills/sheets-automation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.