Windows 7 Feature Request: Presence & Status API

When RSS feeds were all the rage, Microsoft took notice and built support into Internet Explorer 7 and Windows Vista. I think the Common Feed List was a great addition to the operating system – why try to manage and synchronize a different list of feeds for each application? It makes far more sense for the OS to manage it. This situation is a good example of how Windows can make your life easier.

I would like to see a similar feature added in Windows 7 – a common presence and status API.

Presence is your availability, such as “Available”, “Busy”, and “Not Available”. There are dozens of applications that support this type of functionality in their own way. I’ve got three running right now – Windows Live Messenger, Skype, and Pidgin (well and Exchange, I suppose). You’ve probably got a similar list, perhaps with a few more applications.

Status is the short text description of what you’re doing, such as “Working in the office”. Think Twitter and Facebook. Many software applications have this type of functionality as well, including Windows Live Messenger and Skype.

Here again, the operating system should be taking care of this to make life easier. When I want to change my presence from “Available” to “Busy”, I currently have to make that change in every single application. Likewise, to update my status I need to copy and paste it to a bunch of different places. Too messy, too much work.

Here’s what I’d like to see in the API:

  • The ability to set the presence and/or status of the currently logged in user.
  • The ability to query the presence and/or status of the currently logged in user.
  • An event subscription mechanism to be notified when the currently logged in user’s presence and/or status has been updated.

That would be very cool, I think. I could then change my presence or status in Skype and it could be reflected in Windows Live Messenger and other applications. This information could also be displayed in other places, such as the Welcome screen, or in my email signature, etc.

But we can make it better – let’s hook in Windows Live support! Extend the Windows Live Presence API to support status updates as well, and let me grant access to third party services. That way I could potentially hook in Ping.fm and other services. When I update my presence and status on my computer, it updates Windows Live in the background, which in turn updates any other services I’ve added.

With that in place, this scenario becomes a reality: I open a gadget on my desktop, change my presence to “Available” and my status to “Writing a blog entry” and it’s reflected in Windows Live Messenger, Skype, Facebook, Twitter, etc.

I’d love to have that functionality! Perhaps it could work with the new location API too. I’ve got tons of feature requests for Windows 7 (as I’m sure everyone does) but this one would definitely be near the top of my wish list.

Presence: Pipe Dream?

Post ImageI got thinking about “presence” today, after reading a comment from Dan Gillmor in light of today’s eBay-Skype deal (hat tip Larry):

It’s official, and eBay will now be adding something to its portfolio: customers’ presence online. The possibilities are endless. I didn’t get this at first, but now I do.

Unfortunately he didn’t “get it” enough to elaborate in his post. There are of course a few “gotchas” associated with eBay acquiring presence – eBay users need to be Skype users, and somehow the two need to be associated or perhaps merged (like Yahoo and Flickr recently started to do). I disagree that the possibilities are endless though. Adding Skype doesn’t give eBay users any capabilities they didn’t already have with other IM systems. Of course, if the two companies can integrate auctions with Skype in a new and interesting way, that may change, but there’s still only so much presence information can give you.

The Holy Grail of Presence

There has long been a goal among technology companies, business people, and many others to have “presence” information about users. That is, knowing when someone is online or offline, available or unavailable. The idea works best when combined with location – are you online at home or at the office? There are many supposed benefits to having such information, not the least of which is greater productivity and efficiency. That being said, I think presence is one big pipe dream – at least for the forseeable future.

From Wikipedia:

Presence is defined as the “availability and willingness of the user (presentity) for communication”. Presence information is published by individuals to other systems users, known as ‘watchers’ or ‘subscribers’, to indicate their communication state. Although not limited to IP communications, it has become synonymous with IP applications such as VoIP and Instant Messaging.

The problem with presence is that it’s inaccurate at best. I have two MSN Messenger accounts. One is online 24/7 unless there’s a problem with my connection or with MSN itself. The other one is for my tablet, and I sign in as “Maq@Location” to try and share both presence and location information. But even back in the days of ICQ, my “always on” connection is usually set to Away, even when I’m here. That’s not really accurate! What users really want is to be able to say “Jack can contact me at any time, regardless of my status, but Mary can only contact me when I am Online”. Unfortunately, almost no one is going to take the time to manually set those restrictions.

And what about when you get up from your desk to grab a cup of coffee or use the washroom? Unless you remember to switch your status, your presence information is no longer accurate! How about moving from the computer to a different device, like your cell phone? You’d likely have to sign out of the computer and sign into the cell phone. Not the best scenario in the world is it?

Presence needs to be seamless for it to work. My devices and applications should all work together to know where and when I am available. In the best case, my devices should know that if I am out and about with only my cell phone or PDA, I might not be able to respond, and could then share this information with contacts. Let’s say I am working on a specific project in Outlook – my devices and applications should adjust my presence so that I am available to people related to the project, but maybe not to others.

Can we get there? I think one day we will, as much of the technology needed to achieve “true” presence exists today; things like wireless communications, RFID tags, web services, and other base technologies. For now though, presence remains a pipe dream.