Пошаговые инструкции intermediate 21 мин

Как сделать ИИ-агента для опросов, NPS и обратной связи

Пошаговая инструкция от нуля до рабочего feedback-агента: NPS, CSAT, темы, triage, задачи, product backlog, цитаты и отчеты.

AI-агенты HubSpot Typeform NPS CSAT опросы обратная связь customer feedback SurveyMonkey

Что получится в результате

Соберем ИИ-агента, который принимает ответы из NPS, CSAT, форм обратной связи и открытых комментариев, нормализует данные, выделяет темы, считает группы NPS, находит риск оттока, создает задачи ответственным и готовит короткий отчет по инсайтам.

Первая рабочая версия будет делать так:

  1. ответы приходят из Typeform, SurveyMonkey, HubSpot, Google Forms или webhook;
  2. n8n создает строку в `feedback_queue`;
  3. исходный ответ сохраняется в `raw_responses`;
  4. агент приводит ответ к единому формату в `normalized_responses`;
  5. NPS/CSAT/CES считаются по правилам, а не “на глаз”;
  6. открытый текст классифицируется по темам из `topic_rules`;
  7. риск и приоритет считаются по `triage_rules`;
  8. негативные и срочные ответы уходят в `action_queue`;
  9. продуктовые идеи попадают в `product_backlog`;
  10. позитивные цитаты уходят в `testimonial_candidates`;
  11. повторяющиеся темы собираются в `insight_report`;
  12. ошибки и спорные ответы пишутся в `review_queue` и `error_log`.

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

Что понадобится

  • n8n Cloud или self-hosted n8n.
  • Источник ответов: Typeform, SurveyMonkey, HubSpot, Google Forms, CRM, helpdesk или webhook.
  • Google Sheets для очередей, правил, логов и отчетов.
  • LLM API для классификации тем и кратких резюме.
  • CRM или helpdesk для задач команде.
  • 50-100 тестовых ответов: положительные, нейтральные, негативные и спорные.
  • Ответственные: Customer Success, поддержка, продукт, маркетинг, продажи.
  • Правила согласия на обработку и публикацию цитат.

Шаг 1. Выберите один поток обратной связи

Не смешивайте NPS, CSAT, отзывы после вебинара и продуктовые идеи в один MVP.

Для первого прототипа выберите сценарий:

NPS после 30 дней использования продукта

Входит:

  • оценка 0-10;
  • открытый комментарий;
  • сегмент клиента;
  • владелец клиента;
  • тариф или продукт;
  • дата ответа;
  • действие при негативе;
  • отчет по повторяющимся темам.

Не входит:

  • публичная публикация отзывов;
  • автоматическая компенсация;
  • массовая рассылка клиентам;
  • изменение статуса клиента в CRM без approval;
  • обработка анонимных ответов как персональных;
  • ответы клиенту от имени менеджера без проверки.

Проверка: вы можете назвать источник ответов, метрику и команду, которая будет реагировать.

Шаг 2. Создайте структуру папок и таблиц

В Google Drive создайте папку:

Feedback AI agent
  raw_exports
  insight_reports
  review_items
  testimonials_review
  test_responses

Создайте Google Sheet:

NPS feedback AI agent

Добавьте листы:

feedback_queue
survey_sources
raw_responses
normalized_responses
topic_rules
triage_rules
action_queue
product_backlog
testimonial_candidates
review_queue
insight_report
audit_log
error_log
test_cases
settings

Проверка: n8n может писать в таблицу, а папка для отчетов создана.

Шаг 3. Настройте survey_sources

В `survey_sources` храните описание каждого опроса.

Колонки:

source_id
source_name
source_system
survey_type
metric_scale
trigger_event
owner_team
owner_email
consent_required
public_quote_allowed
is_active

Типы:

nps
csat
ces
product_feedback
event_feedback
churn_feedback
support_feedback

Пример:

nps_30d | NPS после 30 дней | Typeform | nps | 0-10 | 30 дней после активации | customer_success | csm@company.ru | yes | no | true

Проверка: у каждого источника есть владелец и понятный тип метрики.

Шаг 4. Создайте feedback_queue

