1. A method, performed by an IVR system, for responding to users' queries while minimizing agent cost, the method comprising: receiving a call from a user at an IVR system; receiving a request from the user to speak with a live agent; queuing the user for a live agent; prompting the user to state a query; recording the user's speech input for the query; providing the user's query to a natural language understanding interpreter; receiving a natural language interpretation result; using the natural language interpretation result, determining if the user's query matches a query in a database that includes frequently-asked queries and corresponding response protocols; in response to the user's query matching a query in the database, providing an automated response to the user in accordance with a predetermined response protocol for the query and asking the user if the user still desires to speak with a live agent; in response to the user's query not matching a query in the database or in response to the user indicating that the user still desires to speak with a live agent, transferring the user to a live agent; in response to the user being transferred to a live agent and after the live agent provides the user with a response to the user's query, prompting the user for feedback on the live agent's response, grading the live agent's response based on the user's feedback, and storing the live agent's response in association with the grade; and selecting a new response protocol for the query based at least in part on the grades associated with live agents' responses to the query.