Patent ID: 8510399

Claim:
A method, comprising: at a server system having one or more processors and a memory storing one or more programs for execution by the one or more processors so as to perform the method: storing a hosted conversation having a plurality of participants, the participants including one or more special-purpose automated participants that operate in accordance with instructions to perform one or more predefined operations in response to detecting predefined trigger criteria and one or more standard participants that respond dynamically to changes in the conversation; receiving a request to modify the conversation from a first participant; determining a set of edits that update the conversation in accordance with the request to modify the conversation; and sending the set of edits to a second participant that update the conversation to an updated state; wherein: when the first participant is a standard participant: the request includes an indication of preliminary edits that were performed on the conversation by the first participant; determining the set of edits includes updating the conversation in accordance with the preliminary edits that were performed on the conversation by the first participant; and the set of edits include concurrency-resolved edits that transform the conversation to the updated state; when the first participant is a special-purpose automated participant: the request includes a request to perform an operation on the conversation; determining the set of edits includes performing the operation on the conversation; and the set of edits include edits that update the conversation, in accordance with the operation, to the updated state; and when the first participant is the special-purpose automated participant: the first participant is in communication with a third-party; the request to perform the operation on the conversation is a request to add third-party content to the conversation; and the set of edits that are sent to the second participant update the conversation by adding the third-party content to the conversation.