---
title: "Як приймати відповіді Google Forms у сценарії"
description: "Інструкція налаштування тригера Google Forms (картка «Додатки») — webhook, режими, мапінг полів у звернення."
---

# Як приймати відповіді Google Forms у сценарії?

Тригер **Google Forms** (у списку тригерів — картка **Додатки**) перетворює кожну відповідь Google-форми на звернення в Operator Line: клієнт визначається за email, відповіді потрапляють у поля звернення, файли — у вкладення. Google Forms не має власного webhook, тому на боці форми працює Google Apps Script, який надсилає відповіді на адресу платформи.

## Коли знадобиться

- Заявки, скарги або анкети збираються через Google Forms, а обробляти їх треба в Operator Line.
- Потрібно, щоб кожна відповідь форми ставала окремим зверненням із заповненими полями.
- Відповіді одного клієнта мають бути пов'язані між собою, щоб оператор бачив історію.

## Що важливо знати

- **Два режими роботи.** **Авто** — платформа сама створює клієнта (за email) і звернення, сценарій запускається після цього як необов'язкова додаткова обробка. **Лише сценарій** — платформа нічого не створює: звернення створює ваш сценарій дією створення тікета. Без зібраного сценарію відповіді форми в цьому режимі **не зберігаються**.
- **Повторні надсилання не створюють дублів.** Якщо Apps Script надіслав ту саму відповідь двічі (наприклад, при повторній спробі), звернення не задублюється.
- **Каталог полів.** Панель тригера показує блок **Поля форми** — перелік полів, які реально приходили з форми (ID, назва питання, тип). Каталог наповнюється після першої надісланої відповіді.
- **До 10 полів мапінгу.** Відповіді форми можна зіставити з кастомними полями обраної тематики — не більше 10 відповідностей.

## Перед початком

- [x] Ви увійшли з правами інтегратора або адміністратора.
- [x] Є Google-форма і доступ до її Apps Script (налаштовується під час впровадження).
- [x] Для мапінгу полів — тематика з кастомними полями (**Налаштування → Тематики**).

## Покрокова інструкція

### 1. Обрати тригер Google Forms

1. Виберіть стартову ноду на полотні.
2. У полі **Тип тригера** натисніть **Змінити** та оберіть картку **Додатки**.
3. У блоці налаштувань у полі **Додаток** буде обрано **Google Forms** — єдиний доступний додаток. Щоб переглянути список, натисніть **Змінити** на картці додатка.

### 2. Скопіювати адресу webhook і токен

У панелі тригера:

1. Скопіюйте **Webhook URL** кнопкою **Скопіювати URL** — на цю адресу Apps Script надсилатиме відповіді форми.
2. Скопіюйте **Токен авторизації** кнопкою **Скопіювати токен**. Apps Script має надсилати його в заголовку `Authorization: Bearer <токен>`. Токен створюється автоматично при першому відкритті панелі.

### 3. Налаштувати Apps Script на формі

Скрипт на боці Google-форми налаштовується один раз під час впровадження: у нього вписуються Webhook URL і токен із кроку 2, після чого кожна надіслана відповідь форми автоматично надходить на платформу. Якщо скрипт ще не налаштований — зверніться до команди впровадження.

### 4. Вказати ID форми

- **ID форми (form_id)** — ідентифікатор конкретної форми. Заповніть його, якщо тригер має приймати лише одну форму.
- Порожнє значення — тригер прийматиме відповіді всіх форм цього бота. Якщо для якоїсь форми є окремий тригер з точним ID — він має пріоритет.

### 5. Обрати режим

У полі **Режим**:

- **Авто** (за замовчуванням) — платформа сама створює клієнта і звернення; далі налаштуйте кроки 6–8.
- **Лише сценарій** — усе створює ваш сценарій; перейдіть до кроку 9.

### 6. (Авто) Налаштувати тематику і мапінг полів

1. У полі **Тематика** оберіть тематику звернення.
2. У блоці **Мапінг полів** натисніть **Додати відповідність** (до 10 рядків):
   - **ID поля форми** — оберіть із каталогу полів або введіть вручну.
   - **Ключ кастомного поля** — ключ поля обраної тематики (**Налаштування → Тематики**).