В `feedback_queue` добавьте колонки:

feedback_id
created_at
source_id
source_system
response_id
customer_id
customer_email
segment
owner_email
survey_type
score
nps_group
status
risk_level
priority
assigned_team
last_error
updated_at

Статусы:

new
registered
normalizing
classifying
triage
needs_review
action_created
reported
done
error

Проверка: один тестовый ответ можно добавить со статусом `new`.

Шаг 5. Настройте сбор ответов

Создайте workflow:

Feedback intake

Минимальные узлы:

  1. `Webhook`, `Typeform Trigger`, `HTTP Request`, `HubSpot` или `Google Sheets Trigger`;
  2. `Get response payload`;
  3. `Generate feedback_id`;
  4. `Write raw_responses`;
  5. `Append feedback_queue`;
  6. `Set status = normalizing`.

В `raw_responses` храните:

feedback_id
source_system
response_id
raw_json
received_at

Проверка: новый ответ из формы создает строку в `feedback_queue` и копию исходного JSON.

Шаг 6. Нормализуйте ответ

В `normalized_responses` приведите разные формы к одному формату.

Колонки:

feedback_id
survey_type
score
open_text
language
customer_id
customer_email
customer_name
segment
plan
related_ticket_id
related_event
owner_email
consent
submitted_at

Правила:

  • если email отсутствует, не связывайте ответ с конкретным клиентом;
  • если нет consent, не используйте цитату публично;
  • если score пустой, отправляйте в review;
  • если open_text пустой, анализ тем не запускайте.

Проверка: Typeform, SurveyMonkey и HubSpot приводятся к одному набору полей.

Шаг 7. Рассчитайте NPS-группу

Для `survey_type = nps` используйте правило:

0-6 -> detractor
7-8 -> passive
9-10 -> promoter

NPS считается так:

NPS = % promoters - % detractors

Не просите LLM определять NPS-группу, это обычная формула.

Проверка: score 6 всегда `detractor`, score 8 всегда `passive`, score 10 всегда `promoter`.

Шаг 8. Создайте topic_rules

В `topic_rules` опишите темы, которые агент должен искать.

Колонки:

topic_id
topic_name
description
examples
owner_team
default_priority
is_active

Первый набор:

support_quality | качество поддержки | долго отвечали, не решили, грубо | support | high
price | цена и тарифы | дорого, непонятная оплата, скидка | sales | medium
bug | ошибка продукта | не работает, сломалось, баг | product | high
feature_request | запрос функции | не хватает, хотелось бы | product | medium
onboarding | запуск и обучение | сложно начать, непонятно | customer_success | medium
performance | скорость и стабильность | тормозит, падает | engineering | high
positive_quote | позитивная цитата | нравится, удобно, рекомендую | marketing | low
churn_risk | риск ухода | уйдем, отменим, конкурент | customer_success | high

Проверка: у каждой темы есть владелец и приоритет.

Шаг 9. Классифицируйте открытый текст

Создайте LLM-узел `Classify feedback`.

Prompt:

Классифицируй обратную связь клиента по topic_rules.
Верни только JSON.
Не выдумывай причины, которых нет в тексте.

Формат:
{
  "summary": "",
  "sentiment": "positive|neutral|negative|mixed",
  "topics": [
    {
      "topic_id": "",
      "evidence_quote": "",
      "confidence": 0.0
    }
  ],
  "customer_request": "",
  "risk_signals": [],
  "public_quote_candidate": true|false
}

Проверка: каждая тема имеет цитату из ответа клиента.

Шаг 10. Создайте triage_rules

В `triage_rules` добавьте правила приоритета.

Колонки:

rule_id
condition
risk_level
priority
assigned_team
action_type
message
is_active

Первый набор:

nps_detractor | survey_type=nps and score<=6 | high | urgent | customer_success | create_task | Связаться с клиентом
churn_words | text contains уйдем/отменим/конкурент | high | urgent | customer_success | create_task | Риск оттока
bug_high_value | topic=bug and segment=enterprise | high | urgent | product | create_issue | Баг у enterprise-клиента
support_complaint | topic=support_quality | medium | high | support | create_task | Разобрать жалобу
promoter_quote | nps_group=promoter and public_quote_candidate=true | low | normal | marketing | review_quote | Проверить цитату
feature_request | topic=feature_request | medium | normal | product | backlog_item | Добавить в backlog

