Software for Good Logo
Insights / August 8, 2014

The Ferrazzi Ping Script

By Software for Good

Scratching my own itch, I’d like to tell you a bit about an AppleScript tool I made to help me keep in contact with all of the good folks I’ve met over the years. The concept is simple: Remind me to reach out and connect with 2 or 3 people each day that I haven’t talked to in a while.

I first learned about this practice through Keith Ferrazzi’s book, Never Eat Alone. Great book, highly recommend. In Chapter 20, Pinging—All the Time, Keith recommends regularly reaching out to your network through email, social media pings, in-person meet-ups, etc. I’ll let you read the book to understand why this is important but, at least for myself, I’ve tried to implement an email version many times. Despite many attempts and even including it on my New Year Resolution list many times, I have never been able to be consistent or systematic about reaching out to old friends, coworkers, and acquaintances.

Making it Difficult

As simple as it sounds, the concept is deceptively complicated. This is not a surprising occurrence for those of you that work in software. In this case, there is a balance between contacting people too often and not enough. Contact everyone at least once before circling back and taking a second pass seems like an important concept. Having some random-ness to it also seems important – don’t want to spend weeks in a row contacting everyone in my family with the same last name.

The script needs to help me, but it can not be too rigid. Some days I’ll have time and inspiration to reach out to lots of folks, other days I won’t have any time at all. If the script decides I need to contact that person on a day when I was busy, I want it to hold off. Let’s not pile up the suggested contacts when I can’t get to them.

And of course, I’d like the process to work with my preferred tools, Mail app on OS X and Contacts (Address Book) on OS X. For a bonus, working nicely with the Cobook app would be great too.

Making the Script

The script ended up coming together pretty quickly after I wrapped my head around a flexible, usable architecture. The pseudo code looks about like this:

  • Start with a group in Contacts that has everyone in it.
  • Randomly select 3 people
  • Get their first email address
  • Create a new blank email for each person
  • Update the notes field on the contact saying I contacted them today
  • Remove the person from the group (so I don’t contact them again)

Figured I would be able to manually adjust who goes into the group at the beginning, and instead of updating the list daily, I’ll only pop people out of the group when I manually run the script. Of course in theory I’ll run it every day, but some days I’ll be too busy and will skip it. When the list gets down to 0 contacts (once a year?), I’ll replenish the group with a fresh set of folks to contact.

One small note: I’m using a Cobook convention of separating notes in the notes field with a line of “———”. This makes for a nice separation of the various notes you may add to a contact over time.

Screen Shot 2014-08-08 at 10.55.59 AM

Only real challenge I had was with the AppleScript language itself. The syntax is significantly different from other programming languages and, at least to my taste, the ease of reading makes it hard to program. Translating what was in the documentation and references into actual code was also not simple or clear.

Making matters worse, it turns out searching Google for “scripting email group contacts app” doesn’t return many useful links. I love Apple, but the obviousness of Apple’s naming conventions makes searching for supporting materials kinda hard.

Screen Shot 2014-08-08 at 9.02.06 AM

Open Source

I have made this script open source. Feel free to download it and suggest updates. The github page is I’d be glad to receive help on gracefully failing if there are no people in the group, and I’m sure you have other ideas on how I could make this script better.

Wrap up

Time will tell how useful this will actually be to me, but I’m optimistic it will set me on a good path to more regularly reach out and chat with my friends and acquaintances. And that, to me, is success. This script will make it easier for me to consistently do the right thing.

Want help crafting your software? Contact me at When I’m not toying with AppleScript, I work with clients of all kinds to help them form cogent plans to build or extend their software projects.