1. A method for a collaboration between two or more participants selected from a plurality of participants, comprising: initiating a collaboration system having a messaging layer, and operating on one or more microprocessor; defining a plurality of roles including at least a first role subject to a first membership criteria and a second role subject to a second membership criteria and a presence criteria; providing a subscription feature in the messaging layer whereby collaboration processes of the collaboration system can subscribe to presence information for a particular role of the plurality of roles; and monitoring changes in role membership; notifying collaboration processes which have subscribed to presence information for the particular roles of the plurality of roles of changes in role membership of the particular role of the plurality of roles; qualifying a first participant of the collaboration from the plurality of participants based on the first role, wherein qualifying the first participant includes the collaboration system evaluating the first participant based on the first membership criteria associated with the first role; automatically providing a second participant of the collaboration from the plurality participants using the collaboration system, wherein automatically providing the second participant includes automatically selecting the second participant and inviting the second participant to join the collaboration; wherein automatically selecting the second participant comprises the collaboration system automatically selecting the second participant based on the second role by dynamically evaluating the plurality of participants based on the second membership criteria and the presence criteria; and wherein inviting the second participant to join the collaboration comprises receiving via the messaging layer a request from the first participant at the collaboration system, forwarding the request via the messaging layer from the collaboration system to the second participant selected by the collaboration system, generating a notification from the collaboration system when the second participant is available to join the collaboration, and communicating between the first participant and the second participant using the messaging layer of the collaboration system.