Introduzione: Il problema dei trigger mancanti in Gmail

Per chi ama automatizzare le attività, Gmail è uno strumento potente, ma presenta una grande limitazione: non esiste un trigger nativo per rilevare ogni nuova e-mail.

E’ presente la notifica di nuovi messaggi nella app per smartphone, ma non è facilmente integrabile per realizzare un trigger che scatta ad ogni nuovo messaggio ricevuto.

Questa mancanza può essere frustrante per chi vuole innescare azioni automatiche o integrazioni con altre applicazioni.

Fortunatamente, ho trovato una soluzione: si può utilizzare lo strumento Google Apps Script per creare uno script che simuli un trigger alla ricezione di ogni nuova e-mail. In questo articolo ti mostrerò come l’ho implementato e come puoi farlo anche tu.

L’obiettivo: Automatizzare Gmail per azioni personalizzate

Immagina di ricevere una nuova e-mail e attivare automaticamente un’azione: inviare una notifica al tuo telefono, aggiornare un foglio di lavoro o attivare un webhook in IFTTT. Grazie a Google Apps Script, possiamo rilevare ogni nuova e-mail assegnandole una specifica etichetta (ad esempio, “IN”) e utilizzando uno script che esegue azioni personalizzate.

Le applicazioni pratiche di questa soluzione sono infinite:

  • Notifiche personalizzate in tempo reale.
  • Automazioni per organizzare la posta in arrivo.
  • Integrazione con altri strumenti come Slack, Trello o Google Sheets.
  • E altro… il limite può essere dato solo dalla tua immaginazione!

Preparazione: Cosa serve per iniziare

Per mettere in pratica questa soluzione, avrai bisogno di:

  1. Un filtro Gmail: per assegnare automaticamente l’etichetta “IN” a ogni nuova email.
  2. Google Apps Script: per creare e gestire lo script.
  3. Un servizio webhook: come quello fornito da IFTTT, per collegare la notifica di Gmail ad altri strumenti.

Come funziona il mio script

Il mio script opera in tre passaggi principali:

  1. Individuare le email con l’etichetta “IN”: Ogni 15 minuti, lo script scansiona Gmail alla ricerca di nuove email con questa etichetta.
  2. Raccogliere le informazioni rilevanti: Mittente, oggetto, data e altri dettagli vengono estratti.
  3. Attivare un webhook: Le informazioni vengono inviate tramite una chiamata webhook, che può innescare un’azione su IFTTT o altri strumenti.

Implementazione passo passo

1. Configurare il filtro Gmail

Vai su Gmail e crea un filtro per le e-mail in arrivo. Per sapere nel dettaglio come fare, puoi consultare la pagina del supporto tecnico ufficiale di Google.

  • Criteri del filtro: per poter filtrare tutte le e-mail in arrivo, potresti impostare “Dimensione maggiore di 1 byte”.
  • Azione: assegna l’etichetta “IN” alle e-mail filtrate.

2. Creare lo script in Google Apps Script

Accedi a Google Drive, con lo stesso account di Gmail, e crea un nuovo script, cliccando su Nuovo à Altro à Google Apps Script. Poi, copia e incolla il seguente codice nella finestra di editing:

function notificaNuoviMessaggi() {
  var userLabelString = "IN";
  const threads = GmailApp.search("label:inbox label:IN "); // Cerca tutte la mail nella inbox (NON archiviate), che hanno anche la label 'IN', aggiunta tramite filtro
  var userLabel = GmailApp.getUserLabelByName(userLabelString);
  for (var i = threads.length - 1; i >= 0; i--) {  // In questo modo i messaggi sono ordinati dal più vecchio al più recente
    const thread = threads[i];
    const messages = thread.getMessages();
    for (const message of messages) {
      var oggetto = message.getSubject();
      var mittente = message.getFrom();
      // estraggo solo l'indirizzo email:
      var email = mittente.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
      // Scateno il trigger di IFTTT
      const response = UrlFetchApp.fetch("https://maker.ifttt.com/trigger/notificaGmail/with/key/TUA_API_KEY?value1=" + oggetto + "&value2=" + email);
      // Attendo 1 secondo tra una chiamata e l'altra:
      Utilities.sleep(1000);
    }
    // Rimuovo la label 'IN' dai thread già elaborati:
    thread.removeLabel(userLabel);
  }
}

Salva lo script e crea un nuovo attivatore per eseguire la funzione ogni 15 minuti.

3. Collegare il webhook a IFTTT

Crea un applet su IFTTT che utilizza il webhook come trigger. Configura l’azione che desideri (es. inviare una notifica, aggiungere dati a un foglio Google, ecc.).

I vantaggi di questa soluzione

Questa configurazione offre numerosi vantaggi:

  • Automazione personalizzata: Puoi adattare lo script alle tue esigenze specifiche.
  • Scalabilità: Funziona con qualsiasi numero di e-mail o integrazioni.
  • Risparmio di tempo: Riduce le attività manuali ripetitive.
  • Integrazione potente: Può essere collegata a decine di strumenti come Trello, Slack, o Google Sheets.

Possibili limitazioni e suggerimenti per migliorarla

  • Intervallo di 15 minuti: dato che Google Apps Script ha un limite giornaliero di utilizzo, questo intervallo non va ad intaccare eccessivamente tale limite. Puoi provare a diminuirlo, anche a 10 o 5 minuti, ma rischi di andare fuori quota.
  • Quota API Gmail: Gmail ha limiti di utilizzo giornaliero; fai attenzione se processi grandi quantità di e-mail.
  • Sicurezza: Assicurati di proteggere i dati sensibili nei webhook.

Per migliorare questa soluzione, puoi:

  • Aggiungere filtri più avanzati (es. processare solo e-mail da mittenti specifici).
  • Integrare notifiche SMS o push per le e-mail più urgenti.
  • Archiviare automaticamente le e-mail processate in una cartella dedicata.

Conclusione

Automatizzare la gestione delle e-mail può rivoluzionare il tuo modo di lavorare, risparmiandoti ore di tempo ogni settimana. Con questa soluzione basata su Google Apps Script e IFTTT, puoi finalmente attivare azioni personalizzate per ogni nuova e-mail.

Ti invito a provare questo approccio e a condividere i tuoi risultati nei commenti. Se hai bisogno di aiuto o vuoi esplorare altre automazioni, visita il mio sito automatica-mente.it per ulteriori idee e soluzioni!