AMOCRM - это объект на странице amoCRM. если вы разрабатываете свой виджет, то всегда можете обратиться к этому объекту и вызвать у него необходимую функцию.
если вы jwt подставите в jwt-decode (например в этом сервисе https://fusionauth.io/dev-tools/jwt-decoder)
то вы увидете payload, в котором есть параметр exp (т.е. expire) - это unixtimestamp - количество секунд с 1 января 1970
если сравнить с текущим unixtimestamp, то вы узнаете актуален ли еще токен или уже "протух" https://www.unixtimestamp.com - сервис, где можно узнать текущий timestamp и перевести в человеческий вид
сработает, если после перехода в этап воронки в течение указанного периода придет сообщение
но я бы не ставил 5 минут, слишком короткий интервал контроля, хотя вероятно могут быть какие-то ситуации когда и такой вариант необходим
тут два варианта:
а) технологически: в своем виджете реализовать механизм принудительной перезагрузки интерфейса амо. т.е. если вы через api поменяли поля, то затем шлете команду для принудительной перезагрузки и все пользователи перегружают интерфейс и работают с новыми значениями
б) организационно: применять изменения только по графику, например перед рабочим днем и в течении дня все работают с текущим набором значений полей, все изменения накапливаете и применяете перед следующим рабочим днем и все пользователи утром заходят в амо, начинают работать с новыми значениями
У вас есть своя форма, вы от нее получили данные. С форм данные в amoCRM должны попасть в виде сделок/лидов.
Реализуете свою интеграцию и добавляете лиды/сделки.
т.е. ваш пользователь заполнил данные в вебформе на вашем сайте, затем вы их отправили на вебхук сервиса webjack, а он соответсвенно передаст эти данные через свою интеграцию в ваш портал amoCRM.
https://youtu.be/3DLbkBt7kHw