Пишем интеграцию на основе веб-хуков. При изменении контакта в нашей системе он уходит сразу в битрикс, далее обновляется в битриксе и битрикс нам шлет ответ в исходящем веб-хуке, что изменился контакт. Наша система обрабатывает исходящий вызов из битрикса и пытается изменить контакт у нас, получаем зацикливание.
Было бы здорово иметь на объекте признак (например, DISABLE_INCOME_WEBHHOK), который бы отменял отправку исходящих веб-хуков.
TL;DR: обрабатывать эту ситуацию нужно на стороне Вашего приложения, так как ньюансов работы очень много
Это очень плохое решение.
Поясню: Вы пишите интеграцию вашего приложения с порталом, и хотите отменить все вебхуки на изменения. Но на портале могут быть установлены другие приложения осуществляющие интеграцию и соответственно они перестанут работать корректно. Ваша схема работала бы, если бы Вы писали REST-приложение и это бы действовало только на Ваши запросы, но в данной реализации оно будет действовать на все запросы.
В Вашей схеме Вы сами должны на стороне Вашей системы предусмотреть такое действие - если Вы отправили событие по контакту 25, то следующий хит от контакта 25 (именно один). Вы не должны обрабатывать. Такая схема будет работать, так как изменение контакта пользователем и изменение контакта через rest породит два события изменения (одно из которых Ваша система пропустит, а второе корректно обработает).
К тому же, совершенно непонятно как решать проблему изменения через бизнес-процесс.
Например: есть бизнес-процесс который срабатывает на изменении контакта и изменяет какое-либо поле. Тогда Вы все равно попадете в зацикливание.
P.S. Но сама идея по отмене веб-хуков очень даже неплоха