Working Solution · Last modified November 30, 2009

The interface pattern for managing and displaying availability may also be referred to as "online presence indicators" (OPI).

They provide a way for a user to display to other people (either the public, or their contacts, depending on the rules of the system) when they are available for contact and when not.

Delicious Bookmark this on Delicious

What Problem Does This Solve?

Users need to see who else is online, available and open to contact.

When to Use This Pattern

Here are four typical use cases for online presence (availability) indicators:

  • A person wants to determine whether their friend is online.
  • A person wants to see who is available for contact.
  • A person wants to see if their friend is available for communication.
  • A person wants to show that they are busy to their contacts

What's the Solution?

Allow the user to visually identify themselves in one of three possible states - Available, Busy, or Offline. Additionally, the client or application, if technically feasible, may also identify the user as Idle if she is away from the computer for a set period of time:

AvailableThe user is signed in and is available for contact. If the Busy and Idle states are unavailable, the OPI defaults to this state, more broadly defined as the Online state. An application may permit the user to reveal availability manually or it may be set to display Available whenever the user signs in.
BusyThe user is signed in, but declared themselves as Busy. Busy refers to two separate contexts that, in turn, relate to the diametrically opposed impetuses for IMing: focused intent and serendipity. One refers to actual busy-ness, requesting others to abide by those associated social mores. (e.g., a user sees someone set to Do Not Disturb: the user knows they're contactable, but will only contact when necessary). The other refers to a form of explicit idle-ness by explaining a user's potential delay in response, which otherwise may not be adequately explained by the Idle state below (e.g., Stepped Out, Not at My Desk, Out to Lunch). Setting oneself as Busy bears no functional significance, and serves only as a social announcement. It is represented by the international No Entry sign.
IdleThe user is signed in, but the client observes that no keyboard or mouse activity has happened within a set period of time. The user has the option to override this setting - thereby always appearing as Available or Busy.
OfflineThe user is not signed in, or has signed in as Invisible.

Adopt a set of consistent icons for these three (or four, including Idle) states. Studies show that stoplight colors (red, green, amber) don't map well to these choices, even though they are widely used among IM applications. This is mainly because while Available can be easily mapped to Go (green) three of the states (Busy, Offline, and Idle) are all equivalent to Stop (red) and none of them map particularly well to Slow Down / Proceed with Caution (amber).

Stealth Mode

An automated system that is too transparent or honest may put the user into awkward situations, such as when they wish to be available to some, but not all, of their contacts. Hence, you might find it useful to provide a stealth mode, the ability to sign in as Invisible and hence not automatically reveal oneself automatically on connecting to the application.

Yahoo Messenger, for example, enables a granular selectivity, by which you can appear Invisible to only specific people, using this procedure:

  • The user clicks their contact's name while pressing the Control (Ctrl) key to highlight the contact. This automatically opens a pop-up menu.
  • The user selects Stealth Settings.
  • The user clicks Permanently Offline.
  • This contact will thereafter never see the user you as online unless the user changes this setting. (To remind the user, the contact appears in italics on the user's Messenger List.)

    (Messenger offers a similar feature for whole groups.)

    Open Questions

    What's the overall value of being online, if users can still receive offline messages? What's the overall value of being busy, if there's no direct consequence, other than serving as a visual note to others?

    Why Use This Pattern?

    Revealing availability is the fundamental building block of online presence. Providing your users with dead-easy ways to do this facilitate the sense of presence and availability that helps a social system feel inhabited by real people with realistic comings and goings.