Як приймати відповіді Google Forms у сценарії?
Тригер Google Forms (у списку тригерів — картка Додатки) перетворює кожну відповідь Google-форми на звернення в Operator Line: клієнт визначається за email, відповіді потрапляють у поля звернення, файли — у вкладення. Google Forms не має власного webhook, тому на боці форми працює Google Apps Script, який надсилає відповіді на адресу платформи.
Коли знадобиться
- Заявки, скарги або анкети збираються через Google Forms, а обробляти їх треба в Operator Line.
- Потрібно, щоб кожна відповідь форми ставала окремим зверненням із заповненими полями.
- Відповіді одного клієнта мають бути пов'язані між собою, щоб оператор бачив історію.
Що важливо знати
- Два режими роботи. Авто — платформа сама створює клієнта (за email) і звернення, сценарій запускається після цього як необов'язкова додаткова обробка. Лише сценарій — платформа нічого не створює: звернення створює ваш сценарій дією створення тікета. Без зібраного сценарію відповіді форми в цьому режимі не зберігаються.
- Повторні надсилання не створюють дублів. Якщо Apps Script надіслав ту саму відповідь двічі (наприклад, при повторній спробі), звернення не задублюється.
- Каталог полів. Панель тригера показує блок Поля форми — перелік полів, які реально приходили з форми (ID, назва питання, тип). Каталог наповнюється після першої надісланої відповіді.
- До 10 полів мапінгу. Відповіді форми можна зіставити з кастомними полями обраної тематики — не більше 10 відповідностей.
Перед початком
Покрокова інструкція
1. Обрати тригер Google Forms
- Виберіть стартову ноду на полотні.
- У полі Тип тригера натисніть Змінити та оберіть картку Додатки.
- У блоці налаштувань у полі Додаток буде обрано Google Forms — єдиний доступний додаток. Щоб переглянути список, натисніть Змінити на картці додатка.
2. Скопіювати адресу webhook і токен
У панелі тригера:
- Скопіюйте Webhook URL кнопкою Скопіювати URL — на цю адресу Apps Script надсилатиме відповіді форми.
- Скопіюйте Токен авторизації кнопкою Скопіювати токен. Apps Script має надсилати його в заголовку
Authorization: Bearer <токен>. Токен створюється автоматично при першому відкритті панелі.
3. Налаштувати Apps Script на формі
Скрипт на боці Google-форми налаштовується один раз під час впровадження: у нього вписуються Webhook URL і токен із кроку 2, після чого кожна надіслана відповідь форми автоматично надходить на платформу. Якщо скрипт ще не налаштований — зверніться до команди впровадження.
4. Вказати ID форми
- ID форми (form_id) — ідентифікатор конкретної форми. Заповніть його, якщо тригер має приймати лише одну форму.
- Порожнє значення — тригер прийматиме відповіді всіх форм цього бота. Якщо для якоїсь форми є окремий тригер з точним ID — він має пріоритет.
5. Обрати режим
У полі Режим:
- Авто (за замовчуванням) — платформа сама створює клієнта і звернення; далі налаштуйте кроки 6–8.
- Лише сценарій — усе створює ваш сценарій; перейдіть до кроку 9.
6. (Авто) Налаштувати тематику і мапінг полів
- У полі Тематика оберіть тематику звернення.
- У блоці Мапінг полів натисніть Додати відповідність (до 10 рядків):
- ID поля форми — оберіть із каталогу полів або введіть вручну.
- Ключ кастомного поля — ключ поля обраної тематики (Налаштування → Тематики).
- Поля без мапінгу не губляться — вони потраплять у текст звернення списком «питання: відповідь».
7. (Авто) Назва і суть звернення
- Назва тікета — шаблон назви з плейсхолдерами (наприклад,
Звернення {{respondent_email}} #{{response_id}}). Перелік доступних плейсхолдерів показано під полем. - Джерело description — оберіть питання форми, відповідь на яке стане суттю звернення (наприклад, «Опис проблеми»). Якщо не обрано або відповідь порожня — суттю стане повний список відповідей.
8. (Авто) Обрати канал тікета
У полі Канал тікета:
- Email — відповідь оператора зі звернення піде листом респонденту. Потрібен поштовий акаунт бота, інакше звернення створиться як Custom channel. Щоб відповіді клієнта поштою поверталися у звернення, у сценарії бота має бути стандартна гілка email-каналу: секція з тригером Канали → Email і нодою підключення до оператора.
- Custom channel — звернення лише вхідне, відповісти з нього не можна.
9. (Лише сценарій) Побудувати сценарій обробки
У цьому режимі вебхук запускає сценарій і передає дані форми в константи — перелік показано в блоці Доступні змінні панелі тригера (email респондента, ID форми, відповіді полів).
- Додайте в сценарій дію створення тікета і заповніть її поля з констант.
- Передайте змінну
external_idу параметрexternal_idдії створення тікета — це захистить від дублів при повторних надсиланнях. - Зберіть і збережіть сценарій до увімкнення форми: без зібраного сценарію відповіді форми не зберігаються.
10. Перевірити каталог полів
- Надішліть тестову відповідь через форму.
- У блоці Поля форми з'являться поля з ID, назвою і типом — використовуйте їх у мапінгу та в полі Джерело description.
- Якщо форму суттєво змінили — натисніть Очистити каталог полів і надішліть нову тестову відповідь.
Що відбувається після
Кожна відповідь форми стає окремим зверненням. Звернення одного клієнта (за email) пов'язуються між собою — оператор бачить усі відповіді разом. Повторні доставки тієї самої відповіді не створюють дублів.
Як переконатися, що все працює
- Надішліть тестову відповідь через форму — в Operator Line з'явиться звернення з заповненими полями.
- Перевірте, що блок Поля форми в панелі тригера наповнився.
- Надішліть ту саму відповідь повторно — нове звернення не створиться.
Типові помилки
| Проблема | Рішення |
|---|---|
| Відповіді форми не доходять | Перевірте Webhook URL і токен в Apps Script; токен має йти в заголовку Authorization: Bearer <токен>. |
| Звернення не створюється, хоча відповідь дійшла | Перевірте ID форми — він має збігатися з формою або бути порожнім. У режимі Лише сценарій — чи зібрано сценарій. |
| Файл із форми не з'явився у зверненні | Посилання на файл має бути доступним для завантаження; звернення при цьому створюється без файлу. |
| Обрано канал Email, а звернення створилось як Custom channel | У бота немає поштового акаунта — підключіть пошту бота або лишіть Custom channel. |
| Відповіді клієнта поштою не потрапляють у звернення | Додайте в сценарій секцію з тригером Канали → Email і нодою підключення до оператора. |