К основному содержимому

Удержание — сохранить клиентов до того, как вы их потеряете: действуйте по каждому неудовлетворённому ответу по электронной почте или в HubSpot

Как только клиент поставит низкую оценку в вашей анкете Survio, вы получите уведомление по электронной почте с полным ответом или задачу на звонок в карточке контакта HubSpot, чтобы связаться с клиентом до того, как он уйдёт.

Автор: Success Team Survio

Какой вариант для вас?

Вариант A — простой, для всех: получайте каждый неудовлетворённый ответ анкеты прямо на вашу электронную почту.

Вариант B — для команд, использующих CRM: для каждого недовольного клиента автоматически создаётся задача на звонок в HubSpot, чтобы ваша команда связалась с ним в этот же день.

Когда клиент недоволен, первые часы определяют, останется ли он. С этой настройкой каждый низкий балл в вашей анкете быстро доходит до вас вместе с полным ответом и контактами клиента — так что вы сможете оперативно позвонить или написать, пока это важно.
​

Вот уведомление по электронной почте, которое вы будете получать за каждый неудовлетворённый ответ в варианте A:
​

Unhappy customer e-mail in Gmail with the whole response


​

А это задача на звонок, которую ваша команда получит в HubSpot в варианте B:
​

Call unhappy customer task on a HubSpot contact with the whole response

Как это работает. Survio отправляет каждый завершённый ответ на URL вебхука. Инструмент автоматизации (мы используем n8n в этом руководстве) получает эти данные, проверяет, недоволен ли клиент, и, если да — уведомляет вас по электронной почте или создаёт задачу в HubSpot. Удовлетворённые ответы игнорируются.

Впервые работаете с вебхуками в Survio? Начните со статьи Вебхуки: отправляйте ответы в другие инструменты в режиме реального времени, затем возвращайтесь сюда.
​

Что вы создадите

В обоих вариантах неудовлетворённый ответ — это оценка 1 или 2 из 5, либо вариант ответа «Скорее неудовлетворён(а)» или «Неудовлетворён(а)».

В двух словах

Вариант A: письмо на почту

Вариант B: задача в HubSpot

Результат

Полный ответ поступает в вашу электронную почту

Создаётся задача на звонок на карточке контакта в HubSpot, к которой прикреплён весь ответ

Инструменты

Survio, n8n, Gmail

Survio, n8n, HubSpot

Лучше всего подходит

Владельцу, который самостоятельно работает с недовольными клиентами

Команде, работающей с клиентами в CRM

Перед началом

  • Анкета Survio на платном тарифе. Вебхуки недоступны на плане Free, и для каждого тарифа действует лимит по числу вебхуков на анкету (см. статью о вебхуках).

  • Аккаунт n8n, n8n Cloud или самостоятельная установка.

  • Вариант A: аккаунт Gmail для уведомлений. Вариант B: аккаунт HubSpot.

В этом руководстве мы используем короткую анкету удовлетворённости клиента: стар-рейтинг, одиночный выбор «В целом, насколько вы удовлетворены?», вопрос «Как вы совершили покупку в этот раз?», открытый комментарий и необязательный вопрос про электронную почту.
​

Шаг 1 — убедитесь, что вы знаете, кто ответил

Зная, кто ответил, вы сможете связаться с клиентом, но это необязательно. Без этого в варианте A вы всё равно получаете неудовлетворённые ответы и видите, в чём была проблема — просто не узнаете, кто написал. Для варианта B обязательно нужен e-mail клиента, потому что HubSpot привязывает задачу к контакту.

