In some embodiments, the user assistance system may score the candidate message based on a sentiment analysis of one or more messages of the conversation between the agent and the user. Sentiment analysis may involve, by way of example, identifying keywords, capitalization of letters, and/or punctuation in one or more messages received from the user and using such criteria to evaluate an emotional state of the user. By studying such conversation messages to estimate the user's emotion, the user assistance system may provide the agent with responses that may be more likely to appeal to the user. For example, if the user's most-recent message reads “I demand that you fix my problem now!!!”, the user assistance system may identify the word “demand” and the use of three exclamation points as indications of the user's emotion. Using this identification, the user assistance system may assign a higher score to a candidate message that convey an apologetic tone and/or a sense of urgency (e.g., “I am very sorry, User Y. We will fix the server as soon as possible.”) than to a candidate message that does not convey such a tone and/or sense of urgency (e.g., “I understand you cannot access the server. I will look into this issue and get back to you.”). Other examples are possible as well.
In some embodiments, the user assistance system may score the candidate message based on agent feedback, such as an input or inputs received by the user assistance system that indicate a degree of agent approval or disapproval of the candidate message, the predetermined message template, or a suggested message associated therewith. To facilitate this, the user assistance system may store or otherwise access and obtain a history of inputs received from agents (e.g., inputs correlated to respective templates), and may refer to the history of inputs as a basis for scoring the candidate message.