Найти в Дзене
Просто про Таблицы

Google Таблицы, которые отправляют письма, когда вы забыли

Иногда достаточно одного слова в таблице, чтобы не пропустить проблему. Например — "Просрочено". Но как сделать так, чтобы таблица сама сообщала об этом? Сегодня разберёмся, как настроить автоматическую отправку письма, если в столбце со статусами появляется такое значение. Это статья из цикла про автоматизацию Google Таблиц с помощью Apps Script. Если ты никогда не писал(а) код — не страшно. Всё пойдёт пошагово и без технической каши. function checkOverdueAndNotify() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Задачи");
const data = sheet.getRange("A2:E").getValues();
const overdueRows = data.filter(row => row[4] === "Просрочено"); // Статус — в колонке E
if (overdueRows.length > 0) {
const email = Session.getActiveUser().getEmail();
const subject = "⚠️ В таблице есть просроченные задачи";
// Формируем список задач
let body = `Найдено ${overdueRows.length} задач со статусом \"Просрочено\":\n\n`;
overdueRows.forEach((row, i) => {
Оглавление

Иногда достаточно одного слова в таблице, чтобы не пропустить проблему. Например — "Просрочено". Но как сделать так, чтобы таблица сама сообщала об этом? Сегодня разберёмся, как настроить автоматическую отправку письма, если в столбце со статусами появляется такое значение.

Это статья из цикла про автоматизацию Google Таблиц с помощью Apps Script. Если ты никогда не писал(а) код — не страшно. Всё пойдёт пошагово и без технической каши.

Интерфейс Apps Script
Интерфейс Apps Script

Что мы хотим сделать:

  • Есть таблица задач
  • В одной из колонок может появиться статус "Просрочено"
  • Если он появляется — на почту уходит письмо с предупреждением

Шаг 1. Открываем редактор скрипта

  1. Таблица открыта
  2. Меню Расширения → Apps Script
  3. В новом окне удаляем всё и вставляем код ниже
Меню Расширения → Apps Script
Меню Расширения → Apps Script

Шаг 2. Код скрипта

function checkOverdueAndNotify() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Задачи");
const data = sheet.getRange("A2:E").getValues();
const overdueRows = data.filter(row => row[4] === "Просрочено"); // Статус — в колонке E

if (overdueRows.length > 0) {
const email = Session.getActiveUser().getEmail();
const subject = "⚠️ В таблице есть просроченные задачи";

// Формируем список задач
let body = `Найдено ${overdueRows.length} задач со статусом \"Просрочено\":\n\n`;
overdueRows.forEach((row, i) => {
body += `${i + 1}. ${row[0]} — ${row[1]} — ${row[2]}\n`; // Дата, Категория, Описание
});

MailApp.sendEmail(email, subject, body);
}
}

Убедись, что:

  • Таблица называется "Задачи"
  • Статус находится в колонке E (можно поменять цифру в row[4])
Результат выполнения скрипта на почте
Результат выполнения скрипта на почте

После выполнения скрипта вам на почту придёт письмо с темой «⚠️ В таблице есть просроченные задачи». В теле письма будет указан список всех найденных задач со статусом «Просрочено» — с указанием даты, категории и описания.

Шаг 3. Запускаем вручную (первый раз)

  • В редакторе нажми кнопку ▶️ (Выполнить)
  • Придётся дать разрешение (один раз)
При первом запуски потребуется авторизация для запуска скрипта
При первом запуски потребуется авторизация для запуска скрипта

При первом запуске Google требует подтвердить, что ты разрешаешь выполнение этих действий. Это защита — чтобы случайный скрипт не делал ничего без твоего ведома.

  1. Нажми «Проверить разрешения»
  2. Выбери свой Google-аккаунт
  3. Подтверди, что ты разрешаешь доступ:
    к просмотру и управлению таблицами
    к отправке писем от твоего имени

⚠️ Иногда Google может предупредить, что проект «не проверен». Это нормально, если скрипт написан тобой — просто нажми «Подробнее» → «Перейти к…» → и подтверди.

Разрешения на создания проекта в Apps Script
Разрешения на создания проекта в Apps Script

Это происходит один раз для каждого скрипта.

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

  • Если всё работает — письмо придёт на твою почту (ту, под которой ты в аккаунте)

Шаг 4. Настраиваем автоматическую проверку

  1. В редакторе скрипта — иконка ⏰ "Триггеры"
Общее менб
Общее менб
Интерфейс меню триггеров
Интерфейс меню триггеров

2. Добавить триггер → выбрать условия по скриншот ниже.

Установить время — каждый день или как тебе удобно

Установка критерия отправки письма
Установка критерия отправки письма

Теперь проверка и письмо будут приходить автоматически.

Это полезно, если ты:

  • Ведёшь таблицу задач
  • Следишь за сроками
  • Не хочешь каждый день глазами выискивать проблемы

Что можно улучшить

1. Отправлять письмо не только себе, но и команде:

const recipients = [
"you@yandex.ru",
"teammate@yandex.ru",
"manager@yandex.ru"
];
recipients.forEach(address => MailApp.sendEmail(address, subject, body));

2. Подсветить просроченные строки в таблице:

overdueRows.forEach((row, i) => {
const rowIndex = i + 2; // с учётом заголовков
sheet.getRange(rowIndex, 1, 1, 5).setBackground("#ffdddd");
});

3. Добавить дату и время в письмо:

let now = new Date();
body = `На ${now.toLocaleString()} найдено ${overdueRows.length} задач со статусом "Просрочено":\n\n` + body;

Автоматизация в таблицах — это не про сложный код. Это про спокойную голову. А в следующей статье покажу, как добавить кнопку для создания новой задачи с шаблоном строки.