Какой вариант подходит для вас?
Вариант A — простой и универсальный: одна диаграмма с вашими результатами, автоматически обновляющаяся при каждом новом ответе.
Вариант B — для команд, которые сравнивают разные группы: сводная таблица, где вы можете фильтровать данные по каналу, языку или любому другому столбцу.
Каждый ответ, который ваша анкета собирает, сразу же попадает отдельной строкой в Google Sheets. Построив один раз нужную диаграмму или сводную таблицу, вы всегда получаете актуальный отчёт: никакого экспорта, копирования или ожидания, когда кто-то подготовит цифры.
Вот отчет, который вы получаете в варианте A — диаграмма обновляется автоматически с каждым ответом:
А это сводная таблица в варианте B, отфильтрованная по каналу с помощью среза:
Как это работает. Survio отправляет каждый заполненный ответ на URL вебхука. Инструмент автоматизации (в этом руководстве мы используем n8n) принимает его и записывает одну строку в вашу таблицу. Survio выполняет отправку, n8n — запись, а таблица — отчётность.
Впервые используете вебхуки в Survio? Начните с Вебхуки: отправляйте ответы в ваши другие инструменты в реальном времени, затем возвращайтесь сюда.
Что вы создадите
Оба отчёта питаются от одной и той же настройки: каждый заполненный ответ становится одной строкой на вкладке responses.
Вкратце | Вариант A: одна диаграмма | Вариант B: отчёт по сегментам |
Результат | Диаграмма того, как распределяются ответы, обновляется с каждым новым ответом | Сводная таблица с фильтрацией по каналу, языку или другому столбцу |
Инструменты | Survio, n8n, Google Sheets | Survio, n8n, Google Sheets (сводная таблица и срез) |
Оптимально для | Малого бизнеса, которому нужна одна простая и всегда актуальная диаграмма | Команда, которая сравнивает группы, например, онлайн- и офлайн-клиентов |
Перед началом
Анкета Survio на платном плане. Вебхуки недоступны на плане Free, и для каждого плана действует отдельный лимит по количеству вебхуков на анкету (см. статью о вебхуках).
Аккаунт n8n, n8n Cloud либо собственный сервер.
Google-аккаунт для Google Sheets.
В этом руководстве мы используем короткую анкету по удовлетворённости клиентов: Star rating, вопрос «В целом, насколько вы удовлетворены?», вопрос «Как вы совершили покупку на этот раз?», открытый комментарий и необязательный вопрос с e-mail. Ваша анкета может отличаться; вы будете сопоставлять ваши вопросы на шаге 5.
Шаг 1 — подготовьте таблицу
Создайте новый Google Sheet и переименуйте первую вкладку в
responses.В первой строке введите заголовки столбцов. Мы используем:
Response ID,Submitted,Rating (1-5),Satisfaction,Channel,What could we do better,E-mail,Order ID,LanguageиSource.
Оставьте Response ID первым столбцом. Это уникальный идентификатор Survio для каждого ответа. n8n использует его для обновления существующей строки вместо добавления дубликата при повторной доставке.
Шаг 2 — создайте вебхук в n8n
В n8n создайте новый workflow и добавьте узел Webhook в качестве триггера.
Установите HTTP Method на POST.
Перейдите на вкладку Production URL и скопируйте адрес.
Нажмите Publish. Production URL начнет принимать ответы только после публикации workflow.
Используйте Production URL, а не Test URL. Test URL слушает только пока редактор ожидает тестовое событие, поэтому доставки Survio завершатся неудачно сразу после закрытия редактора. Survio будет повторять неудачные попытки примерно сутки, а после 5 дней неудач отключит вебхук.
Шаг 3 — подключите анкету в Survio
Откройте вашу анкету и перейдите в Сбор ответов.
В левой панели под Автоматизация и интеграции выберите Вебхуки и нажмите + Добавить вебхук.
Вставьте Production URL n8n в Webhook URL и нажмите Сохранить вебхук. Вебхук включается сразу.
Шаг 4 — отправьте тестовый ответ и найдите ID вопросов
Откройте вашу анкету по обычной ссылке и отправьте один полностью заполненный ответ. Survio отправляет только полностью заполненные ответы — обязательно завершите анкету до конца.
В n8n откройте вкладку Executions. Доставка появится через несколько секунд.
Откройте execution и перейдите на узел Webhook. Разверните
body, затемdata, затемanswers. Каждый ответ показывает свойquestion.id,labelиanswer.Запишите ID каждого вопроса, который вы хотите вынести в отдельный столбец. Можно также закрепить execution с помощью Pin, чтобы продолжить работу, не отправляя анкету заново.
Всегда выбирайте ответы по ID вопроса. Ответы передаются списком. Если позже вы добавите вопрос в анкету, позиции в списке изменятся, и колонки будут заполняться ошибочно. ID вопросов не меняется.
Ищете e-mail респондента? Не используйте data.email: это поле будет пустым, если e-mail пришел из вопроса или параметра URL. Получайте e-mail из ответа на соответствующий вопрос или из data.parameters.
Шаг 5 — преобразуйте каждый ответ в строку
Для этого нужны два узла: Prepare row выбирает ответы из результата, а Save response to sheet записывает их в вашу таблицу.
Prepare row
Добавьте узел Edit Fields (Set) после Webhook и переименуйте его в
Prepare row.В Fields to Set добавьте по одному полю для каждого столбца вашей таблицы, тип поля — String. Имя поля должно точно совпадать с заголовком столбца; значение укажите по примеру ниже.
Замените ID вопросов (90403153 и так далее) на свои, а Europe/Prague — на ваш часовой пояс.
Имя поля | Значение |
Response ID |
|
Submitted |
|
Rating (1-5) |
|
Satisfaction |
|
Channel |
|
What could we do better |
|
| |
Order ID |
|
Language |
|
Source |
|
Save response to sheet
Добавьте после Prepare row узел Google Sheets, переименуйте его в
Save response to sheetи выберите действие Append or Update Row.Подключите ваш Google-аккаунт, затем выберите таблицу в Document (из списка или по ID) и вкладку
responsesв Sheet.Установите Mapping Column Mode на Map Automatically и Column to match on — на Response ID.
Зачем отдельный шаг Prepare row? Если выбрать другую таблицу или вкладку в Google Sheets, n8n сбрасывает соответствие столбцов в этом узле. Благодаря выражениям в Prepare row всё сохраняется: Google Sheets просто соотносит имена полей и столбцов.
Нажмите Publish снова. Внесённые изменения вступают в силу только после повторной публикации.
Некоторые детали отображённых выражений:
Вопросы с выбором приходят в виде
{ ids, labels, value }.labels[0]— текст выбранного варианта. Для множественного выбора используйтеlabels.join(', '), чтобы все варианты были в одной ячейке.valueсодержит текст «Другое».Время приходит в UTC. Поле Submitted переводит его в ваш часовой пояс, а Google Sheets трактует столбец как дату и время (можно фильтровать и группировать).
Параметры URL с дефисом, например
order-id, нужно обращаться какparameters['order-id']. Survio не принимает подчеркивания в параметрах имени.Название анкеты не передаётся с ответами. Если несколько анкет пишут в одну таблицу, добавьте столбец Survey и поле с названием анкеты в Prepare row.
Отправьте ещё один ответ — новая строка появится в таблице за несколько секунд.
Вариант A — построение диаграммы ответов
Добавьте вкладку с именем
report.В A1 напишите
Satisfaction, в B1 —Responses. В A2–A6 внесите варианты ответов, как в вашей анкете.В B2 введите формулу
=COUNTIF(responses!D:D,A2)и протяните до B6.Выделите A1:B6 и выберите Вставка → Диаграмма. Google Sheets предложит столбчатую диаграмму. Чтобы изменить название, откройте Настроить → Названия диаграмм и осей.
Каждый новый ответ добавляется в responses, и диаграмма с подсчётами обновляются автоматически — всё происходит онлайн.
Вариант B — сравните группы с помощью сводной таблицы
На вкладке
responsesвыделите таблицу и выберите Вставка → Сводная таблица, затем Новый лист.В Строки добавьте Satisfaction. В Значения добавьте Response ID и установите COUNTA вместо суммы.
Выберите Данные → Добавить срез и отметьте столбец Channel. Выберите интересующие значения и подтвердите OK. Итог будет выглядеть как сводная таблица из примера.
Вы можете разбивать по любому столбцу: Channel (ваш вопрос), Language (язык анкеты), Source (через какую ссылку пришёл ответ, например прямая ссылка или e-mail приглашение) или Order ID.
Выбор в срезе не сохраняется для следующего открытия. После повторного открытия файла срез показывает все значения. Чтобы сохранить фильтр, задайте его по умолчанию в меню среза.
Готовый workflow
Вместо ручного выполнения шагов 2 и 5 воспользуйтесь нашим workflow. Скачайте файл survio-responses-to-google-sheets.json из вложений к статье, затем:
В n8n создайте пустой workflow. В меню (три точки около названия) выберите Импорт, затем Из файла. Выберите скачанный файл.
Откройте Prepare row и замените ID вопросов и часовой пояс на свои.
Откройте Save response to sheet. Пока не настроено — будет красное предупреждение. Подключите Google-аккаунт, выберите таблицу и вкладку
responses. После этого n8n переключит Mapping Column Mode на ручной режим — переключите обратно на Map Automatically и выберите Column to match on — Response ID.Откройте Survio Webhook, скопируйте Production URL в Survio (шаг 3) и нажмите Publish.
Проверьте всё от начала до конца
Отправьте ответ через ссылку на анкету. Строка появится на вкладке
responsesчерез несколько секунд.Проверьте, чтобы Response ID был заполнен. Это предотвращает дублирование.
Посмотрите вкладку Executions в n8n. Там отображаются все доставки и данные.
Устранение неполадок
Симптом | Причина | Решение |
В n8n ничего не приходит | В Survio указан Test URL или workflow не опубликован | Вставьте Production URL в Survio и нажмите Publish |
Survio не сохраняет вебхук URL от собственного n8n | n8n отображает внутренний адрес вместо публичного | Задайте настройку n8n |
"Listen for test event" не показывает ничего, хотя ответ отправлен | Survio отправляет только на Production URL, а слушатель включен для Test URL | Проверьте вкладку Executions |
Последнее внесённое изменение не работает | Workflow опубликован, но изменение не опубликовано (на кнопке Publish точка) | Нажмите Publish ещё раз |
Один ответ появляется дважды | Операция — Append Row либо не настроено совпадение по столбцу | Используйте Append or Update Row и совпадение по Response ID |
Столбец остаётся пустым, а в конце появляется новый столбец | Имя поля в Prepare row не совпало с заголовком колонки | Переименуйте поле в Prepare row по заголовку — удалите дополнительный столбец |
В ячейке отображается [object Object] | Ответ типа выбор сопоставлен без | Используйте |
Данные распределяются по неправильным столбцам после редактирования анкеты | Ответы были выбраны по позиции | Используйте выбор по |
Столбец "E-mail" остаётся пустым | Из Prepare row выбирался | Используйте e-mail из ответа на соответствующий вопрос или из параметра |
Нет старых ответов | Вебхуки передают ответы только после создания | Один раз экспортируйте старые ответы из Survio вручную |
Survio отключил вебхук | URL вебхука не принимал доставки 5 дней подряд | Исправьте причину и включите вебхук заново в Survio |
Полезно знать
Survio отправляет только полностью заполненные ответы, одно сообщение на каждый, быстро.
Ни ответы до создания вебхука, ни ответы, пришедшие во время его паузы, не отправляются «задним числом».
Неудачная доставка повторяется до 8 раз примерно за 27 часов, каждая попытка ждет до 30 секунд ответа. Сопоставление по Response ID делает повторные попытки безвредными.
Если в течение 5 дней доставки не проходят, Survio отключает вебхук, включите его снова вручную.
Пауза вебхука сохраняет слот; удаление — навсегда.
Survio не хранит историю доставок в приложении. Для этого используйте вкладку Executions в n8n.
Отправка ответов в вебхуки не расходует дополнительные ответы с вашего плана.
Хотите, чтобы мы всё настроили за вас? На странице «Вебхуки» в Survio нажмите Экспертная настройка, расскажите, что требуется сделать, и наша команда настройку выполнит, проверит и передаст работающий вебхук.
