Beeminder Forum

Automate email-zero goal?

I’m starting to work on automating my goals, and the first one I want to automate is my email-zero goal. It’s very simple–I enter a 1 when I clear out my email inbox. I’d like to figure out how to reproduce this behavior using the Gmail integration, but I’m having trouble grasping how to go about it.

Requirements:

  • automated
  • prevents number of emails from growing indefinitely
  • prevents any one email from being ignored indefinitely
  • supports weekends off
  • compatible with additional breaks (so no auto ratcheting :frowning:)

My understanding is that the Gmail integration only provides the number of emails in a given label (read, unread, or both). Ideally, then, I’d like to use an aggregation method that would result in a 1 for the day if the minimum data point posted was zero, and 0 otherwise. But I don’t believe this aggregation exists.

How can I create an automated goal that meets my requirements?

1 Like

A few things:

Note: The Gmail integration has a aggregation that’s essentially locked to min right now.

I beemind basically what you’re asking for, except I don’t use weekends off. I’m not sure if any of my techniques are incompatible with weekends off.

I have a Google Apps Script that beeminds the age of the oldest email in my inbox. I can share it. It does something either clever or stupid where I beemind the epoch time of the email, rather than the relative days old. I have a post about that technique here on the forum but I am on mobile and it’s tricky to link right now. You don’t need to borrow that part, but you could do your 1/0 thing there, and use nonzero aggday.

I also use the Gmail integration to beemind read messages in my inbox.

Between the two of these, I have been on top of my email for maybe five years!

You seem to want the road to go up rather than down, so I would edit my Google Apps Script to do the “1 if any zero datapoints” requirement. I would personally have it post a 0 if you have read messages in your inbox, and 1 if you have none, and then set the aggday to nonzero.

If this sounds useful, I can post my script, but it will be Monday or Tuesday.

2 Likes

Yes, this sounds great!

Take a look at https://gist.github.com/adamwolf/d2fe318c9de36ea3692cb2d3ea0f5952

It should be modified to support searching by label, as it would remove a lot of the code, but alas. (The datapoint submitter should also not submit a datapoint if it’s identical to the previous datapoint and the previous datapoint is from today.)

3 Likes