Gmail – upozornění na nevyřešené emaily
Trápí vás dlouho neřešené emaily? Následující Google Apps Script automaticky označí štítkem emaily, které dorazily před nějakou dobou a jsou nevyřešené.
Aktualizace 2.12.2015: Vylepšil jsem script tak, aby kontroloval datum pouze poslední zprávy v konverzaci. Když např. na email odpovíte, ale necháte v doručené poště, tak bude označen jako neřešený až 3 dny po vaší odpovědi a ne podle data, kdy vám byl doručen. Není také potřeba spouštět funkci removeDecayLabels, ve spouštěči stačí zvolit pouze spouštění funkce addDecayLabes každou hodinu.
V Gmailu používám techniku zero-inbox – jakmile email vyřeším (přečtu nebo odpovím), archivuji ho (na rozdíl od mazání jsou archivované emaily stále dohledatelné). Díky tomu mám v doručené poště pouze nevyřešené emaily.
Snažím se pisatelům odpovídat do 3 dnů. Občas však některá ze zpráv “zapadne”. Buď si nevšimnu, že už je více jak 3 dny bez odpovědi nebo odpověď odkládám.
Gmail nemá funkci, která by upozornila na opomíjené emaily (osobně jim říkám “hnijící”), proto jsem si napsal krátký Gogole Apps Script, který každou hodinu provede následující:
- Projde všechny důležité emaily v doručené poště a pokud jsou starší jak 3 dny, označí je štítkem !!!.
- Projde všechny emaily ve štítku !!!, které jsou vyřešené (= archivované), a tento štítek odstraní.
Zkopírujte si následující script do schránky a vložte jej do nového prázdného projektu na stránce Google Apps Script. V případě potřeby změňte první dvě proměnné. DECAY_LABEL_NAME je název štítku, kterým budou označeny starší nevyřešené emaily. DECAY_FILTER je vyhledávací řetězec, který najde emaily, které chcete označovat a DECAY_TIME je čas ve dnech, za který bude email označen jako neřešený.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
// Jméno štítku, kterým budou označeny nevyřešené emaily var DECAY_LABEL_NAME = '!!!'; // Filtr, který najde nevyřešené emaily // v tomto případě - je v doručené poště a důležitý var DECAY_FILTER = 'in:inbox label:important'; // Jak staré emaily považujeme za neřešené var DECAY_TIME = 3; function getDecayLabel() { var label = GmailApp.getUserLabelByName(DECAY_LABEL_NAME); if (label == null) label = GmailApp.createLabel(DECAY_LABEL_NAME); return label; } // Najde nevyřešené emaily a odebere štítek function removeDecayLabels() { var label = getDecayLabel(); var threads = GmailApp.search('label:' + DECAY_LABEL_NAME); for (var i = 0; i < threads.length; i++) label.removeFromThread(threads[i]); } // Najde neřešené emaily a označí je štítkem // Spouštěno každou hodinu function addDecayLabels() { var label = getDecayLabel(); var threads = GmailApp.search(DECAY_FILTER); removeDecayLabels(); // nejdříve označení odebereme for (var i = 0; i < threads.length; i++) if (!threads[i].hasStarredMessages()) { var timeDiff = Math.abs(Date.now() - threads[i].getLastMessageDate()); var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); if (diffDays>DECAY_TIME) label.addToThread(threads[i]); } } |
Projekt pojmenujte, uložte a pomocí nabídky Zdroje | Spouštěče aktuálního projektu nastavte spouštění funkce addDecayLabels každou hodinu.
Napoprvé spusťte funkci ručně – nabídka Spustit | addDecayLabels a v Gmailu nastavne nově vzniklému štítku výraznou barvu.
Pokud byste měli se scriptem jakékoliv problémy nebo byl návod nesrozumitelný, neváhejte mě prosím kontaktovat.
Rád bych zde poděkoval Robby Macdonellovi, jehož článek mi byl inspirací, a který mi dovolil publikovat odvozený script.