A computer-implemented method to automatically provide bot services in a messaging application , the method comprising: receiving one or more messages of a message exchange thread between multiple users (125a-125n), the one or more messages each being submitted by a corresponding one of the multiple users (125a-125n) via a corresponding messaging application , and the multiple users including a first user and a second user ; determining a first bot of a first type based on the one or more messages , wherein the first type corresponds to a first task performed by the first bot; determining a second bot of a second type based on the one or more messages , wherein the second type corresponds to a second task performed by the second bot, and wherein the second type is different from the first type, wherein each one of the first bot and the second bot is a computer program that performs a corresponding specific function to provide suggestions and that is capable of receiving user questions and of responding to user questions; wherein determining the first bot and the second bot comprises determining that at least one term, of a given message of the one or more messages , is associated with invocation of both the first bot and the second bot; selecting the first bot over the second bot based on content within the one or more messages ; transmitting a bot command to the first bot based on the content, wherein transmitting the bot command to the first bot is in response to selecting the first bot over the second bot; receiving responsive content from the first bot in response to transmitting the bot command to the first bot; providing the responsive content from the first bot for presentation to at least the first user via the corresponding messaging application of the first user ; receiving a user question that is directed to the first bot and directing the user question to the first bot; and receiving, from the first bot, an answer to the user question. receiving one or more messages of a message exchange thread between multiple users (125a-125n), the one or more messages each being submitted by a corresponding one of the multiple users (125a-125n) via a corresponding messaging application , and the multiple users including a first user and a second user ; determining a first bot of a first type based on the one or more messages , wherein the first type corresponds to a first task performed by the first bot; determining a second bot of a second type based on the one or more messages , wherein the second type corresponds to a second task performed by the second bot, and wherein the second type is different from the first type, wherein each one of the first bot and the second bot is a computer program that performs a corresponding specific function to provide suggestions and that is capable of receiving user questions and of responding to user questions; wherein determining the first bot and the second bot comprises determining that at least one term, of a given message of the one or more messages , is associated with invocation of both the first bot and the second bot; selecting the first bot over the second bot based on content within the one or more messages ; transmitting a bot command to the first bot based on the content, wherein transmitting the bot command to the first bot is in response to selecting the first bot over the second bot; receiving responsive content from the first bot in response to transmitting the bot command to the first bot; providing the responsive content from the first bot for presentation to at least the first user via the corresponding messaging application of the first user ; receiving a user question that is directed to the first bot and directing the user question to the first bot; and receiving, from the first bot, an answer to the user question. <EOS>