It's possible to track the conversation events using your own endpoint(s) or JS functions.

Using the custom initialization options, add such api method:

        onLoad:function(data){}, // bot loaded
        onStart:function(results){},  // bot started
        onQuestion:function(results, question){},  // bot step asked, called after it displays the actual question
        onAnswer:function(results, question, answer){},  // bot step answered
        onRedo:function(results, question, answer){},  // bot step redo started
        onAnswerRedo:function(results, question, answer){}, // bot step redo answered
        onLeave:function(results){}, // bot window closed
        onFinish:function(results){}, // bot chat completed
        onExit:function(results){}, // bot chat exited
        onReturn:function(results){} // bot chat have returned from leave