Skip to content
Thoughtful, detailed coverage of everything Apple for 33 years
and the TidBITS Content Network for Apple professionals
8 comments

Zen and the Art of Gmail, Part 2: Labels & Filters

After initially making the decision to try Gmail (see “Zen and the Art of Gmail, Part 1: Why I Switched”), I put a lot of thought into what I wanted to get out of email. This required some soul searching, since I’m generally an organized person who likes hierarchical filing systems. Spotlight has never helped me in the Finder, since I know where all my files are stored, and in Eudora, I had hundreds of carefully organized mailboxes that made searching merely a matter of looking in the right place.

But on the downside, my saved search strategy in Eudora was failing me (see “A New Way to Use Eudora,” 20 December 2004). The problem was that I had to do too much, in filing messages that couldn’t be filtered and marking messages that required later action in some way. The marked messages were the crux of the matter — labeling them Act On in Eudora was the kiss of death — I was almost guaranteed never to see them again. For a while I merely marked such messages as unread, so they’d nag me every day, but I quickly became capable of ignoring those as well, though their mere presence in my Unread Mail saved search made dealing with new messages all the more awkward.

After much consideration, I decided go for a Zen approach, and to see email as a river, where my goal was to do as little as possible to any given message as it flowed by. The first step in my journey was to set up labels and filters that would help manage much of my mail automatically.

Labels Are Searches — Labels are one of the most powerful and subtle aspects of Gmail. Most people think of Gmail’s labels as being like folders in a traditional email program, but that’s missing two key points:

  • A message in Gmail can have multiple labels assigned to it, whereas a message in a traditional email program can exist only in a single folder. A corollary to this fact is that every message in a traditional email program must live in a single folder; that is, everything must be filed. That’s not true in Gmail, where a message can have no label attached to it (it then shows up only in the All Mail collection).

  • A label in Gmail is nothing more than a minuscule bit of metadata that can be used in a search. In essence, then, labels are saved searches, and are thus merely shortcuts. If you can identify all the messages from a mailing list with a filter (again, just a search), you can apply a label to those messages, even retroactively. But you may not need to, because you can always find exactly the same set of messages again later with a manual search.

If you think deeply about these two points, you realize that most filing that’s necessary in traditional email programs is a waste of time in Gmail. In those programs, you must file messages, because they have to live somewhere, and because searching isn’t fast enough or good enough to assemble a collection of related messages quickly. Neither of those problems exists in Gmail.

In contrast, you need to create a label for only three reasons in Gmail:

  • You want to collect together messages that share little in common. For instance, I have an Order Receipts label that I apply manually to receipts from various Web merchants so I can verify credit card charges and check back on vendors I’ve used in the past. A filter assigns that label automatically to a few vendors that I patronize regularly, such as the iTunes Store and Amazon, but most receipts can be identified only by sight and labeled once they’ve arrived.
  • You want to collect together messages that can easily be identified by a search for quick access as a group, and optionally as a way of removing them from your Inbox. Mailing lists are the canonical example here — you likely want to read the messages from a list all together, but that’s not necessarily true of all lists. In a traditional email program, you’d have to go to some lengths to display filtered mailing list messages along with other unread mail; in Gmail, you have to choose to separate mailing list messages via the Skip Inbox filter action.

  • You want certain messages to be marked in the Inbox so you can tell at glance, for instance, that it’s a message to a mailing list rather than something sent only to you.

It may not seem as though this lets you create many fewer labels than you had mailboxes, but in my experience, it really does. In particular, I seldom create project-based labels, because I’m confident that I can find any message I need via a search for a sender or list address.

For instance, I could create a label to track messages related to my iPhoto Visual QuickStart Guide book for Peachpit, but that would basically entail collecting messages from my colleagues at Peachpit with peachpit.com or pearson.com email addresses, along with messages from the indexer, whose name I know. So there’s no significant win from labeling these messages; I don’t need to deal with them as a group, and if I did, a search would give me exactly the same results.

That’s not to say that other people don’t have the need to maintain project-based groupings of messages, and Gmail can handle that, just not any better than any other email program. You’d need to collect messages via filter (messages from a client’s domain, for instance) and via manual labeling (messages from a colleague about that particular project).

Labels have one small advantage over searches: message count. For unknown reasons, Gmail only estimates the number of results from a search, but displays the exact number of messages that have a certain label.

