Полный каталог на основе схемы см. в разделе все примеры.
Что это такое
Обработка событийcontact.attributes_changed и contact.note.updated.
Перед началом работы
- Создайте общедоступную конечную точку HTTPS в вашем приложении.
- Настройте конечную точку Webhook в YCloud для необходимых типов событий.
- Обеспечьте безопасное хранение секрета подписи конечной точки.
- Сделайте обработку событий идемпотентной.
Как это работает
YCloud отправляет HTTP-запросPOST при возникновении события. Проверьте подпись, надежно сохраните событие, верните ответ 2xx и обработайте длительные задачи асинхронно.
Запрос
Приведенные ниже сценарии демонстрируют запросы, доставляемые на ваш URL Webhook. Используйте поле событияid как идентификатор доставки, а type — для маршрутизации полезной нагрузки.
Ответ
Верните статус2xx после успешного принятия события.
Информацию о настройке конечной точки, проверке подписи и механизме повторных попыток см. в разделе Настройка 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, без внутренних идентификаторов оператора.
