amoCRM: сделки, контакты и автоматизация amoCRM с внешними интеграциями API; пользователь видит ленту, разработчик проверяет серверный журнал.

amoCRM: интеграция несколько раз добавляет одинаковое примечание к контакту

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

В ленте контакта появляются идентичные заметки, хотя оператор создавал одну запись. Отличаем повтор API от нескольких разных действий.

В этой статье
  1. Когда встречается проблема
  2. Причины и диагностические признаки
  3. Пошаговая диагностика и исправление
  4. Как проверить результат
  5. Если проблема осталась

#Когда встречается проблема

В ленте контакта появляются идентичные заметки, хотя оператор создавал одну запись. Отличаем повтор API от нескольких разных действий. amoCRM с внешними интеграциями API; пользователь видит ленту, разработчик проверяет серверный журнал.

#Причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Отправитель повторяет POST при тайм-ауте, не проверив ответПри сетевом тайм-ауте отправляется второй POST для того же события.Сравните request ID и созданные note ID.Проверьте код повторов запросов
Одно событие обрабатывают две параллельные очередиДва обработчика очереди создают две заметки на одно событие.Сверьте записи обработчиков по внешнему event ID.Добавьте защиту от дублей в интеграцию
Заметки создаются как разные типы примечаний из нескольких источниковСходные на вид записи имеют разные типы или авторов.Просмотрите тип и автора обеих записей в ленте.Определите реальное число копий

#Пошаговая диагностика и исправление

  1. Определите реальное число копийОткройте карточку контакта и в ленте событий найдите повторяющийся текст. Запишите время каждой записи, автора/интеграцию и различия содержимого. Скройте персональные данные на снимках. Ожидаемый результат: Зафиксировано, сколько отдельных заметок создано. Если не получилось: Если записи выглядят одинаково, но имеют разные типы, не удаляйте их до выяснения источника.
  2. Убедитесь, что заметка относится к контактуСкопируйте ID контакта из адреса и сравните его со связанной сделкой: примечания к контакту и к сделке — разные сущности. Переключитесь на исходную карточку и повторите поиск текста. Ожидаемый результат: Исключена ошибка просмотра одной заметки в разных карточках. Если не получилось: Если записи есть только у сделки, потребуется проверять интеграцию сделок, а не контактов.
  3. Сопоставьте время с источником событийПопросите владельца интеграции найти журнал за минуту появления заметок и идентификатор события входящего источника. Ищите два исходящих запроса на создание заметки для одного ID контакта, не раскрывая содержимое секретных полей. Ожидаемый результат: Понятно, был один запрос или несколько. Если не получилось: Если отправка не протоколируется, включите временно запись служебных идентификаторов без токенов и текста клиентских сообщений.
  4. Проверьте повтор при сетевой задержке на тестеВ тестовой среде интеграции отправьте только одно искусственное событие и сравните число созданных примечаний. Не имитируйте сетевые сбои на рабочем сервере, если это может нарушить отправку настоящих обращений. Ожидаемый результат: Один тест приводит к одной заметке. Если не получилось: Если результат плавающий, проверьте повторные задания очереди и обработчики вебхуков.
  5. Проверьте код повторов запросовРазработчик сверяет, как обрабатывается ответ POST /api/v4/contacts/{entity_id}/notes: успешный ответ и созданный ID нужно сохранять до повтора. Сетевой тайм-аут не доказывает, что запись не была создана. Ожидаемый результат: Найдено место, где один запрос превращается в повтор. Если не получилось: Если изменить интеграцию нельзя, настройте временное наблюдение и передайте разработчику пример служебного события.
  6. Добавьте защиту от дублей в интеграциюПредусмотрите на стороне отправителя уникальный ID внешнего события и сохранение результата его обработки; при повторной доставке используйте уже записанный ID примечания, а не создавайте новое. Проверяйте это сначала в тестовом аккаунте. Ожидаемый результат: Повтор одного внешнего события не создаёт вторую заметку. Если не получилось: Если система-источник не передаёт стабильный ID, согласуйте другой ключ уникальности, не используя один лишь текст.
  7. Проверьте сохранённые заметки и завершите проверкуПовторите два теста: одно событие и два разных события с одинаковым текстом. В первом случае должна появиться одна заметка, во втором — две. Старые дубликаты в рабочей карточке пока не удаляйте, чтобы не потерять аудит коммуникаций. Ожидаемый результат: Повторная доставка и независимые одинаковые сообщения различаются. Если не получилось: Если тест не проходит, верните предыдущую версию интеграции и зарегистрируйте ошибку с временными отметками.

#Как проверить результат

Одно внешнее событие при повторной доставке создаёт одну заметку; два самостоятельных события не теряются.

#Если проблема осталась

Сохраните точное время, версию приложения или тип учётной записи, один обезличенный пример, выполненные шаги и наблюдаемый результат. Обращайтесь в официальную поддержку сервиса или к администратору организации. Не публикуйте пароли, токены и персональные данные клиентов.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.