Sometimes, I’ll pass up a label in favor of a Quick Link, which is a Gmail Labs widget that puts a list of links in the left sidebar. I’ll talk more about Gmail Labs later in this series, but I like Quick Links a lot because it gives me fast access to a group of messages without making a label. Just like labels, Quick Links are saved searches, and can encapsulate anything you can search for, but they don’t apply any metadata to found messages. For instance, one Quick Link I use finds messages in TidBITS Talk or to our internal press release list that have also been marked as spam so I can identify any false positives.

Filters Are Searches — Gmail has no lock on the concept that filters are searches — that’s how all email programs work. But it’s such an important point that I want to emphasize it.

Filters let you search for messages that match certain criteria: from a certain address, with a certain word or phrase in the Subject line, and so on. Once a message is caught by a filter, the filter can perform certain actions on it, the most important of which is to apply a label.

To be specific, filters can look for text in the From, To, and Subject lines, and anywhere else in the message, though Gmail unfortunately lacks the capability to search any arbitrary header line, like Content-Type or X-Sender. When looking for text in the body of the message, you can match messages that both contain certain words and don’t contain others, but there’s no grep searching or partial-word searches. You can also filter messages based on their attachments.

Once you’ve defined your criteria, the actions you can perform on a message are:

  • Skip the Inbox (Archive it): All this does is remove the Inbox label. I use it heavily with non-essential mailing lists to keep them out of my Inbox.

  • Mark as read: Since the unread status of a message is important to me, the only time I use this action is to mark messages from me to a mailing list as read. (Most of the time I don’t even see such messages, since Gmail usually doesn’t display messages you’ve sent to a list, knowing that the incoming message from you to the list would just duplicate the outgoing message already stored in the conversation. This is generally welcome, but can be annoying when testing or troubleshooting.)

  • Star it: The star is equivalent to Apple Mail’s flag, and is a simple on/off way of marking a message. I use it manually to mark messages that need further action, so I don’t use it in any filters.

  • Apply the label: Applying labels is the most common thing filters do; I have only one or two that don’t apply a label.

  • Forward it to: Be very careful of filter actions that can send mail for you; if you need such a feature it’s here, but it’s awfully easy to have it go awry.

  • Delete it: I would use this filter action only to clean up a large archive of mail; if I was receiving messages that I wanted to delete every time, I’d try to figure out some other way of stopping them.

  • Never send it to Spam: Some mailing list messages can look an awful lot like spam; check this option to ensure that Gmail doesn’t accidentally mark a good list message as spam. I have to mark a few list messages as spam manually each month because of using this option, but that’s better than suffering false positives.

  • Send canned response: This action, provided by Gmail Labs, is again the sort of thing I would be hesitant to use without very careful testing, since it’s easy to spew canned responses to the wrong people.

  • Always mark it as important: This action tells Gmail’s new Priority Inbox feature that the message is important. I haven’t used it, since I want to tell Gmail manually when things are important, and Priority Inbox learns well from past actions.

  • Never mark it as important: Also related to Priority Inbox, this one is more important from a filter standpoint, since you can use it to make sure that other filtered messages (such as automated messages and mailing list messages) never appear in your Priority Inbox.

Gmail’s filter capabilities are limited in comparison with traditional email programs, not surprisingly, since there’s less manipulation that can be done with messages on the Web — you can’t execute an AppleScript, for instance. (For that, you’d need to let a Macintosh email program access your Gmail messages via IMAP, which is totally possible.)

Where Gmail’s filter interface shines, though, is in showing you the results of a filter you’re creating on your current archive of email (with the Test Search button), and giving you the option of applying it to existing messages as well as future ones (with the “Also apply filter to X conversations below” checkbox in the final filter creation screen). That’s huge, because it means you can use filters for one-off actions like finding and deleting all the messages associated with a mailing list you’ve decided you don’t like.


Forget Inbox Zero — Now that you understand how labels and filters work, let’s return to how I suggest you use them. The main use is to manage the flow of incoming messages, reducing the number that hit your Inbox to just those that you need to see as they arrive.

