Рассылка из Google ТаблицыРазработка и доработка

Скрипт Google Apps Script, который отправит личные письма из вашего Gmail людям из вашей Google Таблицы

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

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

Скрипт Google Apps Script, который отправит личные письма из вашего Gmail людям из вашей 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: все продажи и отдельный лист с итогами по магазинам.

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

Об услуге

Когда одно и то же письмо нужно отправить 80 клиентам, ученикам или партнёрам с их именем, датой или суммой, копирование занимает часы. Этот скрипт Google Apps Script живёт в вашей Google Таблице и отправляет каждой строке личное письмо из вашего собственного Gmail: подставляет в шаблон {{Имя}}, {{Дата}} и любые другие столбцы, пишет в строку «Отправлено» и время и пропускает уже отправленные строки, так что его можно запускать повторно без опаски. Он для вашего собственного списка людей, которые ждут ваших писем, а не для купленных баз и холодных массовых рассылок. Google ограничивает число писем, которые скрипт отправляет за день, и для бесплатного Gmail лимит ниже, чем для Google Workspace; скрипт останавливается на лимите и продолжает позже. Ставите и запускаете его вы в своём аккаунте.

Что входит

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

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

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

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

Названия столбцов вашей таблицы и две-три строки с выдуманными именами и адресами, тема и текст письма с местами, куда идут столбцы, и простой ли это текст или с оформлением из черновика Gmail. Кто люди в списке и как они в него попали (ваши клиенты, участники, ученики), примерно сколько строк и пользуетесь ли вы бесплатным Gmail или Google Workspace. Вложения, если они есть, и где они лежат на Диске.

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

  • Кому вы пишете?
  • Какие столбцы в таблице?
  • Что должно быть в письме?
  • Бесплатный Gmail или Google Workspace?

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

ПакетыЭкономПростая рассылка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 разрешает вашему аккаунту отправлять из скрипта, и для бесплатного Gmail это меньше, чем для Google Workspace; текущие цифры Google указывает на странице квот Apps Script. Скрипт останавливается на лимите, а следующий запуск продолжает с первой неотправленной строки.

Можно отправить по купленной базе?

Нет. Скрипт для людей, которые вас знают и ждут ваших писем, например ваших клиентов или участников. Купленные базы и холодные массовые рассылки нарушают правила Google, и аккаунт могут заблокировать.

Он добавит ссылку для отписки?

Он может добавить строку с просьбой ответить, если человек не хочет таких писем, и пропускать строки, которые вы отметили как отписавшиеся. Для рассылок с отпиской в один щелчок лучше подходит сервис рассылок.

Вы получите доступ к моему Gmail?

Нет. Код вы вставляете в свою таблицу, и разрешение на отправку писем Google спрашивает у вас, а не у нас. В ваш аккаунт мы не заходим.

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

Пакеты