Оповещения Google ФормРазработка и доработка

Скрипт Google Apps Script, который пришлёт вам каждый новый ответ Google Формы в понятном виде и нужному человеку

Обычно готово за 15 минутДоработки включеныКонтроль качества
Пакеты
Защита оплатыПодробнее
  • Доработки в рамках пакета бесплатны.
  • Если вы не ответите в течение 3 дней после сдачи, работа будет принята автоматически.

При оплате деньги резервируются и переходят сервису, только когда вы примете работу.

Скрипт Google Apps Script, который пришлёт вам каждый новый ответ Google Формы в понятном виде и нужному человеку

Пример результата

Пример по пакету «Стандарт»

Сводный отчёт в Excel из ежемесячных продаж 9 магазинов

Как его запускают

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Папка: sales/2026-10, найдено файлов: 9
2026-11-02 09:14:03 INFO  shop-01.csv: 1284 строки
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 строк
2026-11-02 09:14:04 WARN  shop-07.csv: пропущены 3 строки без цены (строки 88, 412, 913)
2026-11-02 09:14:05 INFO  Готово: 10 412 строк -> report-2026-10.xlsx (листы «Продажи» и «Итоги»)

Настройки, а не код

Названия столбцов каждого магазина лежат в settings.ini. Новый магазин или переименованный столбец — это одна строка там:

[columns]
date = Дата, Дата продажи, День
product = Товар, Наименование, Название
quantity = Кол-во, Количество, Шт
price = Цена, Цена за шт

Фрагмент кода

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Читает файл одного магазина и даёт столбцам названия из отчёта."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: нет столбца «{name}» (искали: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Файлы: ZIP-архив с merge_sales.py (310 строк), settings.ini, requirements.txt и README: как установить Python, как запустить скрипт и что значит каждое сообщение в журнале. Клиент запускает скрипт на своём компьютере.

Клиент: небольшая сеть из 9 магазинов канцтоваров. Каждый магазин присылает продажи за месяц в CSV или Excel, и названия столбцов у всех немного разные. Задача: скрипт, который читает все файлы из папки, приводит столбцы к одному виду и сохраняет один отчёт в Excel: все продажи и отдельный лист с итогами по магазинам.

Клиент и все данные вымышлены.

Об услуге

Google Формы могут сообщить, что пришёл новый ответ, но не покажут, что в нём, и не отправят коллеге, который ведёт этот город или услугу. Этот скрипт Google Apps Script срабатывает каждый раз, когда кто-то отправляет вашу форму, и присылает письмо с понятно оформленными ответами: вопросы жирным, ответы под ними и ссылка на таблицу ответов. Начиная со «Стандарта» он выбирает получателя по ответу, например заявки из Москвы на один адрес, а из Казани на другой. В «Премиуме» он может отправить подтверждение тому, кто заполнил форму, если форма спрашивает его почту, и ежедневную сводку вам. Письма уходят из вашего аккаунта Google в пределах дневного лимита, который задаёт Google. Ставите скрипт вы в своём аккаунте.

Что входит

  • Что вы получитеАрхив ZIP с кодом Apps Script и README, где показано, как подключить его к форме, дать доступ и настроить триггер; код также виден на странице заказа.
  • Весь ответВсе вопросы и ответы прямо в письме
  • Понятная теманапример, «Новая заявка: имя, услуга»
  • Нужному человекуНачиная со «Стандарта», адрес выбирается по ответу
  • Из вашего аккаунтаОтправка из вашего аккаунта Google в пределах лимитов Google
  • Понятный кодС комментариями, письмо легко поменять потом

Порядок работы

  1. 1
    ЗадачаВы присылаете вопросы формы и кому что отправлять
  2. 2
    КодМы пишем скрипт и инструкцию по установке
  3. 3
    ПроверкаВы подключаете его к копии формы и отправляете пробный ответ
  4. 4
    ПравкиВы просите правки в рамках пакета и присылаете текст ошибки, если она есть

Что нужно от вас

Вопросы вашей формы (скриншот или список), адреса, на которые приходят оповещения, и, начиная со «Стандарта», правило, кому что, например по городу или услуге. Тема и текст, который нужен в письме. Для подтверждения тому, кто заполнил форму («Премиум»), текст этого письма и вопрос, в котором спрашивается его адрес. Сохраняет ли ваша форма ответы в Google Таблицу.

В брифе мы спросим:

  • Для чего форма?
  • Кто должен получать оповещения?
  • Каким должно быть письмо?
  • Что ещё отправлять?

Сравнение пакетов

ПакетыЭкономОдно оповещение16 $СтандартОповещения с настройками33 $БизнесПрограмма оповещений67 $
Срок1 день2 дня3 дня
Доработки123
Коддо 150 строкдо 400 строкдо 1000 строк
Файлов кода1до 3до 8
Файл настроекНетДаДа
Понятные ошибки и журнал работыНетДаДа
Параметры запуска и инструкция для запуска по расписаниюНетНетДа
Инструкция по установке и запуску (README)ДаДаДа
ЯзыкGoogle Apps ScriptGoogle Apps ScriptGoogle Apps Script
Заказать ЭкономЗаказать СтандартЗаказать Бизнес

Защита оплаты

Вы оплачиваете заказ сразу, но деньги переходят сервису только за принятую работу.

  • Фиксированная ценаЦена пакета не меняется после оплаты.
  • Деньги резервируютсяПри оплате сумма только резервируется. Сервису она переходит, когда вы примете работу.
  • Проверка перед сдачейКаждый результат проходит проверку качества, прежде чем попасть к вам, и вы видите его на странице заказа до приёмки.
  • Бесплатные доработкиПросите изменения в рамках брифа столько раз, сколько предусмотрено пакетом.
  • Приёмка через 3 дняЕсли в течение 3 дней после сдачи вы не примете работу и не попросите изменений, она будет принята автоматически. Если после сдачи вы напишете в чат заказа, заказ подождёт; ответив, мы можем начать отсчёт 3 дней заново и сообщим об этом в чате.
  • Переделка или полный возвратЕсли результат не соответствует брифу и доработки не помогли или срок превышен больше чем вдвое, напишите в чат заказа: мы переделаем работу или полностью вернём деньги.
Как это работает →

Вопросы и ответы

Он может отправить человеку подтверждение?

В «Премиуме» да, если форма спрашивает адрес почты. Письмо уходит из вашего аккаунта Google и выглядит как любое ваше письмо.

Он сработает, если форма в чужом аккаунте?

Скрипт должен подключить редактор формы, и письма тогда уходят из его аккаунта. В README показаны шаги.

Он может присылать SMS или сообщение в мессенджер?

Это предложение отправляет письма. Сообщение в сервис с открытым API, например в канал Slack через его входящий вебхук, можно добавить в рамках пакета, если вы сами создадите этот вебхук.

Вы получите доступ к моей форме?

Нет. Код вы добавляете сами и даёте ему доступ в своём аккаунте. Нам хватит скриншота вопросов.

Не нашли ответ?

Пакеты