Как связать Google Sheets, Make.com и ИИ для автоматизации базы заказов: обходим лимиты Google Apps Script

Автоматизация Google Sheets через Apps Script

Всем привет! Я уже давно не обновлял этот блог, потому что последние 6 лет полностью погружен в развитие и масштабирование собственных производственных проектов. За это время мы прошли путь от локального крафта до серийного производства, и сегодня моя работа распределена между тремя ключевыми направлениями, под которые мы сейчас активно перестраиваем всю цифровую экосистему:

Когда ты одновременно управляешь розничным маркетингом, b2b-продажами и физическим цехом, операционка начинает сжирать всё свободное время. Особенно остро встал вопрос ведения базы заказов. Наша рабочая таблица постоянно растет и за несколько недель может добавляться 400+ строк, куда непрерывно поступают как новые, так и обрабатываются старые заказы.

К каждому заказу нужно подгрузить ссылку на фото выполненной работы из Google Диска, проверить статус, сопоставить данные, а в некоторых процессах — задействовать ИИ для обработки графики или генерации сопроводительных данных.

Делать это вручную — адский труд. Как IT-шник в душе, я решил автоматизировать этот процесс, связав воедино Google Sheets (как базу данных/CRM), Google Apps Script, Make.com (как дирижера сценариев) и API нейросетей.

В этой статье я пошагово разберу, как построить такую архитектуру, с какими техническими факапами (вроде бесконечного времени выполнения скриптов на больших массивах данных) я столкнулся, и как их решить.

Архитектура решения: связываем базу заказов, облако и ИИ

Задача выглядела следующим образом: есть таблица, куда стекаются заказы (включая данные из маркетплейсов вроде Ozon). Скрипт должен проверить строки, найти заказы, у которых еще нет ссылок на фото готового изделия, пойти в Google Диск, найти нужный файл по номеру заказа, подгрузить актуальное изображение и вернуть ссылку обратно в таблицу. При необходимости данные передаются в ИИ через API (мы используем кастомные связки, включая Nano Banana и Gemini через API Studio).

Вся логика строится на трех уровнях:

[ Google Sheets ] <---> [ Google Apps Script ] <---> [ Make.com ] <---> [ API Нейросетей / Drive ]
  1. Google Sheets выступает в роли легковесной ERP/CRM-системы для менеджеров.

  2. Google Apps Script берет на себя тяжелую работу по локальной фильтрации данных внутри таблицы, чтобы не гонять лишние пустые запросы по API.

  3. Make.com (Integromat) управляет вебхуками, проверяет файлы на Google Диске и связывает логику со сторонними сервисами.

Проблема таймаутов в Apps Script на массивах в 400+ строк

Первая же итерация «лобового» скрипта показала классическую проблему: Google Apps Script имеет жесткий лимит на время выполнения одного цикла (6 минут).

Когда скрипт пытается перебрать массив в 400+ строк, проверить по каждой из них статус заказа, а затем для каждого пустой ячейки пойти через Make.com в Google Диск искать соответствие файла — он просто падает по таймауту на середине пути. При этом вебхуки начинают забивать очередь и съедать лимиты операций, а сам скрипт выполняется «оооочень долго».

Как мы оптимизировали логику (Технический инсайт):

Чтобы база заказов шуршала быстро, а скрипт не зависал, мы перестроили алгоритм проверки:

  1. Предварительная фильтрация: Вместо того чтобы опрашивать Google Диск для каждой строки при каждом запуске, скрипт берет только те строки, где колонка с номером заказа заполнена, а колонка со ссылкой на фото пуста. За один проход он точечно находит, к примеру, около 260+ таких строк.

  2. Обработка статуса «Файл не найден»: Если при поиске в облаке файл с фото под этот заказ еще не готов или не найден, ячейка получает статус "Файл не найден".

  3. Запрет на перепроверку: В следующий сессию скрипт полностью игнорирует строки со статусом «Файл не найден». Это критически важно: если файла не было в облаке минуту назад, нет смысла тратить ресурсы и секунды выполнения на его повторный поиск, пока менеджер вручную не сбросит этот статус.

Результат оптимизации: время выполнения сократилось с нескольких минут до ~60 секунд! Из сотен строк скрипт мгновенно выбирает только «свежие» пустые ячейки и успешно подгружает новые фото, не насилуя лимиты Google.

Макросы на стероидах: ускоряем обработку графики к заказам

Передать ссылку из таблицы в ИИ — полдела. Но контент и фото выполненных работ для базы нужно сначала подготовить. В процессе работы над индивидуальными макетами для KAMAEVA ART и b2b-каталогами мы часто используем генеративные инструменты.

Чтобы менеджер или дизайнер не тратил время на ручное скачивание/загрузку картинок в веб-интерфейсы ИИ, я написал AutoHotkey макрос.

  • Как это работает: Оператор в графическом редакторе копирует макет или фото в буфер обмена. Нажимает горячую клавишу. АНК-скрипт подхватывает изображение из клипборда, конвертирует его «на лету», открывает Google AI Studio и автоматически вставляет картинку в поле ввода.

Это экономит около 30-40 секунд на ОДНОМ заказе. Умножьте это на наш поток в 400+ заказов — и вы получите недели сэкономленного рабочего времени сотрудника в масштабах месяца.

Чек-лист для внедрения CRM на базе Google Sheets

Если вы хотите повторить этот стек у себя для автоматизации базы заказов или e-commerce процессов, вот главные правила, к которым я пришел на практике:

  1. Никогда не делайте запросы к API внутри циклов for в Google Sheets. Сначала соберите все данные в один массив через getValues(), отфильтруйте его методами JS (оставив только нужные номера заказов), и только потом отправляйте пакетный запрос.

  2. Маркируйте пустые результаты. Статусы «Ошибка», «Файл не найден», «Пропущено» — это триггеры для вашего скрипта, которые говорят ему на следующем круге: «Сюда больше не ходи, не трать время выполнения».

  3. Разделяйте логику. Пусть таблицы отвечают за хранение и фильтрацию, Make.com — за интеграцию и работу с файловой структурой Диска, а сторонние API — за обработку данных.

Автоматизация производства — это бесконечный, но безумно интересный процесс. Сейчас, когда мы масштабируем KAMAEVA ЦЕХ под крупные оптовые контракты, именно этот IT-бэкграунд позволяет нам держать высокую скорость обработки заказов и не раздувать штат операционных сотрудников.