BB-10449 using gmail filters

As part of the effort to help reduce notification noise, we’re looking into Gmail filters.

Do you use Gmail filters?
  • Yes
  • No
0 voters

Please chime in on the thread with your thoughts on Gmail filters! If you use filters, we’re interested in:

  • How do you use filters? What does your workflow look like?
  • Do you find the filters effective?
  • What kind of issues do you have with them?
  • Do you have any filters you would like to share? (to potentially be included as examples in our docs)

If you don’t use filters, we’re interested in:

  • Why don’t you use filters?
  • Are you still looking for something to help reduce the inbox noise?

Thanks! :grin:

Please reply by February 9, to allow time in sprint 370 to address comments. :slight_smile:

Ticket: BB-10449

To kick things off, I use the following filters:

  • Matches: to:(help@opencraft.com -me)
    • Do this: Skip Inbox, Apply label “ML Help”
  • Matches: from:(ops@opencraft.com) to:(-me -urgent@opencraft.com)
    • Do this: Skip Inbox, Apply label “ML Ops”
  • Matches: to:(ops@opencraft.com -me -urgent@opencraft.com)
    • Do this: Skip Inbox, Apply label “ML Ops”

Note: I’m not currently subscribed to the ops mailing list, so I can’t comment on the effectiveness of the second two entries. I copied them from somewhere here, but I can’t remember where.

XML export:

<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
	<title>Mail Filters</title>
	<id>tag:mail.google.com,2008:filters:z0000001753227508752*7224627746203383297,z0000001753227856223*6967511390046047843,z0000001753227872129*6130795805856266544</id>
	<updated>2026-01-28T06:34:34Z</updated>
	<author>
		<name>Samuel Allan</name>
		<email>samuel@opencraft.com</email>
	</author>
	<entry>
		<category term='filter'></category>
		<title>Mail Filter</title>
		<id>tag:mail.google.com,2008:filter:z0000001753227508752*7224627746203383297</id>
		<updated>2026-01-28T06:34:34Z</updated>
		<content></content>
		<apps:property name='to' value='help@opencraft.com -me'/>
		<apps:property name='label' value='ML Help'/>
		<apps:property name='shouldArchive' value='true'/>
		<apps:property name='sizeOperator' value='s_sl'/>
		<apps:property name='sizeUnit' value='s_smb'/>
	</entry>
	<entry>
		<category term='filter'></category>
		<title>Mail Filter</title>
		<id>tag:mail.google.com,2008:filter:z0000001753227856223*6967511390046047843</id>
		<updated>2026-01-28T06:34:34Z</updated>
		<content></content>
		<apps:property name='from' value='ops@opencraft.com'/>
		<apps:property name='to' value='-me -urgent@opencraft.com'/>
		<apps:property name='label' value='ML Ops'/>
		<apps:property name='shouldArchive' value='true'/>
		<apps:property name='sizeOperator' value='s_sl'/>
		<apps:property name='sizeUnit' value='s_smb'/>
	</entry>
	<entry>
		<category term='filter'></category>
		<title>Mail Filter</title>
		<id>tag:mail.google.com,2008:filter:z0000001753227872129*6130795805856266544</id>
		<updated>2026-01-28T06:34:34Z</updated>
		<content></content>
		<apps:property name='to' value='ops@opencraft.com -me -urgent@opencraft.com'/>
		<apps:property name='label' value='ML Ops'/>
		<apps:property name='shouldArchive' value='true'/>
		<apps:property name='sizeOperator' value='s_sl'/>
		<apps:property name='sizeUnit' value='s_smb'/>
	</entry>
</feed>

This keeps my inbox free of any mailing list chatter which I’m not in CC. My email workflow looks something like:

  • At the start of my day, go through my inbox quickly.
    • If it’s irrelevant or nothing to action (most jira notifications, forum notifications, things I was cc’d on but didn’t need to follow up, etc.): read it, then archive or delete the email.
    • If it’s something requiring action, and it will take less than ~5 minutes, I’ll try to follow it up straight away.
    • If it’s something requiring action and will take a while, I’ll write myself a note on my list of things to do for the day. If it’s not an email I need reply to nor refer back to during the day, I’ll then archive or delete the email.
  • When I have a moment, then I’ll skim through new mail on the help mailing list, and follow up or write a note where applicable.
  • I’m not currently subscribed to the ops mailing list, so nothing to do there.