My goal with my Inbox is to read everything that comes into it, replying to those messages that require replies and labeling manually those very few messages that only I can identify. Thanks to the hundreds of email messages I receive each day, I need to filter non-essential mailing lists and various automated messages (Twitter follower notifications, Netflix shipping alerts, and so on, all of which receive an Automated Messages label) out of my Inbox. These filters apply the appropriate label and include the option to Skip the Inbox.

But I do want messages from key mailing lists, like the TidBITS staff list and the Take Control authors list, to appear in my Inbox, since they’re equally as important as messages sent only to me, and often more so. The filters that set labels for these mailing lists simply don’t use Skip the Inbox, so every message from the lists gets both the list label and the Inbox label.

Finally, of course, there are the messages sent directly to me from random people all over the globe. There’s no effective way to filter these messages in any way, and although I could label them after the fact, my Zen approach to email discourages that. The simple fact is that in over a year of use, I have yet to need such an arbitrary collection; a search has always produced the message I need.

The astute reader will note that most of my mail will continue to live in my Inbox, or, rather, will continue to keep the Inbox label. In other words, forget Inbox Zero. I have over 40,000 messages with the Inbox label, and you know what? It makes absolutely no difference in my usage, because Inbox is just another label, and there’s no reason to perform an additional action for every message to remove it. This bothers many people who want to simulate the email programs of yesteryear, so Google added an Archive button that, when clicked, removes the Inbox label. That’s all it does, and thus qualifies as entirely unnecessary work, since there’s no liability to leaving the Inbox label in place.

Not only do I file hardly any messages manually, I almost never delete messages. Gmail automatically deletes messages marked as spam after 30 days, but the only other messages I delete are test messages (TidBITS issues, Take Control orders, notifications from the TidBITS Commenting System) that I don’t need and that could confuse future searches.

You might think this is folly, since it would seem easy to lose unread messages among everything else in the Inbox — especially since Gmail cannot sort messages in any way other than by date. But in fact, there are two reasons this works: the search “is:unread is:inbox” and Google’s new Priority Inbox feature.

The “is:unread is:inbox” search shows all the messages with the Inbox label that are unread, ensuring that I can at any moment focus on just those messages. And remember the Quick Link widget I mentioned earlier? I’ve encapsulated that search into an Unread Inbox Quick Link that has become my default view on my Inbox.

I relied heavily on that search until Gmail gained Priority Inbox; now I use the search only to find messages that both Priority Inbox and I have failed to see when they were new.

Priority Inbox to the Rescue — Priority Inbox is a relatively new feature for Gmail, and another example of how Gmail is rethinking email. You’re probably familiar with how spam filters can analyze messages and decide if they look like spam, based on other messages that you’ve marked as spam? Well, Priority Inbox works the same way, but instead of identifying spam, it identifies messages that are important to you.

How? Gmail just starts guessing as to what’s important and what’s not, and you correct it as it goes. Within a remarkably short time, you’ll find that the messages you most care about appear in your Priority Inbox, and the rest show up in an Everything Else list at the bottom of the Gmail window. If you ever want to see why Gmail thought something was important, just hover over the little yellow icon that indicates the message is important, or, if you’re in the message, click the Show Details link.

Priority Inbox is fairly malleable, in fact, providing up to four sections, the first three of which are configurable. For each of these, you can set Gmail to show messages in the Inbox that are Important and Unread, Important, Unread, or Starred, or you can have Gmail display the contents of a label in the section. For all four sections, you can choose how many messages should display.


I’ve configured Priority Inbox’s sections as follows. The first one shows Important and Unread messages, the second shows Starred messages (things I need to come back to), the third shows my Press Releases label (messages I want to scan, but don’t want cluttering my Inbox), and the fourth is Everything Else. I actually spend a fair amount of time in Everything Else, since new messages that aren’t deemed important appear there, as do important messages once I’ve read them.

What I’d really like to see from Priority Inbox is the capability to have Gmail automatically label messages based on previously labeled messages. That way I could train it to collect messages about certain topics or projects and have those added to automatically over time.

Shortly after I wrote that last paragraph, Google introduced a new Gmail Labs feature called Smart Labels that promises roughly what I want. Unfortunately, Smart Labels can assign only three hard-coded labels to messages: Bulk, Forums, and Notifications. Since my filters are far more specific, they’re more useful to me. If you were entirely new to Gmail, I could see trying Smart Labels for a while to see if it proved to be sufficient.