Ответы в Survio анонимны, если вы не собираете контакт. Используйте один или несколько способов:

  • Необязательный вопрос о электронной почте в конце анкеты, например: «Оставьте ваш e-mail, если хотите получить обратную связь». Используйте тип вопроса Ответ по e-mail.

  • Пользовательские URL параметры с данными клиента. Перейдите в Сбор ответов → Пользовательские URL параметры, создайте параметры, такие как email и order-id, и добавляйте их значения в ссылку для клиента, например в письме с подтверждением заказа. Имена параметров не могут содержать символ подчёркивания. См. Пользовательские URL параметры.

  • Survio приглашения по электронной почте. Отправьте анкету клиентам через электронные приглашения Survio, и каждый ответ будет содержать e-mail адрес, на который отправлялось приглашение. Подробнее — в E-mail приглашения.

E-mail answer question in the Survio survey editor
URL parameters email and order-id in Survio
Survey link with the email and order-id parameters


​

Шаг 2 — создайте вебхук в n8n

  1. В n8n создайте новый workflow и добавьте узел Webhook в качестве триггера.

  2. Установите HTTP Method на POST.

  3. Перейдите на вкладку Production URL и скопируйте адрес.

  4. Нажмите Publish. Production URL принимает данные только после публикации workflow.

n8n Webhook node with HTTP Method POST and the Production URL tab
Published button in the n8n editor

Используйте Production URL, а не Test URL. Test URL работает только пока редактор ожидает тестовое событие, поэтому доставки Survio прекращаются, как только вы закрываете редактор. Survio пробует повторно доставить до суток, через 5 дней неудач вебхук отключается.

Шаг 3 — подключите анкету в Survio

  1. Откройте анкету и перейдите в Сбор ответов.

  2. В левой панели, под Автоматизация и интеграции, выберите Вебхуки и нажмите + Добавить вебхук.

  3. Вставьте Production URL из n8n в Webhook URL и нажмите Сохранить вебхук. Вебхук активируется сразу.

Add a webhook dialog in Survio with the n8n Production URL filled in
Saved webhook in Survio, switched on


​

Шаг 4 — отправьте тестовый ответ и найдите id вопросов

  1. Откройте анкету по обычной ссылке и отдайте один полный ответ с низкой оценкой. Survio отправляет только полностью завершённые ответы, поэтому проходите до конца.

  2. В n8n откройте вкладку Executions. Новый ответ поступит в течение нескольких секунд.

  3. Откройте выполнение и щёлкните по узлу Webhook. Разверните body, далее data, далее answers. Каждый ответ показывает свой question.id, label и answer.

  4. Запишите id вопроса с рейтингом, вопроса об удовлетворённости и вопроса о e-mail. Можно также нажать Pin, чтобы продолжить работу с этим ответом.

Executions tab in n8n with successful runs
Webhook node output in n8n: body, data, answers

Где берётся e-mail клиента. data.email заполняется только если анкета отправлена через Survio приглашения по электронной почте. E-mail из вопроса анкеты уходит в его ответ, а из пользовательского URL параметра — в data.parameters. Готовые сценарии проверяют все три варианта.

Вариант A — получить e-mail за каждый неудовлетворённый ответ

После вебхука два шага: Недоволен? пропускает только неудовлетворённые ответы, Переслать ответ отправляет их вам по электронной почте.

Недоволен?

  1. Добавьте после Webhook узел If и переименуйте его в Недоволен?.

  2. Добавьте три условия и объедините их оператором ИЛИ, чтобы достаточно было любого:

Значение

Условие

Сравнить с

{{ $json.body.data.answers.find(a => a.question.id === 90403153)?.answer ?? 99 }}

Число: меньше или равно

2

{{ $json.body.data.answers.find(a => a.question.id === 90403151)?.answer?.labels?.[0] ?? "" }}

Строка: равно

Скорее неудовлетворён(а)

{{ $json.body.data.answers.find(a => a.question.id === 90403151)?.answer?.labels?.[0] ?? "" }}

Строка: равно

Неудовлетворён(а)

Замените 90403153 (рейтинг) и 90403151 (вопрос об удовлетворённости) на свои id. ?? 99 нужен, чтобы отсутствие оценки считалось за удовлетворённый ответ.

If node Unhappy? with three conditions combined with OR