I always aim for inbox zero by the end of the day. I don’t always get to everything, but Jira tickets + my notes are my source of truth for what I need to action, so I don’t keep emails around for too long.

I would like filters that auto-delete noise from Jira (sprint value updated, story points set, description edited, …). However, I’m too worried about false positives causing me to miss something important (gmail filter matching on content is not an exact science, and I’ve been bitten by that before). For now I’m content to deal with the noise, and hopefully we’ll get better notification controls in the future Jira replacement. :slight_smile:

2 Likes

I have too many filters to list here :sweat_smile: It’s an ever-changing list, and many of them probably aren’t universally useful/applicable.

However, what I’ve come to find even more important than a solid set of filters is a bookmarked search that reliably surfaces pings in my inbox.

Parts of it are specific to the way I use labels and stars in my workflow, so it doesn’t make sense to post as is. However, here’s a generalized version (which I also initially used as a basis to build on) that might be helpful:

to:(me OR tkrones@asu.edu) newer_than:28d -from:"Tim Krones" -subject:"your daily digest contains" (tikr OR itsjeyd OR "Tim Krones" OR "mentioned you in a comment" OR "assigned you an action item" OR ("New activity" "For you") OR subject:"mentioned you") is:unread -is:snoozed

Multi-line version for readability:

to:(me OR tkrones@asu.edu)
newer_than:28d
-from:"Tim Krones"
-subject:"your daily digest contains"
(tikr OR itsjeyd OR "Tim Krones" OR "mentioned you in a comment" OR "assigned you an action item" OR ("New activity" "For you") OR subject:"mentioned you")
is:unread
-is:snoozed

(Since it doesn’t reference labels or stars, this particular search could of course also be used to build a filter that labels matching e-mails as pings, or stars them, etc.)

If I want to see my pings and hide everything else I just go to a pinned tab in my browser with the bookmarked search.

3 Likes

I vaguely remember copying filters from somewhere (handbook maybe) when I joined OpenCraft and haven’t really changed it since then. It works fine for me.

2 Likes

Same as @navin I copied most of my filters from somewhere when I joined OpenCraft, which have worked great.

I have a few extra filters for clients that I handle. Also, apart for filtering out all ops emails, I have a few filters for specific ops topics such as sandboxes notifications, Gitlab token notifications, client-cluster specific ops notifications, etc. to make sure those don’t get lost among the other ops emails.

For context on some filters from our private docs, see my 2020 thread: https://forum.opencraft.com/t/improving-email-management/673 (also private, as it may contain client-related info).

Personally, I’m using the Priority Inbox approach (with all addressed emails archived) and the following filters. This ensures that all direct pings are visible at the top of my inbox, marked as “important”. I use the “star” to mark items that need to be addressed but require more time.

Matches: from:(urgent@opencraft.com)
Do this: Apply label "Critical", Never send it to Spam, Mark it as important

Matches: to:(-me) list:help@opencraft.com
Do this: Skip Inbox, Apply label "Mailing Lists/help", Never send it to Spam

Matches: (to:ops@opencraft.com OR from:ops@lists.opencraft.com OR from:ops@opencraft.com -to:me -to:ops+client@opencraft.com -list:urgent@opencraft.com)
Do this: Skip Inbox, Apply label "Mailing Lists/Ops", Never mark it as important

Matches: (from:(client.domain) OR "client.enterprise.slack.com")
Do this: Apply label "client", Never send it to Spam, Mark it as important

Matches: from:(no-reply@sns.amazonaws.com) to:(piotr+client-asg@opencraft.com)
Do this: Skip Inbox, Apply label "client/Auto Scaling", Never send it to Spam

Matches: from:(tasks@opencraft.com OR edx-wiki.atlassian.net OR jira@openedx.atlassian.net)
Do this: Apply label "Jira", Never send it to Spam, Never mark it as important