3. Поля без мапінгу не губляться — вони потраплять у текст звернення списком «питання: відповідь».

### 7. (Авто) Назва і суть звернення

- **Назва тікета** — шаблон назви з плейсхолдерами (наприклад, `Звернення {{respondent_email}} #{{response_id}}`). Перелік доступних плейсхолдерів показано під полем.
- **Джерело description** — оберіть питання форми, відповідь на яке стане суттю звернення (наприклад, «Опис проблеми»). Якщо не обрано або відповідь порожня — суттю стане повний список відповідей.

### 8. (Авто) Обрати канал тікета

У полі **Канал тікета**:

- **Email** — відповідь оператора зі звернення піде листом респонденту. Потрібен поштовий акаунт бота, інакше звернення створиться як Custom channel. Щоб відповіді клієнта поштою поверталися у звернення, у сценарії бота має бути стандартна гілка email-каналу: секція з тригером **Канали → Email** і [нодою підключення до оператора](/uk/scenariobuilder/explanation/connect-to-operator-node.md).
- **Custom channel** — звернення лише вхідне, відповісти з нього не можна.

### 9. (Лише сценарій) Побудувати сценарій обробки

У цьому режимі вебхук запускає сценарій і передає дані форми в константи — перелік показано в блоці **Доступні змінні** панелі тригера (email респондента, ID форми, відповіді полів).

1. Додайте в сценарій дію створення тікета і заповніть її поля з констант.
2. Передайте змінну `external_id` у параметр `external_id` дії створення тікета — це захистить від дублів при повторних надсиланнях.
3. Зберіть і збережіть сценарій **до** увімкнення форми: без зібраного сценарію відповіді форми не зберігаються.

### 10. Перевірити каталог полів

1. Надішліть тестову відповідь через форму.
2. У блоці **Поля форми** з'являться поля з ID, назвою і типом — використовуйте їх у мапінгу та в полі **Джерело description**.
3. Якщо форму суттєво змінили — натисніть **Очистити каталог полів** і надішліть нову тестову відповідь.

## Що відбувається після

Кожна відповідь форми стає окремим зверненням. Звернення одного клієнта (за email) пов'язуються між собою — оператор бачить усі відповіді разом. Повторні доставки тієї самої відповіді не створюють дублів.

## Як переконатися, що все працює

- Надішліть тестову відповідь через форму — в Operator Line з'явиться звернення з заповненими полями.
- Перевірте, що блок **Поля форми** в панелі тригера наповнився.
- Надішліть ту саму відповідь повторно — нове звернення не створиться.

## Типові помилки

| Проблема | Рішення |
|----------|---------|
| Відповіді форми не доходять | Перевірте Webhook URL і токен в Apps Script; токен має йти в заголовку `Authorization: Bearer <токен>`. |
| Звернення не створюється, хоча відповідь дійшла | Перевірте **ID форми** — він має збігатися з формою або бути порожнім. У режимі **Лише сценарій** — чи зібрано сценарій. |
| Файл із форми не з'явився у зверненні | Посилання на файл має бути доступним для завантаження; звернення при цьому створюється без файлу. |
| Обрано канал Email, а звернення створилось як Custom channel | У бота немає поштового акаунта — підключіть пошту бота або лишіть Custom channel. |
| Відповіді клієнта поштою не потрапляють у звернення | Додайте в сценарій секцію з тригером **Канали → Email** і [нодою підключення до оператора](/uk/scenariobuilder/explanation/connect-to-operator-node.md). |

## Пов'язані матеріали

- [Налаштувати тригери стартової ноди](/uk/scenariobuilder/how-to/configure-start-node-triggers.md)
- [Що таке стартова нода](/uk/scenariobuilder/explanation/what-is-start-node.md)
- [Створити сценарій](/uk/scenariobuilder/how-to/create-scenario.md)
- [Налаштувати канали](/uk/scenariobuilder/how-to/configure-start-node-channels.md)
