Перейти к основному содержанию
Полный каталог на основе схемы см. в разделе все примеры.

Что это такое

Обработка событий contact.attributes_changed и contact.note.updated.

Перед началом работы

  • Создайте общедоступную конечную точку HTTPS в вашем приложении.
  • Настройте конечную точку Webhook в YCloud для необходимых типов событий.
  • Обеспечьте безопасное хранение секрета подписи конечной точки.
  • Сделайте обработку событий идемпотентной.

Как это работает

YCloud отправляет HTTP-запрос POST при возникновении события. Проверьте подпись, надежно сохраните событие, верните ответ 2xx и обработайте длительные задачи асинхронно.

Запрос

Приведенные ниже сценарии демонстрируют запросы, доставляемые на ваш URL Webhook. Используйте поле события id как идентификатор доставки, а type — для маршрутизации полезной нагрузки.

Ответ

Верните статус 2xx после успешного принятия события.
Информацию о настройке конечной точки, проверке подписи и механизме повторных попыток см. в разделе Настройка Webhook.
Происходит при изменении атрибутов контакта. Полезная нагрузка Webhook содержит информацию об измененных атрибутах, включая их старые и новые значения.

Пример изменения тегов (добавление тегов)

Запрос

Ответ

Подтвердите доставку после надежного принятия события.

Пояснение

Выполняйте маршрутизацию события по type, дедупликацию — по id, а длительные или подверженные сбоям задачи передавайте асинхронному обработчику.

Пример изменения тегов (удаление тегов)

Запрос

Ответ

Подтвердите доставку после надежного принятия события.

Пояснение

Выполняйте маршрутизацию события по type, дедупликацию — по id, а длительные или подверженные сбоям задачи передавайте асинхронному обработчику.

Пример изменения

Запрос

Ответ

Подтвердите доставку после надежного принятия события.

Пояснение

  • Корректная структура: объект contactAttributesChanged содержит три обязательных поля: id, updateTime и changedAttributes.
  • Измененные атрибуты: поле changedAttributes представляет собой объект, где каждый ключ — это имя атрибута, а значение — объект ContactAttributeChange.
  • Конфигурация свойств события: при включении событий contact.attributes_changed необходимо настроить поле eventProperties в вашей конечной точке Webhook, чтобы указать, какие атрибуты должны быть включены в полезную нагрузку Webhook.
  • Типы атрибутов: поля oldValue и newValue могут содержать различные типы данных:
    • String: текстовые значения
    • Number: числовые значения (целые или десятичные)
    • Boolean: логические значения (true/false)
    • Array: массивы строк
    • Object: сложные объекты с вложенными свойствами
    • Null: когда атрибут удален или сброшен
  • Изменения тегов: для атрибутов тегов поле extra предоставляет подробную информацию о том, какие теги были добавлены или удалены, включая их идентификаторы и значения.
  • Значения Null: когда атрибут удален или установлен в null, newValue будет null. Когда атрибут добавляется впервые, oldValue может быть null.
  • Пользовательские атрибуты: пользовательские атрибуты включаются в объект changedAttributes так же, как и стандартные атрибуты, где их пользовательские ключи выступают в качестве имен атрибутов.
  • Определение изменений: в объект changedAttributes включаются только те атрибуты, которые действительно изменились.
  • Дополнительное поле: поле extra является необязательным и используется преимущественно для изменений, связанных с тегами, предоставляя дополнительный контекст о выполненных действиях.

Заметка контакта обновлена

Используйте contact.note.updated, когда обновляется заметка контакта.

Запрос

Ответ

Подтвердите доставку после надежного принятия события.

Пояснение

Используйте contactNote.id для идентификации заметки и contactId для идентификации связанного с ней контакта. Поля username и phoneNumber описывают контакт и могут иметь значение null. Полезная нагрузка содержит моментальный снимок заметки для клиента, включая content, без внутренних идентификаторов оператора.