Matches: from:(confluence@openedx.atlassian.net)
Do this: Apply label "Confluence", Never send it to Spam, Never mark it as important

Matches: (from:(contact@opencraft.com) "[OpenCraft]" AND "to unsubscribe") OR from:(openedx@discoursemail.com)
Do this: Apply label "Forum", Never send it to Spam, Never mark it as important

Matches: (from:("GitHub" OR "GitLab") -from:ops@opencraft.com -list:(ops.lists.opencraft.com))
Do this: Apply label "Git", Never send it to Spam, Never mark it as important

Matches: from:(docs.google.com)
Do this: Apply label "Docs", Never send it to Spam, Never mark it as important

Matches: has:nouserlabels
Do this: Apply label "Direct", Mark it as important

Matches: (from:(docs.google.com) OR (from:(edx-wiki.atlassian.net OR openedx.atlassian.net) subject:({"mentioned you"})) OR (from:(tasks@opencraft.com) "Piotr Surowiec") OR from:(Mattermost) OR (from:(contact@opencraft.com) AND (subject:({"[Announcements]"}) OR "Bebop" OR "team")) OR (-from:ops@opencraft.com AND "Agrendalath"))
Do this: Never send it to Spam, Mark it as important

Matches: to:(ops+client@opencraft.com -(piotr+client-asg@opencraft.com))
Do this: Apply label "client/AWS", Never send it to Spam

Matches: from:(tasks@opencraft.com) subject:("Agile Poker")
Do this: Star it, Apply label "Jira", Never send it to Spam, Mark it as important

Matches: (from:(Mattermost Notification <no-reply@opencraft.com>) OR from:(notification@slack.com>) -from:(Open edX (via Slack))
Do this: Apply label "Msg", Never send it to Spam, Mark it as important

Matches: from:(Open edX (via Slack))
Do this: Never send it to Spam, Never mark it as important

Matches: ((to:ops@opencraft.com subject:("Axim PR Sandboxes" OR "Report Domain") OR "triggered by Operations OpenCraft ") OR (to:ops+grove@opencraft.com "view it on GitHub"))
Do this: Delete it

Matches: subject:("user waiting for approval" OR "users waiting for approval") list:(forum.opencraft.com)
Do this: Delete it
1 Like

Ah thanks, yes that’s where I (and probably others) have copied filters from; I knew they were somewhere in our docs. :smiley:

I copied the filters from our docs, and it’s almost ok.
I still have a lot of noise from Jira/GitHub, and sometimes I feel the pings get buried in it.

I liked Tim’s idea to have a search/filter specific to pings.

I’ve always used the filters from our docs. I haven’t had any problems.

As others have mentioned, I have the same OpenCraft handbook set of filters. They have been useful and works very well.

The extra noise is usually from the ones that are directly addressed to me.

  • Atlassian (Confluence) - email digests every week. I turned off all the marketing emails from the email settings, and then turned on only one that Atlassian said was necessary.
  • OpsGenie - Since all of us have a “Working Hours” rotation, it sends an email every day that my rotation is starting.
  • New Relic + Ops Genie - When alerts go off and auto closes, we get 4 emails. 2 from New Relic and 2 from OpsGenie - one when the alert is triggered and another when it’s closed.
    • I have been just manually deleting them as I don’t want to be in a situation where I miss seeing it at important moment due to auto-filtering.
    • It would be nice if we can get this streamlined a bit.
  • Github - Email notification for all actions in all repos under open-craft. Maybe because I have admin rights? Anyway, once a new repo that I am not involved pops up, I go and change the Watch mode to “Participating & Mentions only” from “All Activity”.
  • Github & Gitlab - Token expiration and such. Again might be because I have admin rights as Recruitment Manager. For now, I manually deal with them.
  • Finally JIRA - Any mention or interaction in a ticket with make the user “Watcher” for the ticket and send notifications for any action on the ticket. I have to manually Unwatch every time this happens on tickets that are not relevant anymore.

So, my experience has been that the destination - Inbox - is not the issue, but the origin. Manually taking action as they become an issue has been the solution.

1 Like