allenc allencheung

Getting to Gmail Inbox Zero with Filters and Labels

Over break, I set a goal for myself to get to Inbox Zero 360: Inbox Zero-ize all my active email – which are all Gmail – accounts. I was fortunate in that my previous three jobs, I was using Gmail for Business, and every time I started a new work email I retained the IBZ regimen and never let it get out of control. For personal Gmail accounts, though – and some go back to 2004, 2005 – it would mean processing pretty old correspondences, and I put it off for years.

unified-inboxBut I got it done; my Unified Inbox now proudly proclaims that I don’t have any more email to read or process. I wanted to share my process, and specifically, how it was made easier by leveraging Gmail’s features. Read on if you’re interested, especially if you’re like most and can’t seem to get started or want to know more about how IBZ works in a modern context[1].

Adaptions for Gmail

For Inbox Zero to work with Gmail, I made some adjustments to fit the Gmail style of email handling. Happily, the product designers at Google seem to understand the option of adapting a IBZ system, and have built in plenty of functions to make the entire process easier. Some of the adaptations:

  • Instead of deleting, I archive processed email.
  • Emails that need action remain in the inbox. (more on that later)
  • Emails that need to be saved are starred and archived.
  • Labels are essentially folders.
  • I keep an active and strong set of filters that will dump email into these “folders.”

The pros and cons of Gmail Inbox Zero

The why of IBZ is well-documented at this point: people are feeling overloaded by their email, afraid of missing some important piece of conversation, and some have (repeatedly) declared email bankruptcy. Even if you’re convinced by that argument, I’ve found that there are some additional plusses and minuses in keeping with the IBZ philosophy, especially in how it relates to adapting it to Gmail.


  • Gmail archiving is the best of both worlds: it’s as out-of-sight as a delete, but can still be found via search if you really want it back.
  • In addition to feeling up to date on email, you also have a pretty nice categorization system for your old emails, which makes for both a nice search field (label:___) and a vertical to reread when trying to scan or reconstruct history on a certain topic. For certain categories of automated emails (e.g., exceptions for programmers), this cuts down on the noise substantially.
  • Filters and search result actions make this pretty easy for old email. Processing one email at a time sucks.
  • Your notification bubble on your email app will disappear. Really.


  • You lose some ability to get email notifications on IMAP clients, because a lot of email gets dumped immediately to a folder. It’s important not to make the filters so strong that you never get notified for anything in your inbox.
  • It creates separate silos for a few email sources. Sometimes it feels like I’m checking 50 well-organized buckets instead of one giant bucket. One easy search is to get all unread email via the search is:unread. (I typically have less than 10 on that queue)
  • Filters require some maintenance, particularly with shifting email aliases, but this is usually only an issue in a work environment as organizations evolve.

Continue on for the nitty gritty details!

The process

I ended up doing all the work in the web Gmail client; in addition to having great keyboard shortcuts (a must for fast processing), it’s also the only place I know that allows you to set up incoming filters. It also let me periodically manually empty the trash to free up used disk space[2].

To start…

  1. Turn on keyboard shortcuts.
  2. Create/rename a set of labels that cover 90% of your email for that account. Give the important ones a color too.
  3. Turn off priority inbox.
  4. Delete any outdated filters.
  5. Set max page size to 100 conversations per page, to make for easy scanning.
  6. Familiarize yourself with Gmail’s advanced search operators.

With that set up, this is what I did over and over again (keyboard shortcuts in parens):

  1. I start with the Inbox (g, i).
  2. I look for 3-4 emails that look like they can be labeled, and try to write a search (/) using some combination of from:, to:, subject: and is:. Partial matching is encouraged here, e.g., I use from:quora to match all Quora-originated notifications.
  3. If the emails are not recent and I don’t expect more email from those sources, I select all (*, a) – remembering to select “all conversations that match this search” – and either label (l, <name>) + archive (y), just archive,  straight delete (#) or spam (!) them[3].
  4. If the emails will keep coming and are somewhat important, I create a filter to skip the inbox and apply a label, applying it to all current conversations.
  5. For individual conversations that are important and need to be saved, I star (s).
  6. For my sales/online shopping account, I eventually just searched for before a certain date using before: and hard deleted everything prior. I got tired of processing leftover ads.

Maintaining the Sanity

If you repeat the above loop over and over, you’ll end up processing big chunks of email at a time, and after a few hours arrive at IBZ with a new set of labels, a handful of starred items and a clean inbox. The cognitive burden of a mountain of email is lifted, but the real trick is continuing to keep your email manageable. Fortunately, you’ve mostly set yourself up for this:

  • You have a set of filters that will automatically dump email into a labelled folder. The Gmail terminology is a bit unusual; emails in the inbox have an “inbox” label, and “archiving” them simply means removing that inbox label. This means that emails with your filtered manual labels are all archived, but they’ll come in as unread.
    • If you care, read through them by opening one and navigating to the next/prev email with j/k.
    • If you don’t care, use the search label: ___ is:unread, then select all (* a) and mark all as read (shift + i).
  • Things that aren’t caught by the filters will end up in the inbox.
    • If you’ll need it for reference, star and archive the email.
    • If you don’t care, just archive.
    • If you need to act on the email, just close the post (u) – which keeps it in the inbox but marks it as read. This makes your inbox a short-term to-do list, and their presence is meant to generate a bit of gentle tension, nagging you to take the number back down to zero again. It’s a lot more manageable than looking at a few thousand emails of read and unread emails.
  • Once in a while, check the starred folder (g s) and see whether you can move or act on your long-term items.
  • When I haven’t checked email in a while, I end up doing a big mark as read for less important labels, but try to read through the important ones. The beauty of using filters is that you’re in full control of the importance level and optimize away the less important stuff.
  • I like to adjust my filters every year or so, and make changes for email aliases as well as adjust for patterns I’ve observed in my own behavior. More often than not, I end up setting more aggressive actions. (e.g., filter then just delete the email, or filter then apply label, or skip inbox and mark as read)

Dealing with Apps

It’s 2013, and it’s unreasonable to manage email just in a desktop web browser. For the most part, you can do the management on a phone or tablet; labels map naturally to folders, and moving to a folder is akin to applying a singular label. Flags are stars, and most modern apps will treat deletion as archival over IMAP. You don’t get access to filter management in a client, but it’s workable for day-to-day management.

One caveat is that some email clients aren’t as friendly displaying and loading folders, particularly with unread items. Sparrow (both the iOS and Mac versions) works well with labels, and obviously the official Gmail apps deal with these tools just fine.

Conquering Email, One Filter at a Time

The crux of what makes this strategy work is processing via filters and labels. Filters (and the searches that generate them) allow you to batch process emails in swaths, and labels serve as rough buckets of importance while also acting as a search anchor. I can attest that once the system is set up, it’s not hard to maintain an Inbox at zero, even over years of use. It’s essentially email automation, with my filter list acting just as an .emailrc.

Footnotes    (↑ returns to text)

  1. Alternatively, check out this version by Keith Rarick on an even simpler version of Gmail Inbox Zero via muting.
  2. You’d be surprised, but I’ve recently seen a few instances where people did not receive email due to lack of storage space. And people thought 2GB was enough.
  3. Another helpful Gmail feature is that if you mark what looks to be an ad/newsletter as spam, it will try to unsubscribe via sending to unsubscribe@<originating domain>.
By allen
allenc allencheung