Текст ответов должен совпадать точно. Впишите варианты точно так, как они указаны в вашей анкете. Если опрос переведён на несколько языков, ответы поступают на языке респондента — проверьте тестовые ответы на каждом языке и добавьте эти варианты.

Переслать ответ

  1. Добавьте Gmail на выход true из Недоволен?, назовите Переслать ответ и выберите Message и Send.

  2. Подключите ваш Gmail и в Кому укажите ваш адрес.

  3. В Subject укажите Недовольный клиент: {{ $json.body.data.answers.find(a => a.question.id === 90403153)?.answer ?? "?" }}/5.

  4. Поставьте Email Type — HTML. В Message выведите весь ответ. Шаблон ниже перечисляет вопросы с ответами, плюс время, заказ и контакт.

  5. В разделе Options отключите Append n8n Attribution.

Gmail node Forward the response with To, Subject and Message

Выход false оставьте пустым: удовлетворённые ответы обрабатываться не будут. Не забудьте снова нажать Publish: изменения вступают в силу только после публикации.

n8n workflow: Survio Webhook, Unhappy?, Forward the response


​

Вариант B — создать задачу на звонок в HubSpot

В этом случае неудовлетворённый ответ становится задачей связаться с клиентом сегодня, на его карточке в HubSpot с полным ответом в задаче. Для поиска контакта в HubSpot нужен e-mail клиента, поэтому этот вариант подходит, если используете Survio приглашения по электронной почте или URL-параметр email (см. шаг 1).
​

Начните с того же узла Недоволен?, что и для варианта А, затем добавьте три шага на выходе true.
​

Подготовить задачу

Добавьте узел Edit Fields (Set) с именем Подготовить задачу со следующими строковыми полями. Замените id вопросов на свои, Europe/Prague — на свой часовой пояс.

Имя поля

Значение

E-mail

{{ $json.body.data.email || $json.body.data.parameters?.email || $json.body.data.answers.find(a => a.question.id === 90403187)?.answer || "" }}

Тема

Позвонить недовольному клиенту: {{ $json.body.data.answers.find(a => a.question.id === 90403153)?.answer }}/5, заказ {{ $json.body.data.parameters?.['order-id'] }}

Текст

Оценка, удовлетворённость, канал, комментарий, заказ и время, разделённые <br>, чтобы каждая строка отображалась отдельно в HubSpot (см. шаблон)

Найти или создать контакт

Добавьте узел HubSpot с именем Найти или создать контакт, выберите ресурс Contact и действие Create or Update, подключите свой HubSpot аккаунт, email укажите как {{ $json['E-mail'] }}. Существующий клиент будет найден по e-mail, новый — создан.
​

Создать задачу на звонок

  1. Добавьте ещё один узел HubSpot с именем Создать задачу на звонок и выберите ресурс Engagement, действие Create и тип Task.

  2. Укажите Due Date как {{ $now.endOf('day').toISO() }}, чтобы задача назначалась на сегодня.

  3. В Body укажите {{ $('Prepare task').item.json.Body }}, For Object Type — Contact, Status — Not Started, Subject — {{ $('Prepare task').item.json.Subject }}.

  4. В разделе Engagement Properties → Associations укажите Contact IDs как {{ $json.vid }}. Можно указать Owner ID, чтобы задание было назначено ответственному — иначе задачу надо будет распределить вручную в HubSpot.

HubSpot node Create call task: type Task, due date, subject, body and associations

После настройки снова нажмите Publish.

n8n workflow: Survio Webhook, Unhappy?, Prepare task, Find or create contact, Create call task

Контакт может быть автоматически привязан к компании. Если HubSpot найдёт компанию с тем же e-mail доменом, контакт автоматически свяжется с ней и как владелец может быть назначен владелец компании. Само задание уходит тому владельцу, которого укажете здесь.

Получить готовый шаблон сценария

