Automatizzare Google Sheets e Gmail con Google Apps Script

Genera uno script Google Apps Script pronto da incollare: legge il tuo foglio, invia email o crea eventi, gira con un attivatore, evita i duplicati e include modalità di prova e istruzioni. Pensato per ChatGPT, Claude, Gemini e Microsoft Copilot. Include 4 variabili personalizzabili e puoi copiarlo gratuitamente con un clic.

Intermedio · Codice · In attesa di revisione editoriale

Prompt

Agisci come sviluppatore esperto di Google Apps Script e Google Workspace che scrive automazioni solide per team non tecnici.

Contesto:
- Cosa voglio automatizzare: {{attivita}}
- Struttura del foglio (nome della scheda e colonne con una riga di esempio): {{foglio}}
- Quando deve essere eseguito: {{attivatore}}
- Servizi coinvolti (Gmail, Calendar, Drive, Docs, Forms): {{servizi}}

Consegne:
1. Sintesi del flusso in 4-6 passaggi e le ipotesi che fai sui dati.
2. Codice Apps Script completo (JavaScript V8) con:
   - Un blocco CONFIG all'inizio (nome della scheda, colonne, mittente, oggetto) modificabile senza toccare la logica.
   - Lettura in blocco con getValues() e scrittura in blocco, non cella per cella.
   - Una colonna di stato per segnare le righe elaborate ed evitare invii doppi se lo script gira due volte.
   - Una modalità di prova (DRY_RUN) che registri cosa farebbe senza inviare nulla.
   - Gestione degli errori per riga, log con console.log e un riepilogo finale.
   - LockService se c'è rischio di esecuzioni simultanee.
3. Una funzione che crei l'attivatore via codice e l'alternativa manuale dal pannello degli attivatori.
4. Installazione passo passo: Estensioni > Apps Script, incolla, salva, autorizza i permessi (spiega quali permessi chiederà e perché).
5. Limiti da tenere presenti: quote giornaliere di invio e tempo massimo di esecuzione in base al tipo di account; scrivi [DA VERIFICARE nella documentazione sulle quote di Google] invece di cifre esatte.
6. Piano di test con 3 righe di esempio, di cui una con dati vuoti o errati.

Vincoli:
- Niente librerie esterne né servizi a pagamento.
- Non chiedere né salvare password nel codice.
- Se la struttura del foglio non è chiara, chiedimelo prima di scrivere il codice.

Formato: sezioni numerate, il codice in un unico blocco e commenti in italiano.

Come usarlo

Descrivi le colonne con una riga reale (senza dati personali). Esegui prima lo script con DRY_RUN attivo, controlla il log e solo dopo disattivalo e crea l’attivatore.

Esempio d'uso

Attività: promemoria via email 3 giorni prima della scadenza di ogni fattura · Foglio: scheda «Fatture» con cliente, email, importo in euro, scadenza, stato · Attivatore: ogni giorno alle 8:00 · Servizi: Gmail.

Esempio di risultato

2. Codice (Apps Script, V8)

const CONFIG = {
  SHEET_NAME: 'Iscrizioni',
  STATUS_COL: 5,            // A=nome, B=email, C=corso, D=data di inizio, E=stato
  SUBJECT: 'Benvenuto nel tuo corso',
  DRY_RUN: true,            // set to false once the test run looks right
};

function sendWelcomeEmails() {
  const lock = LockService.getScriptLock();
  if (!lock.tryLock(30 * 1000)) return;           // another run is in progress
  try {
    const sheet = SpreadsheetApp.getActive().getSheetByName(CONFIG.SHEET_NAME);
    const lastRow = sheet.getLastRow();
    if (lastRow < 2) return;
    const rows = sheet.getRange(2, 1, lastRow - 1, CONFIG.STATUS_COL).getValues();
    let sent = 0;
    const statuses = rows.map(([name, email, course, start, status], i) => {
      if (status) return [status];                // already processed: skip
      try {
        if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) throw new Error('invalid email');
        const date = Utilities.formatDate(new Date(start), Session.getScriptTimeZone(), 'dd/MM/yyyy');
        const body = `Ciao ${name},\n\nbenvenuto nel corso «${course}». Si parte il ${date}.`;
        if (CONFIG.DRY_RUN) { console.log(`[DRY_RUN] would email ${email}`); return ['']; }
        GmailApp.sendEmail(email, CONFIG.SUBJECT, body);
        sent++;
        return ['INVIATA ' + new Date().toISOString()];
      } catch (e) {
        console.log(`Row ${i + 2}: ${e.message}`);
        return ['ERRORE: ' + e.message];
      }
    });
    sheet.getRange(2, CONFIG.STATUS_COL, statuses.length, 1).setValues(statuses); // one bulk write
    console.log(`Done: ${sent} sent out of ${rows.length} rows`);
  } finally {
    lock.releaseLock();
  }
}

function createTrigger() {
  ScriptApp.newTrigger('sendWelcomeEmails')
    .forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
}

La colonna di stato evita invii doppi se lo script gira due volte. L’invito di Google Calendar si aggiunge nello stesso ciclo, una volta confermato il calendario del corso → [DA COMPLETARE]…

Dati chiave

Categoria
Programmazione e sviluppo · Automazioni
Tipo di output
Codice
Livello
Intermedio
Pensato per
ChatGPT, Claude, Gemini e Microsoft Copilot
Verificato in
In attesa di verifica editoriale
Variabili
Cosa automatizzare, Struttura del foglio, Attivatore e Servizi coinvolti
Lingua
Italiano
Prezzo
Gratuito, senza registrazione
Aggiornato
07/11/2026

Domande frequenti

Devo saper programmare per usare lo script?

Poco: basta incollare il codice, adattare il blocco CONFIG e autorizzare i permessi. Conviene comunque provarlo su una copia del foglio prima di usarlo con dati reali.

Perché lo script chiede tanti permessi?

Apps Script richiede l’accesso a ogni servizio usato dal codice, come Gmail o Calendar. Controlla l’elenco: se chiede qualcosa che non serve, il codice si può modificare per ridurre i permessi.

A cosa serve questo prompt?

Genera uno script Google Apps Script pronto da incollare: legge il tuo foglio, invia email o crea eventi, gira con un attivatore, evita i duplicati e include modalità di prova e istruzioni.

Con quali strumenti di IA funziona?

È pensato per ChatGPT, Claude, Gemini e Microsoft Copilot. Non lo abbiamo ancora verificato in questi strumenti, quindi i risultati possono variare da uno all'altro.

Come personalizzo il prompt?

Clicca su «Personalizza» e compila le variabili (Cosa automatizzare, Struttura del foglio, Attivatore e Servizi coinvolti). Il testo si aggiorna all'istante e poi puoi copiarlo con un clic. I valori vengono salvati solo nel tuo browser.

Serve esperienza per usarlo?

È di livello intermedio: conviene conoscere l'argomento per fornire un buon contesto e valutare il risultato con occhio critico.

Questo prompt è gratuito?

Sì. Tutti i prompt di HomeCasa Prompts sono gratuiti, senza registrazione né abbonamento. Puoi usarli anche in progetti professionali.

Posso fidarmi dell'output dell'IA?

Consideralo una bozza di alta qualità: verifica sempre dati, cifre e affermazioni importanti prima di pubblicare o prendere decisioni.

Prompt correlati