A method implemented by one or more processors, the method comprising:
- receiving natural language input, the natural language input being:
- free-form input formulated by a first user via a user interface input device of a computing device of the first user as part of an ongoing message exchange thread that includes the first user, a second user, and a third user;
- determining an action based on the natural language input;
- determining a plurality of candidate entities for the action, wherein the action can be performed by or for the candidate entities;
- identifying a stored protocol for the action based on the protocol being assigned to the action, the protocol defining protocol parameters;
- generating and providing, to each of the first user, the second user, and the third user, a corresponding prompt to solicit information directed to at least a given parameter of the protocol parameters, wherein providing the corresponding prompts is based on the given parameter being unspecified by the natural language input;
- receiving, in response to providing the corresponding prompts, a first input provided by the first user, a second input provided by the second user, and a third input provided by the third user;
- resolving a value for the given parameter unspecified by the natural language input, wherein resolving the value is based on the first input, the second input, and the third input;
- resolving a particular entity of the candidate entities based at least in part on the resolved value;
- and
- communicating with or more computer systems to initiate the action by or for the resolved particular entity.