Проверка: негативный NPS создает задачу, а позитивная цитата не публикуется автоматически.

Шаг 11. Выполните triage

Создайте workflow:

Feedback triage

Логика:

  1. прочитать normalized response;
  2. прочитать темы от LLM;
  3. применить `triage_rules`;
  4. рассчитать `risk_level`;
  5. рассчитать `priority`;
  6. выбрать `assigned_team`;
  7. создать действие в нужной очереди.

Если уверенность LLM по теме ниже 0.65:

status = needs_review
review_reason = low_topic_confidence

Проверка: спорные ответы уходят человеку, а не в неправильную команду.

Шаг 12. Создайте action_queue

В `action_queue` попадают задачи на реакцию.

Колонки:

action_id
feedback_id
customer_id
assigned_team
assigned_owner
action_type
task_text
evidence_quote
priority
status
due_date
created_at
closed_at

Типы действий:

create_csm_task
create_support_task
create_product_issue
create_sales_followup
review_testimonial
manual_review

Проверка: каждое действие содержит цитату и понятный следующий шаг.

Шаг 13. Создайте product_backlog

Продуктовые идеи не должны теряться в общей очереди.

Колонки:

backlog_id
feedback_id
topic_id
customer_segment
request_summary
evidence_quote
impact
status
owner_product
created_at

Impact:

high: enterprise или повторяется часто
medium: несколько клиентов или важный сценарий
low: единичная идея

Проверка: feature request попадает продукту как структурированная карточка.

Шаг 14. Создайте testimonial_candidates

Позитивные отзывы можно готовить к маркетингу, но не публиковать автоматически.

Колонки:

testimonial_id
feedback_id
customer_id
quote
context
consent
public_quote_allowed
status
reviewer
created_at

Статусы:

new
needs_consent
approved
rejected
published

Проверка: цитата без согласия получает `needs_consent`.

Шаг 15. Создайте review_queue

В `review_queue` отправляйте спорные ответы.

Колонки:

review_id
feedback_id
reason
question
assigned_owner
status
decision
decision_comment
created_at
closed_at

Причины:

low_topic_confidence
missing_score
no_consent
sensitive_data
unclear_customer
possible_abuse
duplicate_response

Проверка: агент не решает спорные случаи сам.

Шаг 16. Подготовьте ответ клиенту как черновик

Если нужен follow-up, создавайте только черновик.

Prompt:

Подготовь короткий черновик ответа клиенту.
Не обещай компенсацию.
Не спорь.
Не придумывай срок решения.
Стиль: спокойный, конкретный, с признанием проблемы.

Верни:
{
  "draft_reply": "",
  "manager_note": "",
  "needs_approval": true
}

Проверка: менеджер может быстро проверить текст перед отправкой.

Шаг 17. Обновите CRM или helpdesk через черновик

В первой версии не пишите финальные изменения напрямую.

Создайте draft update:

feedback summary
risk level
next action
task owner
due date
related quote

Статус:

draft
approved
sent
rejected

Проверка: критичные действия проходят approval.

Шаг 18. Соберите insight_report

В `insight_report` добавьте агрегированные строки.

Колонки:

report_period
survey_type
segment
nps_score
responses_count
detractors_count
passives_count
promoters_count
top_topics
top_risks
top_positive_quotes
recommended_actions
created_at

Отчет раз в неделю:

  • NPS по сегментам;
  • доля негативных ответов;
  • топ-5 тем;
  • новые продуктовые идеи;
  • риски оттока;
  • задачи, которые еще не закрыты;
  • позитивные цитаты на review.

Проверка: отчет можно отправить команде без ручной сборки из таблиц.

Шаг 19. Ведите audit_log

В `audit_log` добавьте колонки:

event_id
feedback_id
event_type
actor
source
details
created_at

Логируйте:

  • получение ответа;
  • нормализацию;
  • расчет NPS-группы;
  • классификацию тем;
  • triage;
  • создание задачи;
  • создание backlog item;
  • создание testimonial candidate;
  • review decision;
  • CRM draft;
  • отчет.

