Как настроить передачу событий во внешние сервисы?

В статье описано как настроить передачу данных из Aplaut во внешние системы, например системы лояльности

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

Для настройки этого нам необходимо:

  1. Дать нам URL, на который нужно отправлять вебхуки.
  2. Если установлена защита по IP, добавить наши IP в список разрешенных, предварительно уточнив их у своего менеджера или в чате технической поддержки.
  3. Сообщить на какие события и по какому типу контента отправлять вебхуки.

Пример вебхука для отзыва (формат JSON):

{   
  "event": "create_review",
  "secret": null,
  "hook_id": "685e7fd7a5ab75001c624df2",

  "id": "613f59762f42f8001932b595", (тип — string (ID отзыва))   
  "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": "Email:",       
      "name": "email",       
      "value": "test@test.com"     
    }
  ],   
  "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,   
  "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","https://yoursite.ru/video2.mp4"],   
  "tags": ["Тег_1", "Тег_2", "Тег_3"],   
  "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": "",     
    "latitude": ,     
    "longitude": ,     
    "time_zone": "Europe/Moscow",     
    "client_ip": ""
  },   
  "comments": [
    {
      "id":"66727839418074001669e0c3",
      "commentable_id":"667277cfed85740019141206",
      "commentable_type":"Review",
      "text":"Спасибо за отзыв!",
      "author_name":"Имя",
      "author_email":"yourname@yourmail.ru",
      "author_phone": "123123",
      "author_type":"User",
      "state":"published",
      "lang":"ru"
    }
  ],
  "product": {     
  "name": "Саморезы по дереву 4.0x40 мм потайная головка конструкционный (500 шт.)",
  "url": "https://yoursite.ru/",
  "external_id": "11111111", (тип — string (Внешний ID товара (offer.id в YML файле)))
  "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"
}
}

Типы контента и события, на которые можно настроить отправку вебхука:

  1. Отзыв:
    1. Бан = ban_review
    2. Обновление = update_review 
    3. Обновление тегов = update_review_tags 
    4. Публикация = publish_review 
    5. Создание =  create_review 
    6. Удаление = destroy_review 
    7. Удержание = held_review
  2. Комментарий к отзыву:
    1. Создание = create_comment
    2. Обновление = update_comment
    3. Удаление = destroy_comment
  3. Вопрос:
    1. Создание = create_question
    2. Обновление = update_question
    3. Удаление = destroy_question
  4. Ответ на опрос:
    1. Создание = create_survey_response
    2. Обновление тегов = update_survey_response_tags
  5. Ответ на вопрос:
    1. Создание = create_answer
    2. Обновление = update_answer
    3. Удаление = destroy_answer
  6. Диалог:
    1. Создание = create_conversation

Примечания.

  • В теле вебхука есть параметр secret , в который можно записать любое значение в формате строки и использовать вместо аутентификации. Аутентификация другими способами, на данный момент, не поддерживается.
  • В вебхуках не предусмотрены дополнительные фильтры, а также не настраивается содержание ответа, всегда отправляются все данные, содержащиеся в определенном типе контента;
  • Если в ответ на отправку вебхука мы получаем ошибку, он отправится снова еще несколько раз;
  • Один вебхук можно настроить на несколько событий;
  • Ответ на успешный запрос мы не логируем (логируются только ошибки).
👆 На этом пока всё