Sunday, October 9, 2011

Gmail Follow Up Script

I have lots of email I want to follow up on later or put aside for some time. I use Gmail these days, and I miss Outlook's built in feature for this. Well, there's a solution, the apps script team posted a script for "snoozing" email. My modified take on it is this gmail Follow Up script doc.

With follow up you can:

  • Get emails out of your inbox, and out of sight, for a specified amount of time, and then have them return.
  • Send emails you want to make sure you get a response on, flag them for follow up and have them resurface in your inbox again after a given amount of time to ensure they were handled.

The implementation summary is: You can have javascript code run on a Google server at a regular interval that manipulates your gmail messages. You do so with google apps script.

I modified the original in a few ways:

  • I added "hours" to the "days" and "weeks"
    • At first I thought it was overkill. But, no, it's mighty handy in a work day to put off an email till the afternoon when you think someone else should have replied by then. Or just to clear your inbox rapidly so you can concentrate on the top items for the next hour.
  • I adjusted the label names to be more keyboard shortcut friendly
    • To move an item out of my inbox and have it reappear tomorrow, I type the keys, "v1d" enter. That's |move|, and then enough to match the label "FollowUp-1days".
  • I use the "quick links" lab in gmail to view all messages pending follow up
    • Sadly there's no way to roll up multiple labels in gmail, else the hierarchical labeling would have solved this. Anyway, details in the doc for using quick links.
Some notes:
  • Draft messages can be brought back to to the inbox, to complete and or send at a later time.
  • Muted messages can be brought back too, disabling the mute at that time. So you can let a firestorm thread rage on for a few hours before reviewing it in it's entirety instead of being interrupted constantly as replies come in.
  • I sometimes leave notes to myself as to why I marked this message for follow up. One way is to start a reply draft and then blank out the To: line so it's not accidentally sent.
  • It's handy when you send a message and want to ensure you get a reply back.
Now that I have this tool, I use it a lot a lot to rapidly simplify my inbox. Check it out: Follow Up script


  1. Vincent,

    I am using a Google Apps Premier Edition account, but the option to make a copy of the spreadsheet or view the apps script are grayed out. Could this be a permissions issue?


  2. Seems like a permission issue with your Google Apps account ;|. I can copy and edit script from the copy using a testing gmail account.

    I've copied the script code to the document, so you can copy and paste it from there into a fresh spreadsheet of your own.

  3. Thanks Vincent. I was able to copy the spreadsheet to my account, and get to the script that way. But for some reason, I can not do the same from my company google apps account.

  4. Vincent,

    The updated script is awesome. I am using on my company gmail account. I love how it re-animates the email into my Inbox.

    Also, not sure what changed, but now I can make a copy of the spreadsheet from my company gmail account as well.

    Thanks for publishing this


  5. Hi Vincent. This is really great. Thank you :)

    A little request if you would help, please?

    I don't use gmails threading feature, so when your script moves a message I have postphoned to the inbox, it moves all the messages in the thread so my inbox is totally messy. Is there a way to change the script so it only moves the one message I have chosen to postphone and not the whole thread for that message?

    Thanks :-)

    1. Sorry to hear it. I don't know of a solution off the top of my head, but take a look at the API and see about removing the 'threads' concept.

  6. Thank you for answering, Vincent :)

    I am not a programmer, so I cannot do it myself. Would you be willing to add that "feature" and maybe a few others if I pay to have it done?


    1. Rasmus, 5 years ago I'd do it for free but now life is busy with other priorities. I can't code it for you. I did take a quick look at the API to see what would be possible though. It's a little tricky, because when you label email in gmail you apply the label to the entire thread (as far as I can tell). So, if you flag something for follow up, the script can only find the entire thread. Now, it can see that a thread contains several messages, and could find e.g. the most recent one. However, I also do not see a way to move just one of those items to the inbox, I only see that for entire threads.

      Summary: I think at this time you're out of luck for setting up this 'follow-up' concept while also not using gmail's threaded messages.

  7. This is eye opening. Thanks, Vincent!