Думаю, лучше всего сделать так: каждое сообщение сделать (если еще не сделано) объектом, в котором будет приходить тип, например text или command.
text выводится клиенту, command выполняется браузером.
//Где-то в недрах кода ждем команды...
document.addEventListener("commandFromChat", function(e) {
switch(e.detail.command) {
case "goto": return document.location.href = e.detail.payload;
case "somethingElse": break; //можно обрабатывать разные команды
}
});
//Нам письмо!
let message = {
"type": "command",
"command": "goto",
"payload": "https://flowers.shop/красные-розы-100-см.html"
};
//Получая команду, браузер инициирует событие, например так:
if (message.type === "command") {
let event = new CustomEvent("commandFromChat", { "detail": message});
document.dispatchEvent(event);
}
Таким образом можно чат превратить в инструмент исполнения любых желаний покупателя менеджером)
Только не забудьте о безопасности, чтобы П не превратился в объект развлечения для К :))