Zapier recipe to automatically integery-ize new goals


#1

If you’re like me and think there’s a 99% probability any new Beeminder goal of yours will be integery (see megathread), then you might like to get this enabled automatically for your new goals. Setting this up is a PITA but once you’ve done it once your goals will automatically become integery ~24 hours after you create them!

  1. Create a Zapier account if you don’t have one.
  2. Go to parser.zapier.com and create a new mailbox.
  3. Go to Gmail and find one of your new goal reminder emails from Beeminder. You know, one of the ones with the subject line like getting reminded about your username/goalname beeminder goal. Forward it to your new Email Parser mailbox.
  4. When the mail comes through, highlight the goalname portion of the email subject and name it something like “goal name”. It should end up highlighting just the goal name / slug for your goal: https://www.dropbox.com/s/9w0f6q2cw3tln3n/Screenshot%202015-10-28%2016.06.52.png?dl=0
  5. Go to the Forwarding and POP/IMAP tab of Gmail Settings. Click the Add a forwarding address button. Enter the Email Parser address you created in step 2. Go back to Email Parser and wait for the Gmail email to come through. Copy/paste the verification code back into Gmail.
  6. Go to Zapier and create a new Zap. It’s going to be from Email Parser New Email -> Webhooks PUT (e.g. https://www.dropbox.com/s/i59pls9z7rz1yjr/Screenshot%202015-10-28%2015.55.56.png?dl=0 ). Select your Email Parser account and then select the mailbox you created. Don’t filter the mail on step 4* (see below).
  7. On section 5 of building the Zap, the URL should end up looking like this: https://www.dropbox.com/s/lsdz51mbhzpo28f/Screenshot%202015-10-28%2015.58.09.png?dl=0 . Start by copy/pasting https://www.beeminder.com/api/v1/users/YOUR_USERNAME/goals/GOAL_WILDCARD.json?auth_token=YOUR_AUTHTOKEN into the URL field. Then replace YOUR_USERNAME with your Beeminder username and YOUR_AUTHTOKEN with the token from https://www.beeminder.com/settings/advanced_settings . (Reminder, don’t share that token with anyone). Then delete GOAL_WILDCARD and in its place click “Insert fields” and select the “goal name” parameter you created in Email Parser (step 4 of this list). Whew!
  8. Set payload type to json. Under data, put integery and true. Leave the rest of the settings as they are. e.g.: https://www.dropbox.com/s/qbdn5cld08bytl5/Screenshot%202015-10-28%2016.00.39.png?dl=0
  9. When you test the ZAP, it should say it was successful (assuming the goal corresponding to the email you forwarded in step 3 wasn’t deleted in the meantime).
  10. Go to Gmail and search for from:support@beeminder.com subject:"getting reminded about your". ( https://www.dropbox.com/s/tsj2aautl5dw5hx/Screenshot%202015-10-28%2015.50.51.png?dl=0 ) Click Create filter with this search. Select the forward email option, and select the Email Parser email address you created in step 2. You should see a scary pink butterbar for the next week like https://www.dropbox.com/s/wt9qkoxxb3fzdne/Screenshot%202015-10-28%2016.09.17.png?dl=0

*There’s room for improvement here if you think you may create some non-integery goals. You could decide on a prefix for their slugs and then filter the new goal email out if it contains the prefix (in section 4 of creating the Zap in step 6).


Making a goal integery (command line edition)
Feature Request: Integery goals
Discrete units for a goal
New goal road dial
#2

I’m in awe of the hoops folks will go through to automate things.

That may be the strongest possible way of voting for a feature, not least because it creates a real-world test of the concept. (And goodness knows we’ve found a bunch of counter-intuitive results from implementing obviously-right stuff ourselves.)

Ironically, of course, creating a viable work-around can delay the implementation of the very thing you’re agitating for. I think @drtall’s safe in this case, given the number of steps involved… :wink:


#3

Aww thanks :heart:

I hereby pledge to report back to this thread if I ever disable integery on a goal. :slight_smile:

Haha it’s only 10 steps to modify 4 different accounts. 0_o


#4

Inspired by @windairen:

I thought I’d make a stats report:

New Integery Goals since October 2015:       11
New Non-Integery Goals since October 2015:   0

#5

Is there a way to see which goals I’ve created since October 2015?


#6

If your search your inbox for "getting reminded about your" it should pull up all the new goal notification emails from Beeminder.


#7

Thanks, here are mine:

New goals since October 2015:
Integery:   2
    Time:   3
   Other:   0

(fewer goals than I expected.)


#8
New Goals since October 2015:
   Integery:  8
Timey Wimey:  4
      Other:  2

#9

Ooh interesting. Could you elaborate? :slight_smile:


#10

For many things, my beeminder strategy is “make sure you spend time in it” which is a goal, and usually backed with “work on it lots of days, not just lots of minutes” which is IFTTT and custom aggday.

For some things, I add a “actually get results”, for instance, actually come up with new PCB designs and send them out. They’re usually very unaggressive, and just act as a safety for the other goals.

While composing this, I realized they are only non-integer goals because I am a weasling weasel.

sigh

Thanks for the insight!


#11

Ah ha! Perfect. So we still have no non-integery, non-time goals? :slight_smile:


#12

Well, no new ones.

I have a very important non-integery, non-time goal: weight loss.


#13

For me, since October 2015: 5 new integery goals, one new timey-wimey goal, and one new weight loss goal.


#14
New Goals since October 2015:
   Integery:  7
Timey Wimey:  4
      Other:  5

Other in this case contain goals like these:

  • my reading-speed goal as I work my way through Kump.
  • my dailies goals, where I the datapoints are binary but the aggregation is true mean
  • money-related goals, so not integery but hundredths-y

#15

I’ve succumbed and marked many of my goals as integery. Here’s a shell script that works on my mac…

Usage: integery.sh goalslug

Assumes that you’ve got a minimally sh-compatible ~/.bmndrc set up; either that or edit the in-file config.


#16

Since my last update:

New Non-Integery Goals since February 2016:   0```

#17

I actually have a non-integery goal, but it’s a bit of a weird one. I have an exercise goal which is mostly integery but counts time spent walking as recorded by tagtime towards the goal, so walking time comes in as a data point of value 0.4 (my tagtime interval is 24 minutes) when everything else is an integer.


#18

Interesting. Is there a reason that multiplying all your data points by 10 would make the goal worse / less useful?


#19

Interesting. Is there a reason that multiplying all your data points by 10 would make the goal worse / less useful?

A lot of it is manually entered, so having to do that by hand feels weird to me. It also wouldn’t solve the problem for if I changed my tagtime interval for whatever reason.

It’s also conceivable I might want to add other timey wimey goals into it at a different multiplier, though I currently don’t.