Gmail filters/labels: Force email to stay in Inbox

gmailgmail-filtersgmail-labels

I receive email to these addresses:

  • my-team@example.com : This is my team's primary method of communication. I want all of this email to go to my Inbox.
  • other-team@example.com : This belongs to another team at my organization, but I monitor it. I have a filter on this sort of email. It skips the Inbox. I'll usually read it later.

If an email is sent to both my-team@example.com and other-team@example.com, the label for 'other-team' is applied, and the email is removed from my Inbox. But, this email was sent to my-team@example.com, so I would like this email to remain in my Inbox.

How can I tell Gmail to leave any email to my-team@example.com in my Inbox, even the email matches other rules?

Or, to ask the question another way, can I tell Gmail to stop processing filters after it has matched a filter? This is a common practice with Microsoft Outlook.

I tried to create a Filter using a Label named "Inbox", but Gmail says "Sorry, you can't create a label named "inbox" (it's a reserved system label)."

Best Answer

I can think of two options available, neither of which are elegant:

  1. Add a -to:my-team@example.com to all the other filters that may archive the message.
  2. Use a variation of the above but instead of hard-coding the address, add a descriptive label.

There's no option to send an email to the inbox via a filter. Your only option is to prevent the message from being archived in the first place.

Solution #1: This one's pretty simple. So, for example, say you have the filter:

  • when mail matches to:other-team@example.com, archive the message

You need to change it to:

  • when mail matches to:other-team@example.com -to:my-team@example.com, archive the message

To use this negation, it may be easier to type in the "has the words" box.

Using this solution doesn't require you to maintain the filter order. The only downside is that if you have multiple email addresses that you need to keep (e.g. my-team2@example.com, my-team3@example.com, etc.), using this method you would need to add all of those to each filter. This can become hard to maintain. That's where solution #2 comes in...

Solution #2: This one is more complicated and relies on the way Gmail processes filter rules. Basically it processes them from the top down. This means that if you modify one (which causes it to go to the bottom), you will need to remember to reorder your filters, so that it works correctly again.

You create the following filters, in this order:

  1. when mail matches to:my-team@example.com, apply the label dont-archive.
  2. when mail matches to:my-team2@example.com, apply the label dont-archive.
  3. when mail matches to:my-team3@example.com, apply the label dont-archive.
  4. when mail matches to:other-team@example.com -label:dont-archive, archive the message

When creating the last filter, it will warn you about using the label. This message can be safely ignored, since you ordered the filters correctly.

Tip for solution #1: Of course, if the email addresses are very similar, you might be able to use Gmail's limited stemming in order to use solution #1 with multiple addresses (e.g. instead of using -to:my-team@example.com, use -to:(my @example.com) which will also match my-team2@example.com in this case.