Вместо пошагового создания воспользуйтесь готовым workflow. Скачайте нужный файл из приложенных к статье: survio-unhappy-responses-to-gmail.json для варианта A или survio-unhappy-responses-to-hubspot-tasks.json для варианта B. Далее:

  1. В n8n создайте пустой workflow. В меню (три точки справа от названия) выберите Import → From file, выберите скачанный файл.

  2. Откройте Недоволен? и замените id вопросов на свои.

  3. Вариант A: откройте Переслать ответ, подключите Gmail, укажите свою почту, свои id и нужный часовой пояс.

  4. Вариант B: откройте Подготовить задачу и замените id и часовой пояс. Затем подключите HubSpot в Найти или создать контакт и Создать задачу на звонок, укажите Owner ID для исполнителя, если нужно.

  5. Откройте Survio Webhook, скопируйте Production URL в Survio (шаг 3) и нажмите Publish.

n8n workflow menu with Import and From file


​

Проверьте работу end-to-end

  1. Оставьте ответ с оценкой 2. Для варианта A письмо поступит за несколько секунд, для B задача появится на контакте в HubSpot.

  2. Оставьте ответ с оценкой 5 и вариантом «Очень удовлетворён(а)». Ничего не произойдёт.

  3. Посмотрите вкладку Executions в n8n. Оба события появятся; удовлетворённый ответ остановится на этапе Недоволен?.

Устранение неполадок

Симптом

Причина

Решение

В n8n ничего не появляется

Сохранён Test URL в Survio либо workflow не опубликован

Скопируйте Production URL в Survio и нажмите Publish

Survio не принимает вебхук с собственного n8n

n8n показывает внутренний адрес вместо публичного

Задайте в n8n параметр WEBHOOK_URL со своим https-адресом и повторите копирование URL

«Listen for test event» не показывает результат, хотя вы отправили анкету

Survio отправляет на Production URL, а слежение ведётся по Test URL

Проверьте вкладку Executions

Ваши изменения не вступают в силу

Workflow опубликован, но изменения не опубликованы (на Publish точка)

Нажмите Publish ещё раз

Письмо приходит по каждому ответу

Нода Gmail подключена к выходу false, либо условия связаны через AND

Подключите Gmail к true-выходу и используйте оператор OR

Низкая оценка не отправляет письмо

Неправильный id вопроса либо текст ответа не совпадает

Проверьте id и тексты по пробному ответу во вкладке Executions

В письме контакт «not given»

Анкета не была разослана Survio приглашением по электронной почте, или нет параметра email, или клиент пропустил вопрос про e-mail

Используйте приглашения Survio, добавляйте параметры или сделайте вопрос по e-mail обязательным

Вариант B: найти/создать контакт не удаётся

Нет e-mail, HubSpot не может найти или создать контакт

Используйте приглашения или параметр email в ссылке

Задача в HubSpot отображается одной строкой

В поле Body обычные переносы строки

Разделяйте строки тегом <br>

Survio отключил вебхук

Вебхук не работал 5 дней подряд

Устраните причину и включите вебхук заново в Survio

Что важно знать

  • Survio отправляет только завершённые ответы — по одному сообщению на ответ, в течение нескольких секунд. Незавершённые анкеты не отправляются.

  • Ничего не отправляется задним числом: ни ответы до создания вебхука, ни те, что пришли во время его паузы.

  • В случае ошибки попытка доставки повторяется до 8 раз примерно за 27 часов, на каждый запрос даётся до 30 секунд.

  • Если неудачи продолжаются 5 дней, Survio выключает вебхук — включите его вручную заново.

  • Пауза вебхука сохраняет его место, удаление — безвозвратно.

  • Survio не хранит историю доставок. Вся история в n8n, вкладка Executions.

  • Передача ответов через вебхуки не расходует лимит ответов вашего тарифа.

Хотите, чтобы мы всё настроили? На странице «Вебхуки» в Survio нажмите Получить помощь эксперта, опишите вашу задачу, и наша команда настроит, протестирует и передаст вам рабочий вебхук.

Нашли ответ на свой вопрос?