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:
- Un filtro Gmail: per assegnare automaticamente l’etichetta “IN” a ogni nuova email.
- Google Apps Script: per creare e gestire lo script.
- 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:
- Individuare le email con l’etichetta “IN”: Ogni 15 minuti, lo script scansiona Gmail alla ricerca di nuove email con questa etichetta.
- Raccogliere le informazioni rilevanti: Mittente, oggetto, data e altri dettagli vengono estratti.
- 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!