Introduzione
Google Apps Script e' un linguaggio basato su JavaScript che permette di automatizzare Gmail, Drive, Sheets, Docs, Calendar e ogni altro servizio Workspace. E' gratuito, eseguito sui server Google e accessibile da qualsiasi browser senza installare nulla. Con poche righe di codice puoi sostituire integrazioni esterne costose.
Casi d'uso tipici
- Invio email automatiche da Sheet (mail merge)
- Generazione PDF da template Docs
- Sincronizzazione tra Sheet e applicazioni esterne via API
- Notifiche Slack/Chat quando un Form viene compilato
- Reminder automatici basati su date in Calendar/Sheet
- Backup automatici di Drive
Aprire l'editor
Due modi per accedere all'editor:
- Da un documento: in un Sheet/Doc/Slide vai su Estensioni > Apps Script. Lo script e' legato al documento
- Standalone: vai su script.google.com e clicca Nuovo progetto. Script indipendente
Sintassi base
Apps Script usa JavaScript ES6+ con classi globali per servizi Google. Esempio: leggere un range da uno Sheet:
function leggiDati() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange("A1:C10");
const valori = range.getValues();
Logger.log(valori);
}Premi il bottone Esegui. La prima volta serve autorizzare gli scope (Google chiede consenso per accedere a Sheets).
Esempio: invio email da Sheet
Hai un foglio con colonne A (email), B (nome), C (messaggio). Script per inviare email personalizzata a ciascuno:
function inviaEmail() {
const sheet = SpreadsheetApp.getActiveSheet();
const dati = sheet.getRange(2, 1, sheet.getLastRow() - 1, 3).getValues();
dati.forEach(riga => {
const [email, nome, messaggio] = riga;
if (email) {
GmailApp.sendEmail(
email,
`Ciao ${nome}`,
messaggio
);
}
});
}Trigger: eseguire automaticamente
Gli script possono partire automaticamente. Vai nell'editor > menu sinistro Trigger (icona orologio) > Aggiungi trigger. Tipi:
- Time-driven: ogni ora, ogni giorno, settimanalmente
- On form submit: quando un Form viene compilato
- On edit: quando un Sheet viene modificato
- On open: all'apertura del documento
- On change: cambio struttura del foglio
Esempio: notifica Chat su nuova risposta Form
function notificaSuRisposta(e) {
const risposte = e.values;
const webhook = "https://chat.googleapis.com/v1/spaces/...";
const payload = {
text: `Nuova risposta Form: ${risposte[1]} - ${risposte[2]}`
};
UrlFetchApp.fetch(webhook, {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload)
});
}Imposta trigger On form submit. Ad ogni risposta arriva notifica nello Space Chat.
Servizi disponibili
- SpreadsheetApp: leggere/scrivere Sheet
- GmailApp / MailApp: invio email
- DriveApp: gestire file Drive
- DocumentApp: editare Docs
- SlidesApp: editare Slides
- CalendarApp: creare/modificare eventi
- FormApp: creare Forms programmaticamente
- UrlFetchApp: chiamare API esterne (HTTP)
- PropertiesService: storage chiave-valore per dati persistenti
Quote e limiti
Apps Script ha quote giornaliere variabili in base al tipo di account:
- Gmail invii: 100/giorno (account gratuiti), 1500 (Workspace)
- UrlFetch: 20.000 chiamate/giorno
- Tempo esecuzione: max 6 minuti per esecuzione (30 min per Workspace)
- Trigger: max 20 per script
Debugging
Usa Logger.log(variabile) per loggare. Vedi i log dal menu Esecuzioni nell'editor. Per debug step-by-step usa breakpoints cliccando sul numero di riga.
Sicurezza
- Non hard-codare API key: usa
PropertiesService.getScriptProperties() - Limita gli scope autorizzati al minimo necessario (manifesto appsscript.json)
- Per script aziendali, l'admin Workspace puo' controllare gli script attivi nella console admin
Deploy come API o webapp
Uno script puo' essere deployato come:
- Web App: endpoint HTTPS che restituisce HTML/JSON (utile per dashboard)
- Add-on: estensione visibile in Sheets/Docs/Gmail per il dominio
- API executable: chiamabile da altre app esterne
Conclusione
Apps Script democratizza l'automazione: anche team senza developer dedicati possono ridurre lavoro ripetitivo. G Tech Group sviluppa script custom Workspace e add-on aziendali, integrando Sheets/Drive con CRM, ERP e applicazioni cloud terze.