I don't know what platform or software you're using, but we use iterative learning with active training combined with natural language processing.
So basically we give the machine appropriate responses to some appropriate questions and then have it run over datasets of actual chats between users and support agents, figuring out how it should respond - then we go over its results, and rate how it responded and tell it to go again knowing those ratings, so it gets better.