- Как настроить автоответчик в Gmail с помощью Google Apps Script — пошагово без лишней воды
- Зачем вообще это нужно?
- Что тебе понадобится
- Шаг 1: Создай таблицу с получателями
- Шаг 2: Создай скрипт
- Шаг 3: Настрой триггер
- Как адаптировать шаблон под себя
- Что делать, если ты хочешь ответить только на письма с определённых адресов?
- Частые ошибки — и как их избежать
- Когда это работает, а когда — нет
- Как лучше сделать — рекомендации от практика
- Сценарии выбора: что делать в разных ситуациях
- Что дальше?
Как настроить автоответчик в Gmail с помощью Google Apps Script — пошагово без лишней воды
Ты уже устал от одинаковых писем: «Сейчас не могу ответить, вернусь через неделю», «На связи в понедельник», «Пиши в личку, если срочно». Ты не хочешь каждый раз вручную отвечать. Или тебе нужно, чтобы клиенты получали ответ сразу, даже если ты спишь, в отпуске или просто не смотришь почту. Ты не хочешь платить за платные сервисы вроде Mailbot или Lavender. Ты хочешь — и можешь — сделать это бесплатно, точно, и без лишних кнопок.
Вот как настроить автоответчик в Gmail с помощью Google Apps Script — так, чтобы он работал как часы, не ломался и не спамил людей.
Зачем вообще это нужно?
Представь: ты уезжаешь в отпуск на две недели. Ты не хочешь, чтобы клиенты думали, что ты их игнорируешь. Ты хочешь, чтобы они сразу получали чёткий ответ: «Я ухожу в отпуск, вернусь 15 мая, отвечу тогда». А если кто-то пишет срочно — пусть знает, куда звонить или к кому обратиться.
Если ты фрилансер, бизнесмен, консультант — это не роскошь. Это профессионально. И да, это можно сделать за 20 минут, бесплатно, и без установки сторонних приложений.
Google Apps Script — это встроенный инструмент Google, который позволяет писать скрипты на JavaScript, чтобы автоматизировать Gmail, Таблицы, Диск и другие сервисы. Он работает на серверах Google, не требует сервера, не требует оплаты, и не требует знаний программирования на уровне «я изучал Java в университете».
Что тебе понадобится
- Аккаунт Google (Gmail, конечно)
- Доступ к Google Таблицам (они нужны для хранения списка получателей и статуса ответов)
- 15–25 минут свободного времени
- Желание не отвечать на одно и то же письмо 50 раз
Всё. Больше ничего. Ни подписки, ни плагинов, ни «установи это расширение».
Шаг 1: Создай таблицу с получателями
Зайди в Google Таблицы и создай новую таблицу. Назови её, например, «Автоответчики — клиенты».
Создай три столбца:
| ответ_отправлен | дата_ответа | |
|---|---|---|
| client@example.com | false | |
| another@company.ru | false | |
| manager@startup.io | false |
В столбце email — адреса, которым ты хочешь отправить автоответ.
В столбце ответ_отправлен — ставь false (логическое значение, не текст!). Это значит: «ещё не отвечал».
В столбце дата_ответа — оставь пустым. Скрипт сам запишет дату, когда ответ будет отправлен.
Почему именно так? Потому что Gmail не позволяет отвечать на одно и то же письмо дважды. Если ты не будешь отслеживать, кому уже ответил — ты начнёшь слать одни и те же письма снова и снова. И это будет выглядеть как спам. А Google может заблокировать твой аккаунт за массовые рассылки. Мы это исключаем.
Шаг 2: Создай скрипт
Теперь перейди в Google Apps Script (создай новый проект).
У тебя откроется пустой редактор. Удали всё, что там есть — и вставь этот код:
function sendAutoReply() {
const sheet = SpreadsheetApp.openById('ТВОЙ_ID_ТАБЛИЦЫ').getActiveSheet();
const data = sheet.getRange('A2:C' + sheet.getLastRow()).getValues();
const today = new Date();
const cutoffDate = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000); // 7 дней назад
data.forEach(row => {
const email = row[0];
const sent = row[1];
const dateSent = row[2];
if (!email || sent === true) return;
const threads = GmailApp.search(`from:${email} is:unread`);
threads.forEach(thread => {
const messages = thread.getMessages();
const lastMessage = messages[messages.length - 1];
if (lastMessage.isInbox() && !lastMessage.isSent()) {
const subject = lastMessage.getSubject();
const body = lastMessage.getBody();
// Проверяем, что это не ответ на наш же автоответ
if (subject.includes('Re:') || subject.includes('ответ:') || subject.includes('Re:')) {
return;
}
// Проверяем, не было ли ответа в последние 7 дней
if (dateSent && new Date(dateSent) > cutoffDate) {
return;
}
// Отправляем ответ
GmailApp.sendEmail(
email,
'Спасибо за письмо — я сейчас в отпуске',
`Здравствуйте!
Спасибо за ваше сообщение. Я сейчас в отпуске до 15 мая и не могу отвечать на письма в реальном времени.
Если вопрос срочный — пишите в Telegram: @yourname или звоните +7 (999) 123-45-67.
Я отвечу на все письма после 15 мая.
С уважением,
Ваше имя`,
{
cc: 'yourbackup@company.com',
replyTo: 'yourbackup@company.com'
}
);
// Обновляем таблицу
const rowNumber = sheet.getRange('A2').getRow() + data.indexOf(row);
sheet.getRange(rowNumber, 2).setValue(true);
sheet.getRange(rowNumber, 3).setValue(today);
}
});
});
}
Теперь замени 'ТВОЙ_ID_ТАБЛИЦЫ' на реальный ID своей таблицы. Как его найти? Открой свою таблицу в браузере — в адресной строке будет что-то вроде:
https://docs.google.com/spreadsheets/d/1aBcDeFgHiJkLmNoPqRsTuVwXyZ/edit#gid=0
Скопируй всё, что между /d/ и /edit — это и есть ID. Вставь его вместо 'ТВОЙ_ID_ТАБЛИЦЫ'.
Сохранить скрипт можно по Ctrl+S — дай ему имя, например, «Автоответчик Gmail».
Шаг 3: Настрой триггер
Скрипт не запустится сам. Его нужно запускать регулярно. Нажми на значок Триггеры (часы в левом меню).
Нажми + Добавить триггер.
Выбери:
- Функция: sendAutoReply
- Источник: Время
- Тип: Часовой таймер
- Частота: Каждый час
Нажми «Сохранить».
Тебя попросят разрешить доступ. Нажми «Разрешить» — это нужно, чтобы скрипт мог читать твои письма и отправлять ответы.
Теперь скрипт будет проверять почту каждый час. Он ищет новые письма от людей из таблицы, если они ещё не получали ответ — отправляет шаблон. И помечает их в таблице, чтобы не слать второй раз.
Как адаптировать шаблон под себя
Ты не обязан использовать мой текст. Вот как его менять:
Найди в коде этот блок:
GmailApp.sendEmail(
email,
'Спасибо за письмо — я сейчас в отпуске',
`Здравствуйте!
Спасибо за ваше сообщение. Я сейчас в отпуске до 15 мая и не могу отвечать на письма в реальном времени.
Если вопрос срочный — пишите в Telegram: @yourname или звоните +7 (999) 123-45-67.
Я отвечу на все письма после 15 мая.
С уважением,
Ваше имя`,
{
cc: 'yourbackup@company.com',
replyTo: 'yourbackup@company.com'
}
);
Меняй:
- Тему письма — сделай её короткой и честной: «Я сейчас вне офиса», «Ответ на письмо», «Спасибо за обращение»
- Текст — напиши, как тебе удобно. Не пиши «я не в офисе», пиши «я сейчас в командировке в Барселоне, отвечу в понедельник» — это человечнее
- Контакт для срочных вопросов — укажи реальный номер, Telegram, WhatsApp, кого-то из коллег
- CC и replyTo — если у тебя есть помощник, который будет отвечать, укажи его почту. Это не обязательно, но полезно
Если ты не в отпуске, а просто перегружен — напиши: «Сейчас я обрабатываю письма раз в 2 дня. Отвечу в течение 48 часов. Спасибо за понимание».
Чем конкретнее — тем лучше. Люди ценят честность, а не шаблоны.
Что делать, если ты хочешь ответить только на письма с определённых адресов?
Ты можешь настроить скрипт так, чтобы он реагировал только на письма с определённых доменов — например, только от клиентов, а не от спама.
Добавь эту строку перед if (lastMessage.isInbox() && !lastMessage.isSent()) {:
if (!email.endsWith('@client.com') && !email.endsWith('@partner.ru')) return;
Это значит: отвечать только тем, чьи письма приходят с доменов @client.com или @partner.ru. Остальные игнорируются.
Если ты хочешь, чтобы скрипт реагировал на письма с определёнными словами в теме — например, «заявка», «заказ», «вопрос» — добавь:
if (!subject.toLowerCase().includes('заявка') && !subject.toLowerCase().includes('заказ')) return;
Так ты не будешь отвечать на письма типа «Привет, как дела?» или «Помогите с паролем».
Частые ошибки — и как их избежать
- Не обновляешь статус в таблице — если забыл поставить
falseв столбце «ответ_отправлен», скрипт не будет отправлять ответы. Убедись, что везде стоит именноfalse, а не «нет» или «0». - Письмо уже было прочитано — скрипт ищет только
is:unread. Если ты открыл письмо — он его проигнорирует. Это правильно. Но если ты хочешь, чтобы он отвечал даже на прочитанные — убериis:unreadиз поиска. - Ты не разрешил доступ — если при сохранении триггера не нажал «Разрешить» — скрипт не работает. Проверь в настройках триггеров: статус должен быть «активен».
- Слишком много писем за раз — Google ограничивает: максимум 100 писем в день. Если у тебя 500 новых писем — скрипт отработает только за несколько дней. Это нормально. Не пытайся обойти ограничения — Google может заблокировать аккаунт.
- Ты отправляешь ответы на свои же письма — если ты пишешь себе в Gmail и ждёшь автоответ — не жди. Скрипт не отвечает на письма, которые ты отправил сам. Это заложено в логику:
!lastMessage.isSent().
Когда это работает, а когда — нет
Этот скрипт — не панацея. Он работает, если:
- Ты получаешь письма от небольшого круга людей (до 100 в день)
- Ты хочешь автоматизировать ответы на стандартные запросы
- Ты не боишься немного кода и готов потратить 20 минут на настройку
- Ты не хочешь платить за сервисы вроде Missive или SaneBox
Он не подходит, если:
- Ты получаешь 500+ писем в день — тогда нужна CRM или платный автоответчик
- Тебе нужно ответить с разными шаблонами в зависимости от темы — это уже сложная логика, требует базы знаний
- Ты хочешь, чтобы ответы были персонализированы по имени клиента — можно, но нужно подключать Google Таблицы с данными клиентов
- Ты не умеешь копировать и вставлять текст — тогда лучше воспользуйся Gmail-шаблонами (встроенными) или сервисом FreshMail
Как лучше сделать — рекомендации от практика
- Не делай слишком длинные ответы — 5–6 строк. Люди не читают эссе.
- Всегда указывай альтернативный контакт — если человек срочно ждёт ответа, пусть знает, куда обратиться.
- Проверяй раз в неделю — открывай таблицу и смотри, сколько писем получили ответ. Если 0 — значит, скрипт сломался.
- Не используй «С уважением» в деловой переписке, если ты не из России — в США и Европе пишут просто «Thanks», «Best», «Regards».
- Если ты в команде — делай общий автоответчик — создай отдельный Gmail-аккаунт вроде
info@company.comи настрой на него скрипт. Тогда ответы не зависят от того, кто ушёл в отпуск. - Не забывай про дату — когда ты вернёшься, удали или отключи триггер. Иначе ты будешь отвечать на письма даже после отпуска.
Сценарии выбора: что делать в разных ситуациях
Ситуация 1: Ты уходишь в отпуск на 2 недели
→ Используй скрипт с шаблоном: «Я ухожу в отпуск до XX. Отвечу тогда. Для срочных вопросов — звоните Y.»
→ Добавь в таблицу 30–50 адресов клиентов, с которыми ты активно общался.
Ситуация 2: Ты фрилансер, и тебе пишут 20–30 писем в неделю
→ Добавь фильтр по теме: «заказ», «прайс», «стоимость»
→ Используй два шаблона: один для новых клиентов, другой для повторных. Для этого создай две таблицы и два скрипта.
Ситуация 3: Ты ведёшь бизнес, и тебе пишут из разных стран
→ Напиши два варианта ответа: на английском и на русском
→ Добавь в таблицу столбец «язык» — и в коде проверяй: если email заканчивается на .de — отправляй немецкий шаблон.
Ситуация 4: Ты не хочешь, чтобы клиенты думали, что ты не отвечаешь
→ Отправляй ответ не сразу, а через 2–3 часа
→ Добавь в код задержку: Utilities.sleep(1000 * 60 * 60 * 2); — это 2 часа. Скрипт будет ждать, пока человек не ответит сам — и только тогда отвечать.
Что дальше?
Ты настроил автоответчик. Он работает. Теперь:
- Отправь себе тестовое письмо с адреса из таблицы — проверь, пришёл ли ответ
- Подожди час — проверь, пометилась ли строка в таблице как «ответ_отправлен: true»
- Если всё работает — забудь про это на пару недель
- Через 2 недели — вернись, удали триггер, удали таблицу, если больше не нужна
Это не магия. Это простой инструмент. Он не заменит твою работу. Он просто освободит тебе время — чтобы ты мог делать то, что действительно важно.
Ты не обязан отвечать на каждое письмо. Но ты обязан дать человеку понять, что ты его услышал. Это и есть профессионализм.
Информация, представленная в этой статье, носит ознакомительный характер. Автоматизация электронной почты может повлиять на деловые отношения. Перед настройкой скриптов убедись, что они соответствуют политикам твоей компании и законодательству. При сомнениях — проконсультируйся с IT-специалистом или юристом.



