Сервисом Google Docs пользуюсь хорошо и давно, но только относительно недавно, до меня дошло, что его можно использовать еще лучше (спасибо habrу).
Вся прелесть Google Docs это синергия его компонентов, так:
- Google Forms – позволяет кастомизировать формы и встраивать на свои странички
- Google Spreadsheet – поддерживает автоматизацию, с помощью скриптов на javascript, имеется поддержка триггеров и событий.
Реализация
Так как все данные собираются в Spreadsheet, то средства автоматизации должны работать оттуда.
И так у вас есть работающая форма Google Forms, которая связана с таблицей в сервисе Google SpreadSheet (Рис. 1). Необходимо реализовать отправку на определенные email адреса заполненных пользователями данных формы при отправке формы.
Рис. 1 Таблица, с полученными данными формы |
Появится вкладка с редактором (Рис. 2).
Рис. 2 |
function sendOnSubmit(e){ // Тестовый вариант триггера с отправкой всех данных var messageString="", data = e.namedValues;// исходный объект с заполненными данными /* То как выглядят данные от формы — json с заголовками колонок и их значения: {"Разрешает обработку данных":["желает подписаться"],"Наименование организации":["zanussi"],"Желаемый срок кредитования (в мес.)":["12"],"Регион в котором осуществляется деятельность":["Москва"],"Контактный номер телефона":["+7 (122) 222-22-22"],"Электронная почта":["www333@mail.ru"],"Желаемая сумма в рублях":["10 000 000"],"Как к Вам обращаться":["леопольд2"],"Отметка времени":["26.11.2012 22:57:14"]} Приводим полученный объект к виду удобном для восприятия: */ for(var key in data){ messageString+=key+" : "+(data[key]&&data[key][0]?data[key][0]:JSON.stringify(data[key]))+"\r\n"; } MailApp.sendEmail("mail@yandex.ru", "Заявка", messageString); }
В данном редакторе можно создать как обычные запускаемые функции (через меню), так и запускаемые по событиям. Такие функции могут принимать в качестве аргумента объект события.
Так функция sendOnSubmit(e) — получает объект e, в котором свойство e.namedValues содержит в JSON формате значения заполненных полей. Объект e.namedValues «обрабатывается» в текстовое сообщение (messageString), которое затем рассылается по email адресам с помощью метода MailApp.sendEmail() .
Теперь осталось созданную функцию привязать к событию отправки формы.
Во вкладке с редактором кода переходим в меню «Ресурсы» → “Триггеры текущего скрипта”.
Появится диалоговое сообщение о необходимости настройки Триггеров текущего проекта (если они не были настроены) (Рис. 3).
Рис. 3 |
Рис. 4 |
Теперь от Вас потребуются подтвердить ваши действия. А именно разрешения на отправку почты. Ведь все сделанное будет выполняться от вашего имени (учетной записи). Даже почту будет отправляться от вашего gmail профиля.
«Авторизуемся» и окончательно сохраняем триггер.