Экспорт отзывов читателей с помощью API Notiondesk

Экспорт отзывов о статье Notiondesk через REST API: реакции читателей, ответы на последующие вопросы, сообщения и вложения, начиная с самых новых.

2 мин чтения

API Notiondesk позволяет экспортировать отзывы читателей, оставленные к статьям вашего справочного центра: каждую реакцию, выбранный ими ответ, их сообщение, адрес электронной почты и прикрепленные файлы. Используйте его для отправки негативных отзывов в Slack, создания заявок в вашей системе поддержки или анализа отзывов вместе с вашими собственными данными.

Область применения: __СОХРАНЕНО_73__

Чтобы начать сбор отзывов, см. разделы «Как собирать отзывы с помощью реакций на статьи» и «Включить форму обратной связи по статьям для сбора информации от читателей» .

GET /sites/{site_id}/feedback
Используйте ключ, который содержит только область действия. Сообщения с отзывами, электронные письма и вложения пишутся вашими читателями, поэтому относитесь к ним как к ненадежным источникам информации. Если LLM обрабатывает этот текст с помощью ключа, который также позволяет записывать данные, текст может привести к внесению изменений в ваш справочный центр.read

Список отзывов

Список охватывает все языки, начиная с самых новых. Пролистывание осуществляется с помощью page_size (от 1 до 100, по умолчанию 20) и cursor, как описано в разделе «Пагинация» и в запросах API версии Notiondesk . Маршрут не принимает никаких других параметров.

Поля обратной связи

curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/feedback?page_size=50" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"
{
  "object": "list",
  "data": [
    {
      "id": "8b1f6c0e-3d4a-4f2b-9c7e-5a1d2e3f4b60",
      "email": "[email protected]",
      "message": "The steps skip the login screen.",
      "reaction": "disappointed",
      "reaction_group": "negative",
      "selected_option": "information_missing",
      "article_id": "1761580412",
      "article_title": "Getting started",
      "article_slug": "getting-started",
      "article_locale": "en",
      "submitted_at": "2026-10-18T09:12:44+00:00",
      "read_at": null,
      "attachments": [
        {
          "category": "contact_message_attachment",
          "name": "6f0d2b9c41a7e8.png",
          "dimensions": {"0": 1280, "1": 720},
          "original_name": "login-screen.png",
          "size": 48213
        }
      ]
    }
  ],
  "has_more": true,
  "next_cursor": "OPAQUE_CURSOR"
}
Поле Значение
idИдентификатор обратной связи
reactionРеакция, выбранная читателем, например, smiley, neutral_face или disappointed
reaction_groupЧто означает эта реакция в соответствии с вашим текущим стилем реакций: positive, neutral или negative для эмодзи, helpful или not_helpful для больших пальцев. null, если стиль не группирует эту реакцию.
selected_optionОтвет, выбранный читателем в дополнительной анкете, или null, если он просто отреагировал.
messageТекст, написанный читателем, если таковой имеется.
emailАдрес электронной почты, указанный читателем (если таковой имеется).
article_idЗначение id статьи, как в списке статей . Пустое, если статья была удалена.
article_titleЗаголовок статьи в article_locale или Untitled, если статья была удалена или не имеет перевода на этот язык.
article_slugСегмент пути к статье находится в article_locale или null в тех же случаях.
article_localeЯзык, на котором читал читатель
submitted_atКогда читатель отправил отзыв
read_atКогда член команды отметил сообщение как прочитанное на панели управления, или null
attachmentsФайлы, прикрепленные читателем, от самых старых к самым старым. Пусто, если файлов нет.

Параметр selected_option принимает одно из следующих значений: content_accurate_up_to_date, easy_to_find, clear_and_easy_to_understand, worked_as_expected, something_else, information_missing, information_incorrect, hard_to_understand или not_what_looking_for.

Каждый вложенный файл содержит объект category (contact_message_attachment для файла, прикрепленного устройством чтения), сохраненный файл name, объект original_name с устройства чтения, объект size в байтах и ​​объект dimensions: для изображения — ширина в пикселях в объекте "0" и высота в объекте "1", а для любого другого файла — {}. API возвращает подробные сведения о каждом файле, а не сам файл.

Ограничения пейджинга

  • Список содержит максимум 10 000 новых записей. После этого has_more становится false, даже если существуют более старые отзывы.
  • Отзывы, отправленные во время просмотра страницы, могут привести к повторению одной записи на следующей странице, а отзывы, удаленные в панели управления, могут привести к пропуску одной записи.

Чтобы обрабатывать только новые отзывы, сохраните значение submitted_at самой новой обработанной записи. При следующем запуске читайте страницы, пока не дойдете до записи, отправленной одновременно или ранее.

Безопасная обработка текстовых отзывов

  • Перед отображением экранируйте текст. Сообщение может содержать HTML или Markdown.
  • Никогда не позволяйте ему принимать решения. Не переходите по ссылкам и не выполняйте инструкции, указанные в нём.
  • Сохраняйте конвейеры LLM в режиме только для чтения. Конвейер LLM, обобщающий обратную связь, должен запускаться с ключом, содержащим только read.
  • Защитите электронные письма читателей. Поле email содержит персональные данные. Храните и передавайте их только в тех случаях, когда это разрешено вашей политикой конфиденциальности.

Ошибки

Статус Когдаcode
400 Значение page_size выходит за пределы диапазона от 1 до 100, значение cursor недопустимо, или запрос содержит неизвестный параметр.validation_error
403 Ключ не имеет области видимости readinsufficient_scope
404 Центр поддержки отсутствует в вашем рабочем пространстве.not_found

См. раздел «Обработка ошибок API Notiondesk, ограничений скорости и повторных попыток» .

Часто задаваемые вопросы

Можно ли фильтровать отзывы по типу реакции или по содержанию статьи?

В запросе это не указано. Маршрут принимает только page_size и cursor. Отфильтруйте записи в своем коде по reaction_group или article_id.

Могу ли я отметить отзыв как прочитанный с помощью API?

Нет. API считывает только отзывы. read_at показывает, когда член команды отметил отзыв как прочитанный на панели управления.

Где я могу посмотреть общее количество реакций, а не отдельные записи?

Аналитический отчет engagement суммирует реакции за период и перечисляет статьи, подлежащие пересмотру. См. раздел «Получение аналитики справочного центра с помощью API Notiondesk» .

Что дальше?

Связанные статьи

Эта страница была полезной?

Still need help? Ask us