As a journalist and part-time lecturer, I'm often interacting with a bunch of different people at roughly the same time—in face-to-face talks or via email, Skype calls, Twitter, instant messages and what have you. The cacophony can be awful, to say nothing of the consequent risks of missing something important or letting too much of my time (especially sacrosant family time) get sucked up by trivia. You may well face some version of this problem yourself.
Several decades ago, I might have turned to a human secretary or personal assistant to better manage all that interaction—what you might call my personal interface. But that's not really feasible these days.
Which is why I want an API. Not for an app or some other software application, but to manage my real life. And I want it now.
Super-APIze Me, Please
An API, or application programming interface, is basically a set of rules that allow one software program or service to talk to another. Such guidelines are what let you sign into Spotify using your Facebook ID. They're the gremlins that open up your phone's browser to view the link you just clicked on Twitter.
Here, though, I'm thinking of a more metaphorical API—one that would manage how I communicate with, well, the rest of the planet. Its rules would govern who can reach me when, at what times and via which channels, and would prioritize these contacts based on who's asking and what I'm doing. My family always gets through, for instance; casual colleagues can wait until I'm ready to talk to them. Ultimately, these rules could morph into some kind of automated personal assistant, though that's probably a ways off.
See also The New API Gold Rush
This isn't just about me, of course. Cleaner ways of meshing our schedules with our communications also helps the folks who want to avoid trying to reaching us in counterproductive ways. If someone rings my phone at dinner time, or tweets at me with something urgent when an IM would have gotten my attention faster, they've just wasted their own time in addition to burning off any goodwill they might have been counting on.
This, then, is the basic case for a personal API: It makes it much simpler and clearer for people to find you—and you them—in the ways that you each find most convenient. And that should eventually work out to everyone's advantage.
Personal API 101
These days, when someone wants to get ahold of me, they'll typically look up my phone number, email address, Twitter handle or whatever and then send me a message. In my automated social future, though, that person would first connect to my social API, which would then apply its rules and then text me, put through a call, DM me on Twitter, schedule an appointment or even send a thanks-but-no-thanks reply.
And presto, incoming calls and messages are suddenly prioritized for the social API user. If the phone rings, it's going to be someone you want to talk to at that time. Your texts will be from close friends and family, and Twitter (or whatever service you so designate) will be the best place you can be reached for work, hobbies, political or sports discussions—whatever floats your boat.
The benefits flow both ways, since your interlocutors should appreciate knowing the best ways to get your attention. Though of course some will immediately try to game the rules of your personal API and jump to the head of the line. That will spark social-API countermeasures, and a new arms race will be born. Unfortunately, it's probably inevitable.
Personal APIs In The World
Others have already started implementing personal APIs to help manage their busy lives.
Probably the best known is a personal API that Foursquare co-founder Naveen Selvadurai created a few months ago. It's a little different than what I'm talking about here; Selvadurai basically wrote some code that periodically sends out Foursquare updates with data on his "sleep, weight, steps, fuel/activity and checkins" to his own account and anyone who opted in.
Selvuradai's API obviously isn't managing his social life, though it could still help with that. If someone notes that he's sleeping, they probably won't try ringing him up. But Selvuradai's main interest lies in "quantifying" himself by tracking the data he generates—particularly health-related data, such as activity, heart rate, weight and similar statistics.
Selvadurai's notion of a personal API is interesting, but it's narrowly focused and only works one way. It's up to his colleagues and friends to do something with all the data it pumps out. But elements of his scheme are similar to what I have in mind. In particular, this broadcasting of current status—awake/asleep, eating a meal, with family, concentrating on a project—may be crucial to help a social API figure out how receptive we are to incoming messages.
Much closer to my idea is a personal API created by Jay Cousins, a technologist who seems to share many of my concerns. So in 2011, he wrote out a set of simple guidelines that explain how best to contact him ("I am not my phone's bitch"), how he prefers to be paid ("promptly") and how he works. It's an old-school written profile, one laying out a set of rules intended to help people who don't know Cousins to understand him—and to ideally communicate with him more effectively.
Of course, Cousins' API also reads a bit like one of those fast-talking legal disclaimers at the end of a pharmaceutical commercial. By the time you've heard all the awful things that might happen to you, you wonder if it's a good idea to ask about that medicine at all. At first read, Cousins comes off as sort of high maintenance.
Some free advice: If you're ever designing a personal API, you might want to tailor it so people don't think the same thing about you.
Updating The Updates
Tone aside, the Cousins approach has a lot going for it. I could easily produce something similar, and so could you. All you need is a clear set of rules that outline when and how clients, co-workers and family members can reach you.
Of course, these rules need regular updating in order to reflect life changes big and small—marriage, divorce, new job, new romantic partner, lunch breaks, etc. They'll need access to your calendar and contingency settings that would supersede your day-to-day preferences when necessary, such as an "all hands on desk" emergency at work. And they'll need to change depending on the time of day, day of the week, and particular circumstances—a vacation, a business trip or an extended leave.
At the same time, you don't want to be a slave to your personal API, constantly tweaking its settings to keep it from inadvertently blocking important people or letting the wrong ones through. It's supposed to work for you, after all, not the other way around.
One possibility would be to combine some kind of a public dashboard for displaying your active status with a guide that explains what each status means. If I've set my status set to "writing," for instance, that means I'd prefer not to be bothered at all barring either pressing work obligations or family emergencies.
So, Here's My Personal API
Below, you'll find my first stab at my own personal API. Because I hope to automate it someday (read: as soon as possible), I've written it in pidgin pseudo-code. The gist should still be clear even if you're not a coder yourself: my family gets top priority, supervisors and friends are right behind, followed by colleagues. Everyone else gets put into "hold" status, a message queue I can check throughout the day.
It's a start, but there's no shortage of other issues to deal with. For instance, status is rarely exclusive. I might be "at work" and still "free" in the sense of having time to chat with a colleague or take a call from a source. For another, updating status could be a huge grind. Have you ever forgotten to mute your phone's ringer in a meeting, or to put Skype on "do not disturb"? I sure have.
An automated personal API might be smart enough to make educated guesses about your status, and if it did so well, that would be a big help. Still, odds are good that it'll sometimes guess wrong, and that means manual override—back to the grind, in other words.
But what if you could use a smartwatch or some similar wearable device to manage the process? When you wrap up work for the day, just tell the watch, "OK, Watch, I'm heading out." Or, "OK, Watch, I need some quiet time." The watch could also serve as the intercom to your digital personal assistant (aka your personal API), telling you in a quiet voice that "Ms. So-and-So from the Nobel Committee is on the line, shall I put her through?" It could even learn to handle new people and new situations from your answers to such requests.
We're not likely to see personal APIs this sophisticated within the next year, or even the year after that. But they may not be as far off as you think.
"OK, Watch, list my Personal API draft."
If varPerson="Family" communication="yes" If varPerson="Friend" and status="free" communication="yes" else communication="hold" If varPerson="Supervisor" and status="work" and status<>"vacation" and status<>"Family_Time" communication="yes" else communication="hold" If varPerson="Colleague" or "Student" and status="work" and status<>"vacation" and status<>"Family_Time" and status="free" communication="yes" else communication="hold" If varPerson="Unknown" communication="hold" ## Status_Times Set Status.Work=>0600 1700 timezone="-0500 GMT"
Set Status.Family_Time=>1700 timezone="-0500 GMT" ## Communication_Methods Set Priority email."email@example.com"=1 Set Priority email."firstname.lastname@example.org"=2 Set Priority twitter."TheTechScribe"=3 Set Priority linkedin."Brian Proffitt"=4 Set Priority skype."Linuxscribe"=5
What would your personal API look like?