How to automate Google Sheets with Apps Script
Quick Answer: Automate Google Sheets by opening Extensions > Apps Script, writing JavaScript functions to read/write data, creating custom formulas, and setting up time-based or event-based triggers. Apps Script handles daily reports, email summaries, and API data imports for free.
How to Automate Google Sheets with Apps Script
Google Apps Script provides free, server-side JavaScript automation for Google Sheets. This guide covers creating automated data processing, scheduled reports, and custom functions without external tools.
Step 1: Open the Script Editor
From any Google Sheet, click Extensions > Apps Script. This opens the script editor bound to your spreadsheet, giving the script direct access to the sheet's data.
Step 2: Read and Write Sheet Data
Basic operations:
function processData() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
const data = sheet.getDataRange().getValues(); // 2D array of all data
// Process each row (skip header)
for (let i = 1; i < data.length; i++) {
const name = data[i][0];
const amount = data[i][1];
// Write calculated result to column C
sheet.getRange(i + 1, 3).setValue(amount * 1.1);
}
}
Step 3: Create Custom Functions
Custom functions work like built-in Sheets formulas:
function TAXAMOUNT(subtotal, rate) {
return subtotal * (rate / 100);
}
// Use in sheet as =TAXAMOUNT(A1, 8.5)
Step 4: Set Up Automated Triggers
Triggers run scripts automatically:
- Time-based: Run daily, weekly, or at specific times. Click Triggers (clock icon) > Add Trigger > Time-driven.
- Spreadsheet event: Run when the sheet is edited, opened, or a form is submitted.
- Installable triggers: More flexible than simple triggers, supporting event filtering.
Common automated workflows:
- Daily report generation at 8 AM
- Process new form submissions automatically
- Send email summaries of updated data weekly
Step 5: Send Automated Emails from Sheet Data
function sendWeeklyReport() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Summary");
const data = sheet.getDataRange().getValues();
let report = "Weekly Summary:\n\n";
for (let i = 1; i < data.length; i++) {
report += data[i][0] + ": " + data[i][1] + "\n";
}
GmailApp.sendEmail("[email protected]", "Weekly Report", report);
}
Step 6: Connect to External APIs
function fetchExternalData() {
const response = UrlFetchApp.fetch("https://api.example.com/data", {
headers: { "Authorization": "Bearer YOUR_TOKEN" }
});
const data = JSON.parse(response.getContentText());
// Write to sheet
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("API Data");
data.forEach((item, i) => {
sheet.getRange(i + 2, 1).setValue(item.name);
sheet.getRange(i + 2, 2).setValue(item.value);
});
}
Execution Limits
| Limit | Free Account | Google Workspace |
|---|---|---|
| Execution time per run | 6 minutes | 30 minutes |
| Daily trigger runtime | 90 minutes | 6 hours |
| URL fetch calls per day | 20,000 | 100,000 |
| Email sends per day | 100 | 1,500 |
Editor's Note: We built 8 Apps Script automations for a marketing agency's Google Sheets workflow. Daily KPI calculations, weekly client reports, and monthly billing summaries — all running on time-based triggers at $0/month. The initial development took 12 hours. Running equivalent workflows in Zapier at the time would have cost approximately $73.50/month ($882/year). The scripts have run without modification for 14 months.
Related Questions
Related Tools
Google Apps Script
Free JavaScript-based scripting platform for automating Google Workspace applications including Sheets, Gmail, Docs, Forms, Calendar, and Drive.
Spreadsheet AutomationZapier
Automate workflows between apps without coding—connect 9,000+ tools with simple, reliable automation.
Workflow AutomationMake
Automate your work with visual workflow builder and AI agents
Workflow AutomationActivepieces
No-code workflow automation with self-hosting and AI-powered features
Workflow AutomationRelated Rankings
Best Human-in-the-Loop Automation Platforms 2026
Eight platforms are ranked here on a single mechanism: how a person enters an automated path, and what the system can prove afterward about the decision they made. Moxo scores 7.7 and ranks first; Camunda 8 scores 7.2, Microsoft Power Automate 7.1, Pega 6.9, n8n 6.7, Zapier 5.9…
Best Automation Platforms for AI Orchestration 2026
This ranking answers one question: how many real business applications can an AI agent act on out of the box? It evaluates nine platforms as of August 2026 on the reach they give an agent, not on the workflow logic they can express. That boundary is deliberate, because two…
Dive Deeper
Moxo vs Gumloop in 2026: Texting the Client, or Building the Agent
Gumloop (founded 2023) builds AI agents a company's own staff run; Moxo, whose predecessor Moxtra was co-founded in 2012, runs processes that wait on people outside the company. Gumloop wins three rounds to two: the way in, per-tool gating and a priced overage. Moxo wins on…
Moxo vs Relay.app in 2026: Where Relay's Approval Workflows Can Go Next
Relay.app, founded in 2021, shut down in September 2026 and deleted every account, workflow and run history; Moxo, whose predecessor Moxtra was co-founded in 2012, is one destination for its human-in-the-loop users. Relay.app takes two rounds, Moxo one, and vendor risk is a draw…
Moxo vs Workato in 2026: The Integration Estate, or the Approval Inside It
Workato, founded in 2013, is an enterprise integration platform whose Workflow apps add human tasks to recipes; Moxo, whose predecessor Moxtra was co-founded in 2012, ships the human step itself. Workato wins three rounds to two: connector reach, change control and the way in…