Проверка: по одному ответу можно восстановить весь путь обработки.

Шаг 20. Настройте error_log

В `error_log` добавьте колонки:

error_id
feedback_id
workflow_name
node_name
error_type
error_message
input_snapshot
status
owner
created_at

Типы ошибок:

payload_missing
source_unknown
score_invalid
llm_json_invalid
topic_rules_missing
triage_rule_missing
crm_match_failed
task_creation_failed
consent_missing

Проверка: сбой не теряется, а превращается в понятную строку.

Шаг 21. Создайте test_cases

В `test_cases` добавьте тестовые ответы.

Колонки:

test_id
survey_type
score
open_text
expected_nps_group
expected_topics
expected_risk_level
expected_action_type
last_run_at
last_result

Первый набор:

nps_10_positive_quote
nps_8_no_text
nps_2_support_complaint
nps_4_churn_risk
csat_1_bad_support
feature_request_enterprise
bug_report
price_complaint
empty_text
missing_score

Проверка: изменение prompt или правил не ломает базовую классификацию.

Шаг 22. Прогоните полный путь на одном ответе

Порядок:

  1. отправьте тестовый NPS 2 с негативным комментарием;
  2. проверьте `raw_responses`;
  3. проверьте `normalized_responses`;
  4. проверьте `nps_group = detractor`;
  5. проверьте темы из `topic_rules`;
  6. проверьте `risk_level = high`;
  7. проверьте задачу в `action_queue`;
  8. проверьте CRM draft;
  9. проверьте `audit_log`;
  10. проверьте отсутствие ошибок в `error_log`.

Проверка: от ответа клиента до задачи CSM процесс проходит без ручного копирования.

Минимальная проверка результата

Прототип работает, если выполняются все пункты:

  • ответ попадает в `feedback_queue`;
  • исходный JSON сохраняется в `raw_responses`;
  • ответ нормализуется в `normalized_responses`;
  • NPS-группа считается формулой;
  • темы определяются по `topic_rules`;
  • triage выполняется по `triage_rules`;
  • негативные ответы создают задачи в `action_queue`;
  • продуктовые идеи попадают в `product_backlog`;
  • позитивные цитаты идут в `testimonial_candidates`;
  • спорные ответы уходят в `review_queue`;
  • weekly summary появляется в `insight_report`;
  • история видна в `audit_log`;
  • ошибки пишутся в `error_log`;
  • `test_cases` проходят после изменения prompt.

Что нельзя автоматизировать в первой версии

  • обещание компенсации клиенту;
  • публичную публикацию цитат;
  • массовую рассылку ответов;
  • изменение статуса клиента без approval;
  • закрытие негативного ответа без человека;
  • раскрытие персональных данных в отчетах;
  • передачу чувствительного фидбека не той команде;
  • удаление исходных ответов;
  • трактовку анонимного ответа как персонального.

Частые вопросы

Можно ли начать без Typeform или SurveyMonkey?

Да. Для прототипа достаточно Google Sheets или webhook, куда попадают тестовые ответы. Главное - сразу привести данные к `normalized_responses`, чтобы потом легко заменить источник.

Нужно ли использовать LLM для расчета NPS?

Нет. NPS-группа и итоговый NPS считаются формулами. LLM нужен для открытого текста: темы, краткое резюме, риск, цитаты и черновик follow-up.

Можно ли агенту самому отвечать на негативный NPS?

В первой версии лучше создавать черновик ответа и задачу CSM. Негативный отзыв часто требует контекста клиента, истории обращений и аккуратного тона.

Как не потерять продуктовые идеи?

Отдельно ведите `product_backlog`. Если складывать feature requests в общую очередь с жалобами и NPS, продуктовые сигналы быстро потеряются.

Какой минимум нужен для запуска?

`feedback_queue`, `survey_sources`, `raw_responses`, `normalized_responses`, `topic_rules`, `triage_rules`, `action_queue`, `product_backlog`, `insight_report`, `audit_log`, `error_log` и 10 тестовых ответов.

Дальше по теме

Похожие материалы