UPDATE 2019: Changes to GmailZero!
Google recently stopped supporting their very old OAuth1 authentication strategy, which is what we’d been using to access all y’all’s Gmail accounts. We’ve talked about our Gmail integration, GmailZero before. (Actually we talk about email a lot, including recently in the forum.) But Inbox Zero is only one inbox strategy, and we’ve had lots of people ask us for ways to automatically mind other inbox strategies.
Since we were revisiting GmailZero to bring it up to code , and since the new Gmail API makes it much nicer, we added support for beeminding any arbitrary query on your inbox.
Query wut? What the worlds does she mean by that?
I mean right now, if you’re GmailZeroing, we count up the total number of Read threads in your Gmail inbox. By default you’re beeminding “in:inbox AND is:read”. Now you can change that to be counting anything you can type into the search box of Gmail. Like maybe you just want to count anything in your inbox, then you would change your Gmail Query to “in:inbox”. (I need this. I abuse the loophole of just leaving everything unread and untouched in my inbox.)
Since this is very general, that means it’s possible to mess it up, so I recommend experimenting with the search results, maybe kind of like the way you do when you’re creating a filter in Gmail, to make sure you’re getting just what you want, then copy the search string into the goal settings.
Also, since it’s rather advanced, we didn’t add this into the goal wizard at GmailZero.com. In order to customize this, you’ll need to create the GmailZero goal and then go into the goal’s advanced settings and edit the query.
Use Case Ideas
1. Gmail Snooze
We’ve already mentioned one loophole with GmailZeroing, namely the Unread messages loophole. Our esteemed CEO has an elaborate system for snoozing emails which uses integer labels to get things temporarily out of the inbox and scheduled to return in a given number of days. But it leaves another gaping loophole akin to the Unread messages problem — you can just snooze everything when your inbox goal is about to derail. Until now he’s been using another elaborate system — Gminder (original implementation by Lillian Karabaic) — to beemind all snoozed messages as well as inbox messages. I.e., to whittle away at all of the messages he’s putting off responding to.
But now the official GmailZero can do it! 
2. Beeminding a backlog
Have you ever heard someone talk about declaring “email bankruptcy”? I guess that’s just throwing your arms up in defeat and foreswearing all messages you’ve received up to now, but this time I won’t fall behind… While the “this time” sure sounds like a job for Beeminder, what about that poor backlog? Can’t we do better than that? Sure, go ahead and draw your line in the sand, but how about instead of just mass archiving them, create a backlog tag and then beemind whittling that away to nothing. In other words, create a label “backlog” and set your Gmail Query to “in:backlog”.
3. Unread messages
Some people never archive messages and let their inbox grow without bound, and are fine with that. For them, their real inbox is the unread messages and that’s what they want to beemind. If that’s you, set your query to “is:unread”, or “in:inbox AND is:unread” or whatever variation makes sense for you.
4. Starred messages
Or maybe you want to be more explicit about the set of messages you still need to deal with but still don’t want to have to archive everything else. So you put stars upon thars. And your query would be “is:starred”.
(Side note from Dreeves: I’ve heard people claiming to have solved their Inbox Zero woes by just starring things. That doesn’t solve anything! The list of messages with stars is your new “inbox” and just as much diligence is required to keep it from swelling to an overwhelming sea.)
5. Recent messages, with attachments, from people in your Google+ family circle and not from mailing lists
Just kidding. About wanting to beemind that, I mean. You could though! The point is the sky’s the limit. Check out all the query ingredients Gmail gives you. And if you are using this in ways we haven’t thought of, we very much want to know!
 Check out the spate of User-Visible Improvements (UVIs) that we made along the way (hover for the full descriptions):
- Hideous dummy datapoint hack removed
- Allow new GmailZero goal if old one archived; missing errors
- New goals now OAuth2; alerts for re-authing
- Large inboxes work; query predicts what Beeminder fetches
- Bugfix with showing email address you’re authed with
- OAuth1 is dead; added error banners and more alerts to re-auth
- Bugfix with re-auth and tokens
- Bugfixes with 0 messages and pagination
- Show actual last count fetched
- Beemind arbitrary Gmail queries!
 There’s not actually an easy way to query for all integer labels so he’s settling for checking all messages snoozed up to 9 days, like so:
is:read AND (in:inbox OR in:0 OR in:1 OR in:2 OR in:3 OR in:4 OR in:5 OR in:6 OR in:7 OR in:8 OR in:9)
If he finds himself snoozing lots of things for 10 days in order to keep Beeminder happy then it will be back to his Gminder script. But usually you’re far more willing to snooze till tomorrow than to 10 days from now. After all, if it’s so unimportant that you don’t mind ignoring it for 10 days then maybe you can just archive it.