Google Apps Script для Google Forms: гайд для початківців
Швидка відповідь: Google Apps Script — безкоштовна вбудована JavaScript-платформа Google для автоматизації Forms, Sheets та інших додатків Workspace. Саме так люди додають те, чого Forms не робить нативно — як-от надсилання листа власнику при кожному надсиланні, автоматичне обмеження кількості відповідей чи генерацію PDF-підтвердження. Це справді вимагає базових знань програмування, що і є справжнім бар'єром входу.
Google Forms навмисно простий, тож багато поширених запитів — "надішліть мені лист, коли хтось відповідає", "припиніть приймати відповіді після 50", "перевірте це поле в спосіб, якого Forms не підтримує" — не обробляються з коробки. Google Apps Script — це інструмент, який Google дає вам, щоб самостійно закрити цей розрив, безкоштовно, не залишаючи екосистему Google. Цей гайд пояснює, що це таке, що він реально може зробити для вашої форми, простий приклад того, як він структурований, і для кого він насправді.
Що таке Google Apps Script?
Apps Script — це вбудована платформа Google для написання скриптів на основі JavaScript, яка дозволяє писати невеликі програми, що взаємодіють з додатками Google Workspace — Forms, Sheets, Docs, Gmail, Calendar та іншими. Вона працює повністю на серверах Google, тож нічого встановлювати не потрібно й немає окремого хостингу для керування. Доступ до неї можна отримати одним із двох способів: у меню з трьома крапками вашої форми оберіть Script editor, або відкрийте пов'язану Google Sheet і перейдіть у Extensions > Apps Script. Обидва шляхи відкривають той самий тип редактора, хоча скрипти, прикріплені до форми, порівняно з тими, що прикріплені до таблиці, мають дещо різний початковий контекст.
Що Apps Script дозволяє робити з того, чого Forms не пропонує нативно
- Автоматично надсилати лист власнику форми на кожне нове надсилання. У Google Forms немає нативного налаштування сповіщень для цього — найближчий вбудований варіант — періодичний зведений лист про нові відповіді, а не миттєвий. Apps Script може надіслати лист у момент надходження відповіді, що важливо для чутливих до часу форм на кшталт запитів підтримки чи термінових реєстрацій. Якщо ви розбираєтесь, чому взагалі не отримуєте сповіщень про відповіді, це пов'язана, але інша проблема — перегляньте наш гайд Google Forms не приймає відповіді.
- Автоматичне обмеження відповідей за днем чи кількістю. Сторонні додатки "обмежувача відповідей", що обмежують форму, скажімо, 50 надсиланнями або закривають її після певної дати, самі зазвичай побудовані на тригерах Apps Script, які перевіряють кількість відповідей чи дату й програмно закривають форму. Наш гайд по закриттю Google Form після ліміту відповідей охоплює як шлях через додаток, так і те, що відбувається під капотом.
- Власна валідація, яку Forms не вміє нативно. Вбудована валідація Forms обмежена базовими правилами на кшталт числових діапазонів чи regex-шаблонів для одного поля. Apps Script може звіряти кілька відповідей одна з одною або із зовнішніми даними так, як нативні варіанти валідації не можуть.
- Автоматична генерація PDF-підтвердження. Скрипт може взяти нову відповідь, відформатувати її в документ, конвертувати в PDF і надіслати назад респонденту як квитанцію чи підтвердження — корисно для реєстрацій, заявок і форм замовлень.
Простий приклад, пояснений концептуально
Ось приблизна форма скрипту, який надсилає лист власнику форми, коли хтось відповідає. Це ілюстративно, щоб показати структуру — не те, що варто копіювати як готовий до виробництва код без адаптації до фактичних питань вашої форми.
function onFormSubmit(e) {
// e.response holds the submitted form response
var responses = e.response.getItemResponses();
var summary = "";
responses.forEach(function (itemResponse) {
summary += itemResponse.getItem().getTitle() + ": " + itemResponse.getResponse() + "\n";
});
// Send the owner an email with the new response
MailApp.sendEmail("[email protected]", "New form response", summary);
}
Ключові частини: onFormSubmit(e) — це тригерна функція — Apps Script викликає її автоматично, коли надходить нова відповідь, а e містить дані події, включно з e.response, що дає доступ до кожної відповіді через getItemResponses(). Звідти скрипт може робити все, що підтримують сервіси Apps Script — надсилати листи, писати в таблицю, викликати зовнішній API, генерувати документ. Сам тригер налаштовується окремо в панелі Triggers редактора, де ви вказуєте запускати цю функцію на подію "On form submit".
Налаштування крок за кроком
- Відкрийте Script editor у меню з трьома крапками вашої форми, або через Extensions > Apps Script на пов'язаній таблиці.
- Напишіть тригерну функцію на кшталт прикладу вище, читаючи надіслані відповіді з об'єкта події.
- Додайте логіку автоматизації — фактичний лист, PDF чи перевірку, яку хочете запустити.
- Налаштуйте тригер у розділі Triggers (іконка годинника в лівій бічній панелі), додавши новий тригер, що запускає вашу функцію на подію "From form" / "On form submit".
- Авторизуйте й протестуйте. Перший запуск запропонує надати скрипту дозвіл на доступ до вашої форми й Gmail; підтвердьте, а потім надішліть реальну тестову відповідь, щоб переконатись, що все спрацьовує коректно.
Де дізнатись більше
Apps Script має розлогу офіційну документацію безпосередньо від Google, що охоплює сервіс Forms, тригери й кожен інший додаток Workspace, з яким він може взаємодіяти. Якщо ви серйозно налаштовані писати власні скрипти, це найнадійніше й найактуальніше джерело, оскільки воно підтримується разом із самим продуктом, а не третьою стороною.
Поширені тригери, окрім "on form submit"
Надсилання форми — найпоширеніший тригер, але не єдиний, корисний для форм. Тригер за розкладом (також налаштовується в панелі Triggers) може запускатись за розкладом — щогодини, щодня чи в певний час — незалежно від того, чи хтось надіслав відповідь. Саме це живить заплановані дії на кшталт автоматичного закриття форми в певну дату, надсилання щоденного зведення відповідей за день замість одного листа на надсилання, чи архівування старих відповідей в окрему таблицю на постійній основі. Тригери на основі редагування (onEdit) спрацьовують, коли хтось змінює клітинку в пов'язаній таблиці, що корисно, якщо ви хочете, щоб скрипт реагував, коли ви вручну позначаєте відповідь як "оброблено" чи "затверджено" в стовпці статусу.
Вирішення проблем з Apps Script
- Скрипт не запускається при надсиланні форми: переконайтесь, що тригер справді збережено і він вказує саме на "On form submit", а не на інший тип події — тригери, створені в попередніх тестових сеансах, можуть мовчки існувати поруч із новішим, неправильно налаштованим, тож перевірте панель Triggers на дублікати.
- Помилки "Authorization required" при кожному запуску: дозволи Apps Script можуть бути відкликані, якщо ви змінюєте пароль облікового запису Google або якщо Google періодично повторно перевіряє чутливі зони доступу на кшталт надсилання Gmail. Повторно запустіть скрипт вручну з редактора один раз, щоб знову викликати запит авторизації.
- Скрипт працює при ручному запуску, але не автоматично: деякі сервіси Apps Script (наприклад, показ діалогового вікна UI) працюють лише коли людина запускає скрипт безпосередньо, а не з автоматизованого тригера — автоматизовані тригери мають використовувати неінтерактивні дії на кшталт надсилання листа чи запису в таблицю.
- Листи не надсилаються: безкоштовний тариф Apps Script має щоденну квоту на листи (вищу для облікового запису Google Workspace, ніж для особистого Gmail) — форми з великим обсягом можуть досягти цієї стелі, через що пізніші листи того дня мовчки не надсилаються.
Чесний бар'єр входу
Apps Script вимагає справжнього програмування — конкретно, базового JavaScript. Це не інструмент без коду, і ставлення до нього як до простого перемикача налаштувань призведе до розчарування, якщо ви ніколи раніше не писали код. Читання й адаптація короткого прикладу на кшталт наведеного вище реалістичні для вмотивованого початківця, але побудова чогось складнішого, як-от багатоетапна валідація чи генерація PDF, вимагає реальних знань програмування.
Саме цей бар'єр закривають сторонні додатки без коду для людей, яким потрібна автоматизація без написання скриптів, і саме цю прогалину закривають спеціалізовані додатки на кшталт FormMaker для зовсім іншої проблеми — створення й керування самою формою на мобільному, взагалі не торкаючись коду. Жоден із них не замінює Apps Script для глибокої кастомізації, але жоден і не вимагає її.
Часті запитання
Що таке Google Apps Script?
Google Apps Script — це вбудована платформа Google на основі JavaScript для автоматизації й розширення додатків Google Workspace, включно з Forms, Sheets і Gmail. Вона працює на серверах Google безкоштовно й не потребує окремого встановлення.
Чи може Google Forms надсилати автоматичний лист, коли хтось надсилає відповідь?
Не нативно. У Google Forms немає вбудованого налаштування для надсилання листа власнику форми на кожне надсилання. Apps Script може додати це, запускаючи невелику тригерну функцію щоразу, коли надходить нова відповідь.
Чи потрібно вміти програмувати, щоб користуватись Apps Script?
Так, принаймні базовий JavaScript. Apps Script — справжнє середовище програмування, а не інструмент без коду. Якщо ви не хочете писати код, розгляньте додатки без коду або спеціалізовані додатки.
Де відкрити редактор Apps Script для Google Form?
У формі перейдіть у меню з трьома крапками й оберіть Script editor, або відкрийте пов'язану Google Sheet і перейдіть у Extensions > Apps Script.
Чи є обмеження на кількість листів, які Apps Script може надіслати за день?
Так. Apps Script застосовує щоденну квоту на надсилання листів, яка вища для облікових записів Google Workspace, ніж для безкоштовних особистих облікових записів Gmail. Форми з великим обсягом, що надсилають лист на кожне надсилання, можуть досягти цієї стелі, що варто перевірити, якщо листи перестають надсилатись у розпал напруженого дня.