1. A computer system method for matching an utterance of a user to a template comprising the steps of: (a) receiving by a processor the utterance from an input device, wherein the utterance includes at least one word; (b) accessing a set of template hierarchies from a database, wherein each template hierarchy in the set of template hierarchies includes at least one template; (c) comparing by the processor the at least one word of the utterance to at least one term of the at least one template of each template hierarchy in the set of template hierarchies; (d) determining by the processor whether the at least one word of the utterance matches the at least one term of the at least one template of each template hierarchy in the set of template hierarchies to obtain one or more matched terms; (e) calculating by the processor a score of the template hierarchy based on the one or more matched terms; (f) repeating steps (c)-(e) until there are no more words of the utterance for said comparing step; (g) populating the at least one template with at least one data element corresponding to the at least one term of the at least one template of each template hierarchy in the set of template hierarchies to obtain one or more populated templates; (h) computing a total score of each populated template of the one or more populated templates based on the one or more matched terms to obtain one or more scored populated templates; (i) selecting by the processor the one or more scored populated templates with a highest total score to obtain a matching populated template; (j) recording the at least one data element corresponding to the at least one term of the at least one template of each template hierarchy in the set of template hierarchies; and (k) communicating the matching populated template to the user.