#Что именно происходит
Узкий случай: редактирование поля контакта порождает повторные действия связанной сделки или внешнего обработчика. Отличайте событие update_contact от update_lead и проверьте, не меняет ли первый робот ту же карточку повторно.
#Как отличить причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Два источника реагируют на контактПодписчики могут независимо выполнить похожее действие | Одна правка запускает внутренний робот и внешнюю интеграцию | Разделить события и источники |
| Интеграция повторяет запрос при задержкеРетрай без проверки уже обработанного события повторяет действие | Во внешнем журнале два обращения с одним идентификатором | Добавить защиту от повторов |
| Робот меняет отслеживаемое полеВозвратное обновление вызывает ещё одно событие | Сразу после первого изменения идёт второе служебное | Исключить циклическое условие |
#Пошаговая диагностика и устранение
- Сохраните контрольную карточку контактаВ amoCRM откройте «Списки» → «Контакты», найдите одного тестового человека и запишите ID из карточки. Попросите администратора сохранить конфигурацию действующих роботов; не проверяйте повтор на реальном массовом списке клиентов.
- Запишите точное событиеНа тестовом контакте измените только одно безопасное пользовательское текстовое поле и запишите время изменения. Проверьте историю связанных сделок и журнала интеграции: сколько задач, писем или уведомлений действительно создано и с какими временными отметками.
- Отделите действие на контакте от сделкиОткройте связанные сделки контакта и уточните, срабатывает ли цифровая воронка именно от изменения этапа сделки. Само изменение поля контакта не является событием смены статуса сделки: если статус не менялся, ищите внешний обработчик или промежуточное правило.
- Сверьте подписки вебхуковРазработчик с соответствующими правами проверяет список подписок через документированный GET /api/v4/webhooks: события update_contact и update_lead различаются. Не отправляйте токены в общий чат; для просмотра используйте штатные средства безопасной разработки.
- Проверьте обратное обновлениеПопросите разработчика сверить в закрытом журнале, не пишет ли обработчик после update_contact то же поле контакта ещё раз. Если пишет, добавьте проверку старого и нового значения либо признак уже обработанного события; запрещено просто отключать все вебхуки.
- Проведите одну повторную проверкуНа другом тестовом контакте измените только это поле один раз. Сравните время события и число созданных действий. Успех — один ожидаемый побочный результат; если повторилось, зафиксируйте оба источника действия и верните предыдущую конфигурацию правила.
- Подготовьте точное обращениеПередайте администратору ID тестового контакта, два времени событий и названия источников без секретов. Не удаляйте случайно созданные рабочие задачи до выяснения их назначения; исправление должно касаться именно обнаруженного цикла.
#Проверка результата
На одно изменение тестового поля контакта возникает ровно одно предусмотренное действие, а история других сделок не меняется.
#Когда обращаться к администратору
Если после проверки проблема остаётся, передайте ответственному техническому специалисту сведения о версии приложения и типе учётной записи, времени контрольного события и результате конкретного шага. Не передавайте пароли, токены, данные клиентов и рабочие файлы через незащищённый канал.