For this use case, I’d advise implementing the chatbot as usual but having an NLG server for generating responses and then on that NLG server you actually serve your json-based responses. For the reference of NLG, take a look at NLG Servers
Regards, Nikola