Справочник: события и структура вебхуков
Перечень событий Aplaut, служебные поля вебхука и примеры тел запросов по каждому типу контента
Aplaut отправляет вебхук при наступлении события с отзывом, комментарием, вопросом, ответом, ответом на опрос, диалогом или товаром. Тело запроса — JSON с полным набором полей соответствующего типа контента. Порядок подключения описан в инструкции «Как получать вебхуки о событиях Aplaut».
Формат запроса
Aplaut отправляет POST на указанный URL. Тело — JSON, редиректы отслеживаются автоматически.
| Заголовок | Значение |
|---|---|
Content-Type | application/json |
Accept-Encoding | application/json |
User-Agent | Aplaut-Hookshot/ |
X-Aplaut-Event | Идентификатор события, то же значение, что в поле event тела |
X-Aplaut-Delivery | Идентификатор доставки, уникальный для каждой отправки |
Если секрет передаётся заголовком, к списку добавляется заголовок с именем, заданным при подключении.
Успешной доставкой считается ответ с кодом 200–299. Любой другой код, а также отсутствие ответа за таймаут подключения (1–5 секунд, по умолчанию 1) — ошибка доставки.
Служебные поля
Присутствуют в теле любого вебхука.
| Параметр | Тип | Описание |
|---|---|---|
event | string | Идентификатор события из таблицы ниже |
hook_id | string | Идентификатор настроенного вебхука |
secret | string | null | Значение, заданное при подключении. null, если не задано. Используется вместо аутентификации |
События
| Тип контента | Действие | Значение event |
|---|---|---|
| Отзыв | Создание | create_review |
| Отзыв | Обновление | update_review |
| Отзыв | Удаление | destroy_review |
| Отзыв | Публикация | publish_review |
| Отзыв | Бан | ban_review |
| Отзыв | Удержание | hold_review |
| Отзыв | Обновление тегов | update_review_tags |
| Отзыв | Дополнение | supplement_review |
| Комментарий к отзыву | Создание | create_comment |
| Комментарий к отзыву | Обновление | update_comment |
| Комментарий к отзыву | Удаление | destroy_comment |
| Комментарий к отзыву | Публикация | publish_comment |
| Комментарий к отзыву | Бан | ban_comment |
| Комментарий к отзыву | Обновление тегов | update_comment_tags |
| Вопрос | Создание | create_question |
| Вопрос | Обновление | update_question |
| Вопрос | Удаление | destroy_question |
| Вопрос | Публикация | publish_question |
| Вопрос | Бан | ban_question |
| Вопрос | Обновление тегов | update_question_tags |
| Ответ на вопрос | Создание | create_answer |
| Ответ на вопрос | Обновление | update_answer |
| Ответ на вопрос | Удаление | destroy_answer |
| Ответ на вопрос | Публикация | publish_answer |
| Ответ на вопрос | Бан | ban_answer |
| Ответ на вопрос | Обновление тегов | update_answer_tags |
| Ответ на опрос | Создание | create_survey_response |
| Ответ на опрос | Обновление тегов | update_survey_response_tags |
| Диалог | Создание | create_conversation |
| Товар | Пересчёт атрибутов | recalculate_product_attributes |
Один вебхук настраивается на несколько событий сразу.
Отзыв
Тело содержит поля отзыва, вложенный массив comments с комментариями к нему и вложенный объект product.
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор отзыва |
context_type | string | Тип контекста отзыва, например product |
origin | string | Источник отзыва, например omnibox |
state | string | Состояние отзыва, например published |
product_id | string | Идентификатор товара в Aplaut |
{
"event": "create_review",
"secret": null,
"hook_id": "685e7fd7a5ab750014729873",
"id": "613f59762f42f80012220938",
"created_at": "2021-09-13T17:00:22.176+03:00",
"updated_at": "2021-09-13T17:00:22.176+03:00",
"context_type": "product",
"external_id": null,
"rating": 5.0,
"rating_details": [
{
"label": "Качество",
"name": "quality",
"value": 5
}
],
"author_details": [
{
"label": "Возраст",
"name": "age",
"value": "27"
}
],
"lang": "ru",
"body": "Текст отзыва",
"pros": null,
"cons": null,
"published_at": null,
"imported_at": "2021-09-13T17:00:22.151+03:00",
"author_name": "Константин",
"author_email": null,
"author_phone": null,
"origin": "omnibox",
"syndication_source": null,
"state": "published",
"product_id": "5ac6c4514b25650007dfbb7b",
"photos": ["https://yoursite.ru/picture1.png", "https://yoursite.ru/picture2.png"],
"videos": ["https://yoursite.ru/video1.mp4"],
"tags": ["Тег_1", "Тег_2"],
"recommended": true,
"custom_attributes": {
"submitted_product_id": "1234567",
"custom_attribute_1": "qwerty"
},
"location_name": "Санкт-Петербург",
"likes": 0,
"dislikes": 0,
"order_number": null,
"custom_source": null,
"custom_medium": null,
"custom_campaign": null,
"location": {
"continent_code": "EU",
"continent": "Европа",
"country_code": "RU",
"country": "Россия",
"city": "Санкт-Петербург",
"postal_code": "190000",
"latitude": 59.9386,
"longitude": 30.3141,
"time_zone": "Europe/Moscow",
"client_ip": "203.0.113.17"
},
"comments": [
{
"id": "667278394180740012223453",
"commentable_id": "667277cfed85740011223452",
"commentable_type": "Review",
"text": "Текст комментария",
"author_name": "Имя",
"author_email": "yourname@yourmail.ru",
"author_phone": "123123",
"author_type": "User",
"state": "published",
"lang": "ru"
}
],
"product": {
"name": "Наименование товара",
"url": "https://yoursite.ru/products/11111111",
"external_id": "11111111",
"alias": null,
"group_id": null,
"category_name": "Наименование категории",
"brand_name": null,
"description": "Описание товара",
"recommended_product_ids": [],
"custom_attributes": {},
"reviews_count": 15,
"questions_count": 0,
"published_group_reviews_count": 13,
"published_group_questions_count": 0,
"rating": 3.25,
"rating_details": [],
"recommended": 53.84615384615385,
"created_at": "2018-04-06T03:50:25.367+03:00",
"updated_at": "2021-09-13T07:37:43.112+03:00"
}
}
Комментарий к отзыву
Комментарий приходит и отдельным вебхуком, и вложенным в массив comments вебхука отзыва. Поле commentable_type указывает, к чему относится комментарий: к отзыву (Review) или к другому комментарию.
{
"event": "create_comment",
"secret": "1234567",
"hook_id": "694d893a8764294ff69741a8",
"id": "69a44d65af131bf8d9998765",
"commentable_id": "69a4342d7b50ae8ad2224456",
"commentable_type": "Review",
"commentable_external_id": null,
"text": "Текст комментария на отзыв или комментарий",
"author_name": "Юрий",
"author_email": "yourname@yourmail.ru",
"author_type": "User",
"state": "published",
"lang": "ru"
}
Вопрос
Тело содержит поля вопроса, вложенный массив answers с ответами на него и объект product.
{
"event": "update_question",
"secret": "123456789",
"hook_id": "69a564bdf6e9307f6a123456",
"id": "69a48cb8b03e53af51234567",
"created_at": "2026-03-01T20:17:42.249+03:00",
"updated_at": "2026-03-02T13:22:28.342+03:00",
"context_type": "product",
"external_id": null,
"product_id": "665b6fc67ce94c00012e4785",
"lang": "ru",
"body": "Текст вопроса",
"published_at": "2026-03-01T20:17:42.249+03:00",
"author_name": "Надежда",
"author_email": "yourname@yourmail.ru",
"origin": "submissions_api",
"state": "published",
"tags": ["test"],
"location": {},
"product": {
"name": "Наименование товара",
"url": "https://yoursite.ru/product/123456/",
"external_id": "123456",
"alias": null,
"group_id": "234567",
"category_name": "Наименование категории",
"brand_name": "Наименование бренда",
"description": null,
"picture_urls": ["https://cdn.yoursite.ru/media_content/115021920299.jpg"],
"price": 0,
"available": true,
"recommended_product_ids": [],
"custom_attributes": {},
"reviews_count": 2,
"questions_count": 2,
"published_group_reviews_count": 1,
"published_group_questions_count": 1,
"rating": 4,
"rating_details": [
{ "name": "reliability", "value": 0.6, "label": "Надежность" },
{ "name": "functionality", "value": 0.6, "label": "Функциональность" }
],
"recommended": 0,
"created_at": "2024-02-29T02:15:25.712+03:00",
"updated_at": "2025-05-26T16:34:36.453+03:00",
"published_photos_count": 0,
"published_kinescope_assets_count": 0,
"published_mux_assets_count": 0,
"published_group_photos_count": 0,
"published_group_kinescope_assets_count": 0,
"published_group_mux_assets_count": 0,
"published_partial_rating": 4,
"published_partial_reviews_count": 1
},
"answers": [
{
"id": "69a48cb9b03e53af52345678",
"question_id": "69a48cb8b03e53af51234567",
"text": "Ответ на вопрос",
"author_name": "Олеся",
"author_email": "yourname@yourmail.ru",
"author_type": "Consumer",
"state": "published",
"lang": "ru"
}
]
}
Ответ на вопрос
Ответ приходит и отдельным вебхуком, и вложенным в массив answers вебхука вопроса. Поле question_id связывает ответ с вопросом.
{
"event": "create_answer",
"secret": "123456789",
"hook_id": "69a564bdf6e9307f6a444000",
"id": "69a565173d9cca1064511400",
"question_id": "69a48cb8b03e53af5111222",
"text": "Текст ответа на вопрос",
"author_name": "Алексей",
"author_email": "yourname@yourmail.ru",
"author_type": "User",
"state": "published",
"lang": "ru"
}
Ответ на опрос
Массив answers содержит по одному объекту на вопрос опроса. Поле question_order задаёт порядок вопросов, question_params — параметры вопроса на момент ответа.
{
"event": "create_survey_response",
"secret": "1234567",
"hook_id": "69a56aecfd7eac6c923305485",
"id": "69a56b07f6e9307f697462358",
"started_at": "2026-03-02T13:48:22.023+03:00",
"created_at": "2026-03-02T13:48:40.009+03:00",
"updated_at": "2026-03-02T13:48:40.009+03:00",
"author_name": null,
"author_email": null,
"tags": [],
"custom_attributes": {},
"order_number": null,
"location": {
"continent_code": "EU",
"continent": "Европа",
"country_code": "RU",
"country": "Россия",
"city": "Москва",
"postal_code": "101000",
"latitude": 55.7558,
"longitude": 37.6173,
"time_zone": "Europe/Moscow",
"client_ip": "203.0.113.42"
},
"answers": [
{
"value": ["Вариант 1"],
"value_type": "string",
"question_id": "635a79233022e400172505a6",
"question_type": "ChoiceQuestion",
"question_text": "Текст вопроса 1",
"question_params": {
"required": true,
"options": ["Вариант 1", "Вариант 2", "Вариант 3"],
"multiple": false
},
"question_order": 0
},
{
"value": ["Вариант 1"],
"value_type": "string",
"question_id": "635a7a9b3022e40012250b83",
"question_type": "ChoiceQuestion",
"question_text": "Текст вопроса 2",
"question_params": {
"required": true,
"options": ["Вариант 1", "Вариант 2"],
"multiple": null
},
"question_order": 1
}
]
}
Диалог
Массив items содержит сообщения диалога. Поле state диалога принимает значение open при создании.
{
"event": "create_conversation",
"secret": "1234567",
"hook_id": "69a568457b50ae8ad2223334",
"context_type": "product",
"created_at": "2026-03-02T13:38:56.898+03:00",
"updated_at": "2026-03-02T13:38:56.898+03:00",
"origin": "submissions_api",
"state": "open",
"product": {
"name": "Наименование товара",
"url": "https://yoursite.ru/product/12345066/",
"external_id": "12345066",
"alias": null,
"group_id": null,
"category_name": "Наименование категории",
"brand_name": "Наименование бренда",
"description": null,
"picture_urls": ["https://cdn.yoursite.ru/media_content/115021920299.jpg"],
"price": 0,
"available": true,
"recommended_product_ids": [],
"custom_attributes": {
"attribute_1": null,
"attribute_2": "49156459"
},
"reviews_count": 1,
"questions_count": 0,
"published_group_reviews_count": 1,
"published_group_questions_count": 0,
"rating": 5,
"rating_details": [],
"recommended": null,
"created_at": "2023-12-23T02:12:48.360+03:00",
"updated_at": "2026-03-01T20:40:48.603+03:00",
"published_photos_count": 0,
"published_kinescope_assets_count": 0,
"published_mux_assets_count": 0,
"published_group_photos_count": 0,
"published_group_kinescope_assets_count": 0,
"published_group_mux_assets_count": 0,
"published_partial_rating": 5,
"published_partial_reviews_count": 1
},
"items": [
{
"_id": "69a568c034934ed10e79af72",
"author_avatar_url": null,
"author_email": "yourname@yourmail.ru",
"author_external_id": "12312333",
"author_first_name": "Алексей",
"author_id": "63621845dfd11f0017a4604e",
"author_name": "Алексей",
"author_occupation": null,
"author_type": "Consumer",
"created_at": "2026-03-02T13:38:56.905+03:00",
"hide_my_data": false,
"origin_photo_urls": null,
"origin_video_urls": null,
"text": "Текст сообщения",
"updated_at": "2026-03-02T13:38:56.905+03:00"
}
]
}
Товар
Отличается от остальных типов: поля товара лежат в корне объекта, а не во вложенном product.
{
"event": "recalculate_product_attributes",
"secret": null,
"hook_id": "69bac0b5fce35f6b576cbde9",
"name": "Наименование товара",
"url": "https://yoursite.ru/product/31879280299/",
"external_id": "31879280299",
"alias": null,
"group_id": "164251380299",
"category_name": "Наименование категории",
"brand_name": "Наименование бренда",
"description": null,
"picture_urls": ["https://cdn.yoursite.ru/media_content/136019610299.jpg"],
"price": 0.0,
"available": true,
"recommended_product_ids": [],
"custom_attributes": {},
"reviews_count": 6,
"questions_count": 0,
"published_group_reviews_count": 65,
"published_group_questions_count": 0,
"rating": 4.9,
"rating_details": [
{ "name": "reliability", "value": 0.959375, "label": "Надежность" },
{ "name": "functionality", "value": 0.9733333333333333, "label": "Функциональность" }
],
"recommended": 96.875,
"created_at": "2024-11-17T08:28:13.562+03:00",
"updated_at": "2025-03-26T17:45:35.543+03:00",
"published_photos_count": 0,
"published_kinescope_assets_count": 0,
"published_mux_assets_count": 0,
"published_group_photos_count": 4,
"published_group_kinescope_assets_count": 0,
"published_group_mux_assets_count": 0,
"published_partial_rating": 5.0,
"published_partial_reviews_count": 3
}
Поведение при доставке
| Свойство | Значение |
|---|---|
| Фильтры по содержимому | Не поддерживаются |
| Настройка состава полей | Не поддерживается, отправляются все поля типа контента |
| Аутентификация | Только через секрет: в поле secret тела или в заголовке, имя которого задаётся при подключении |
| Повтор при ошибке | Отправка повторяется до 52 раз |
| Логирование | Доставки вебхуков, подключённых через раздел «Интеграции», попадают в журнал запусков: и успешные, и ошибочные, хранятся 90 дней. Доставки вебхуков, подключённых вне этого раздела, в личном кабинете не видны |
Одно событие может прийти несколько раз из-за повторов. Обработчик на стороне получателя должен обрабатывать одинаковые события без повторного изменения состояния.
Смотрите также: Как получать вебхуки о событиях Aplaut.