- Home
- Skills
- Workflow Automation
- Excel/Google Sheets Apps Script Automation Builder
Works with the AI Agents you already use
Excel/Google Sheets Apps Script Automation Builder
Builds reliable, production-grade automations for Excel and Google Sheets using Apps Script and Office Scripts.
$15
Excel/Google Sheets Apps Script Automation Builder
Example session with this skill installed
I need a Google Apps Script that runs every morning to check the 'Status' column in my 'Leads' sheet. If it says 'Pending' and the date is older than 3 days, email the address in column B.
- Read your context and instructions
- Compiled the excel google sheets
I will build a Google Apps Script that identifies overdue leads and sends email reminders.
Solution
The script will perform a batch read of the 'Leads' sheet, filter for rows where 'Status' is 'Pending' and the 'Created Date' is older than 3 days, then send emails using MailApp.
Assumptions and data mapping
- Platform: Google Sheets (Apps Script).
- Sheet Name:
Leads. - Header Mapping: 'Status' (Column C), 'Email' (Column B), 'Date' (Column A).
- Trigger: Time-driven (Daily between 8 AM and 9 AM).
Code
/**
* Processes overdue leads and sends email reminders.
*/
function processOverdueLeads() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('Leads');
if (!sheet) return;
const data = sheet.getDataRange().getValues();
const headers = data[0];
const statusIdx = headers.indexOf('Status');
const emailIdx = headers.indexOf('Email');
const dateIdx = headers.indexOf('Date');
const now = new Date();
const threeDaysAgo = new Date(now.getTime() - (3 * 24 * 60 * 60 * 1000));
data.slice(1).forEach((row, index) => {
const status = row[statusIdx];
const email = row[emailIdx];
const date = new Date(row[dateIdx]);
if (status === 'Pending' && date < threeDaysAgo && email) {
MailApp.sendEmail({
to: email,
subject: 'Follow-up: Your Lead Status',
body: 'Your request is still pending. Please check in with us.'
});
console.log(`Email sent to ${email}`);
}
});
}
function createTimeTrigger() {
ScriptApp.newTrigger('processOverdueLeads')
.timeBased()
.everyDays(1)
.atHour(8)
.create();
}
Setup
- Open your Google Sheet, go to Extensions > Apps Script.
- Paste the code above into
Code.gs. - Run
createTimeTriggeronce to authorize and set the schedule.
Permissions and operational notes
- Scopes:
https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/script.send_mail. - Quotas: Gmail daily limit is 100 recipients for free accounts (2,000 for Google Workspace).
Next steps
- Run a test by setting one lead date to 4 days ago and clicking 'Run' on
processOverdueLeads. - Check the Apps Script Executions log to confirm the trigger was created.
Connects securely to your tools. The creator never sees your data.
About this skill
Manual data entry and repetitive spreadsheet tasks introduce errors and stall workflows. This skill builds production-ready automations for Microsoft Excel and Google Sheets, replacing fragile manual processes with maintainable scripts and formulas.
What it does
- Platform-specific scripting creates Google Apps Script (V8) or Excel Office Scripts (TypeScript) tailored to your environment.
- Header-based lookup develops scripts that find data by column name rather than hard-coded positions to prevent breakage when columns move.
- Data integrity protection implements dry-run patterns, backups, and confirmation steps for destructive operations.
- Automated triggers configures time-based schedules, form submission hooks, and on-edit event handlers.
- Error handling builds in validation for blanks, duplicates, and malformed data with clear logging.
How it works
- Intake where you provide your platform, headers, and desired trigger.
- Design phase delivers a data mapping plan and logic flow for your approval.
- Implementation produces copy-ready code, setup steps, and permission requirements.
- Verification provides a specific test plan for normal and edge cases.
Frameworks & tools
Works with Google Apps Script, Microsoft Office Scripts, Power Automate, and advanced Excel formula environments.
Why this beats prompting it yourself
Generic prompts often return VBA for web environments or fail to handle batch operations, hitting execution limits. This skill uses platform-correct APIs, batch processing for performance, and LockService to prevent race conditions.
Use cases
- Generate PDF reports and email notifications from sheet updates.
- Synchronize data between different workbooks or external APIs.
- Clean and deduplicate large datasets using batch processing.
- Build automated follow-up queues for CRM or project tracking sheets.
Known limitations
Does not support legacy VBA macros for desktop-only Excel. Requires specific Microsoft 365 licenses for Office Scripts. Scripts are subject to platform execution quotas and timeouts.
Find more skills like this on the Claude Skills Marketplace, the Codex Skills Marketplace and the Gemini Skills Marketplace, or browse Claude Skills for Workflow Automation.
Does not support legacy Excel VBA. Requires Microsoft 365 for Office Scripts. Google Apps Script and Power Automate have daily execution and email quotas.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before buying a skill.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Security scan passed 1 month ago
Permissions
No special permissions declared or detected