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