Automatizzare le mail noiose con Google Apps Script

Premessa doverosa: questo post è leggermente aziendalista, perché parla in toni entusiastici di un prodotto dell’azienda per cui lavoro. Tuttavia, disclaimer: è veramente una figata, lo conoscevo un pochino (e lo conosco ancora poco) ma ci si possono fare un sacco di cose meravigliose.

Allora, la situazione è questa: anche se mi sono trasferito da poco all’estero, ho ancora una partita IVA italiana e la avrò ancora per un po’, oltre ad avere una casa in Italia, per cui mi capita spesso di ricevere fatture per spese, bollette e quant’altro che devo girare alla mia commercialista per poter detrarre dalle tasse le spese suddette.

In passato, questa cosa la gestivo stampando le fatture e portandole a mano alla commercialista una volta a trimestre: tutti d’accordo, non è neanche lontanamente la soluzione ottimale, ma funzionava, e in fondo passare una volta a trimestre dalla commercialista (o spedirci mia madre quando non avevo tempo di farlo io, lo ammetto) era una discreta occasione di socialità.

Tuttavia, prendere un aereo una volta a trimestre per andare a portare della carta alla commercialista non mi pare una soluzione fattibile: quando prendo un aereo per tornare a Milano ho tonnellate di cose migliori da fare, senza contare che lo faccio praticamente sempre nei weekend in cui logicamente la commercialista ha anch’essa di meglio da fare.

Soluzione: “cara commercialista, è un problema per te se le fatture delle spese te le mando per email come già facevo per quelle che emettevo io verso i miei clienti?” Ovviamente no, ma come ogni soluzione che si rispetti questa crea degli altri problemi.

Mi pare scortese, infatti, spammare la povera commercialista ogni volta che mi arriva una fattura, per cui l’accordo è che le manderò uno zip con un po’ di fatture una volta ogni tanto: ma come faccio a ricordarmi quali fatture le ho già mandato e quali no? E non è uno sbatti allucinante scaricarle tutte, fare lo zip, riallegarlo a una mail nuova e mandarla?

Certo che lo è, ma io sono un nerd.

E i nerd odiano fare a mano le operazioni semplici e ripetitive.

Si dà il caso che il mio attuale datore di lavoro abbia un prodotto, Google Apps Script, che serve giustappunto a soddisfare questa necessità di qualunque nerd che si rispetti: tra le tante cose che fa, infatti, permette di scrivere pezzettini di codice che interagiscano con diversi altri prodotti Google, principalmente GMail e Google Drive, che sono quelli che interessano a me, ma anche Calendar, Hangouts, Maps e Translate tra gli altri.

Ora, quello che devo fare io non è altro che quanto segue:

  • Prendi tutte le mail con la label “fatture” (ok, questo lo faccio a mano, ma sticazzi)
  • Crea una cartella nuova su Google Drive e salvaci tutti gli allegati delle mail prese in precedenza
  • Fai uno zip della cartella e mandalo per email alla commercialista, mettendomi in bcc che non si sa mai
  • Cancella la cartella
  • Togli la label “fatture” a tutte le mail e aggiungi la label “fatture-inviate”

Una piccola parte dello script (si fa per dire, è praticamente metà del lavoro)

Sono stato un po’ prolisso e ho cercato di essere ordinato, per cui tutto quanto sopra ammonta a ben trentasette righe di script: in pratica ci sto mettendo di più a raccontare quello che ho fatto che a farlo.

Oltretutto, bonus: GAS è praticamente Javascript, quindi se hai mai scritto del codice in vita tua è facile che tu non faccia troppa fatica ad adattartici, e le API per interagire coi servizi Google sono estremamente semplici e ben documentate: io avevo scritto uno script solo in vita mia, mille anni fa, per cui ero praticamente vergine dell’ambiente di sviluppo, ma le trentasette righe in questione le ho scritte, testate e debuggate in poco più di un’ora.

Problema risolto, cose imparate, gioia nel cuore.

Il problema nuovo, perché le soluzioni spesso creano problemi nuovi, è trovare altre cose che posso automatizzare o semplificare usando GAS, visto che adesso mi ci sono affezionato e voglio usarlo per la qualunque.

Idee?