Notifications how I want them
Maybe I'm just asking for too much, but I want more control over how people and services contact me. SMS or IM is generally the best, email and voice the worst. You might feel entirely the opposite of me, preferring everything to go into your email inbox so you can then sort and filter and do whatever dark, disturbing things you do to your email. That's okay. In fact, that's the point - we should be contacted in whatever manner is best suited for our personal work flow. But how do we do that? Just make little notes about each person? "Jim really hates it when I email him, so I have to break down this essay into 140-character snippets and send them out, but I need Samantha CC to get this too, and she wants IM, so..."
Yeah, no.
There's a better way to do this.
Let's say I sign up to, oh, Twitter using my OpenID. Twitter says, "Okay, great. You have an account. You have all the wonderful webapp services that we provide. However, we can also tell you about things that happen in real time so you don't have to keep checking our website - do you want to set this up?" Since I want to be notified when certain events happen, I say yes, and an OAuth (or OAuth-like) request is sent to my identity provider. My identity provider is a good one, so it has lots of different options for getting in touch with me - it can IM me, SMS me or email me. It could, conceivably, direct message me on Twitter, query me on IRC, hire a skywriter to write out the messages in the city I'm currently in - ultimately it doesn't matter how my identity provider gets in touch with me, just that it can. During this request, I tell my provider, "Okay, I want all messages to go to my IM account. If I'm not online, then I want only important messages to be texted to me." Once I'm done selecting how I want to be contacted by Twitter, I click okay and the request is completed. I go around and add friends (or, friends are already added - wouldn't that be nice!) and select some to have 'device notifications on.'
Now comes the fun part.
When there's a new update for me, any new update, Twitter sends a quick little API request to my identity provider. That API request contains a priority (eg, 1 for friend notifications, 5 for all updates, 8 for messages from people with device notifications on, 10 for direct messages), an optional short version of the message designed for IM/SMS and the full length message.
That's all it has to do.
My identity provider takes the request, looks up my preferences and acts on them. I get a normal update, it sees that I'm not on IM but that the priority is too low to go to SMS - so it ignores it, presumably returning a "Message failed to deliver due to the user not giving a damn about it" error to Twitter, who probably doesn't care. Any direct message or updates from people for who I have device notifications on would then be SMS'd to me - by my identity provider. Not Twitter.
There is, of course, a lot of customizations you could do here - the priority system is a bit clunky, but provides a lot of power that could easily be hidden by a proper UI. I still get notified of events but I get the notifications I want how I want them. I get notifications only from people I have authorized (though I would presumably have a public dropbox that I could check via email or a web interface or whatever - it's not important) and I have nice, elegant control over my communication flow.
So, let's refine this idea. What's next?