My Email Flowchart — To summarize then, here’s how my email works. Messages come into Gmail. Filters assign labels to incoming messages from mailing lists, along with a few other predictable types of messages. Important mailing list messages retain the Inbox label so I see them sooner; secondary mailing lists lose the Inbox label. That all happens without me even noticing (unlike in traditional mail programs, which are always checking for mail and showing filtering status and whatnot).

To start reading mail, I just look at the top of my Gmail window, where the Priority Inbox’s Important and Unread section lists the most recent messages. I then click the first unread message and read it. From that point, there are only seven actions I might take on that message (listed in order of how often I perform them):

  • Do nothing, merely absorbing the information in the message and its attachments. One nice touch in Gmail — many common attachment types can be viewed online without being downloaded and opened in another program. I can’t tell you how many random attachments I have cluttering my hard disk from my Eudora days.

  • Reply to the message. Because Gmail always lumps messages with the same Subject line together, replies are stored with the messages they’re in reply to, making it easy to follow discussions as they evolve; I depend heavily on this feature.

  • Mark the message as unread. Sometimes I want to pretend that I haven’t read a message. Perhaps I’m glancing at something just before leaving for an appointment, or it’s too near the end of the day to think of an appropriate response. Or, because I sometimes read email on my iPhone (where the mobile Gmail client is quite good, but can’t make up for the iPhone’s clumsy text entry capabilities), I often mark messages that need a real response as unread.

  • Star the message, whether or not I’ve replied already. This is my marker that indicates “I should really do something based on the content of this message, so I’m going to mark it in such a way that I could theoretically find it in the future.” In reality, the star is my new kiss of death, and although I sometimes explicitly look at and deal with starred messages, it often turns out that I’ve already dealt with the issue or it has become irrelevant in the interim. So it goes.

  • Apply a label manually, if it’s an order receipt or another type of message that can’t be identified by a filter for labeling. Again, I do this only occasionally, since it’s usually make-work.

  • Click the Report Spam button, if the message slipped past both Postini’s server-side filtering and Gmail’s own very good spam filtering. Postini is now owned by Google, though I can’t tell how that affects spam filtering.

  • Delete the message. I do this only occasionally, and only for test messages. I never use the Archive option in Gmail that removes a message from the Inbox, since there’s no benefit when clearing messages out of the Inbox ceases to be an amusing game.

Because the Report Spam and Delete buttons remove the Inbox label and apply the Spam and Trash labels, respectively, thus-labeled messages disappear entirely (since they no longer match the search), switching me to the list of unread messages again. Marking a message as unread also has the effect of switching back to the message list, which makes sense.

With all other actions — replying, starring, applying a label, and doing nothing — I follow that by pressing the keyboard shortcut — the k key — to move on to the next message, where I once again go through the simple steps. For most messages, I have only to decide if I wish to pretend I haven’t read the message yet, or if I need to reply. And in only a few situations, I also have to think about if I should mark the message for later dealing in some way, and if it needs additional labeling.

Every so often, I use my Unread Inbox Quick Link to display all the unread messages in my Inbox, regardless of their importance. That’s useful because every now and then an unimportant unread message can fall off the bottom of the chronologically sorted Everything Else list, and without this explicit check, I’d likely never see it.

That’s it for reading and replying. Composing messages is easy too, but the overall task is so simple that Gmail doesn’t have much room to improve on what traditional email programs do. It does an awfully good auto-complete as you type a few characters in someone’s name, and presents the list of possible matches sorted by how often you write to them. And of course, there are some useful enhancements available from Gmail Labs that help prevent addressing mistakes. That’s where we’ll turn in the next article (see “Zen and the Art of Gmail, Part 3: Gmail Labs”), after which we’ll look at Mailplane, the Mac application that breaks Gmail out of the browser (see “Zen and the Art of Gmail, Part 4: Mailplane”).

Subscribe today so you don’t miss any TidBITS articles!

Every week you’ll get tech tips, in-depth reviews, and insightful news analysis for discerning Apple users. For over 33 years, we’ve published professional, member-supported tech journalism that makes you smarter.

Registration confirmation will be emailed to you.

This site is protected by reCAPTCHA. The Google Privacy Policy and Terms of Service apply.

Comments About Zen and the Art of Gmail, Part 2: Labels & Filters