Всем привет! Я уже давно не обновлял этот блог, потому что последние 6 лет полностью погружен в развитие и масштабирование собственных производственных проектов. За это время мы прошли путь от локального крафта до серийного производства, и сегодня моя работа распределена между тремя ключевыми направлениями, под которые мы сейчас активно перестраиваем всю цифровую экосистему:
-
KAMAEVA ART — создание кастомных аксессуаров, включая наши флагманские кожаные брелоки с индивидуальной фотогравировкой на нержавеющей стали под личные розничные заказы.
-
KAMAEVA B2B — оптовая лазерная гравировка брендированной продукции и корпоративные заказы для бизнеса.
-
KAMAEVA ЦЕХ — контрактное производство полного цикла: серийные изделия из натуральной кожи и нержавеющей стали на заказ оптом.
Когда ты одновременно управляешь розничным маркетингом, 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 ]
-
Google Sheets выступает в роли легковесной ERP/CRM-системы для менеджеров.
-
Google Apps Script берет на себя тяжелую работу по локальной фильтрации данных внутри таблицы, чтобы не гонять лишние пустые запросы по API.
-
Make.com (Integromat) управляет вебхуками, проверяет файлы на Google Диске и связывает логику со сторонними сервисами.
Проблема таймаутов в Apps Script на массивах в 400+ строк
Первая же итерация «лобового» скрипта показала классическую проблему: Google Apps Script имеет жесткий лимит на время выполнения одного цикла (6 минут).
Когда скрипт пытается перебрать массив в 400+ строк, проверить по каждой из них статус заказа, а затем для каждого пустой ячейки пойти через Make.com в Google Диск искать соответствие файла — он просто падает по таймауту на середине пути. При этом вебхуки начинают забивать очередь и съедать лимиты операций, а сам скрипт выполняется «оооочень долго».
Как мы оптимизировали логику (Технический инсайт):
Чтобы база заказов шуршала быстро, а скрипт не зависал, мы перестроили алгоритм проверки:
-
Предварительная фильтрация: Вместо того чтобы опрашивать Google Диск для каждой строки при каждом запуске, скрипт берет только те строки, где колонка с номером заказа заполнена, а колонка со ссылкой на фото пуста. За один проход он точечно находит, к примеру, около 260+ таких строк.
-
Обработка статуса «Файл не найден»: Если при поиске в облаке файл с фото под этот заказ еще не готов или не найден, ячейка получает статус
"Файл не найден". -
Запрет на перепроверку: В следующий сессию скрипт полностью игнорирует строки со статусом «Файл не найден». Это критически важно: если файла не было в облаке минуту назад, нет смысла тратить ресурсы и секунды выполнения на его повторный поиск, пока менеджер вручную не сбросит этот статус.
Результат оптимизации: время выполнения сократилось с нескольких минут до ~60 секунд! Из сотен строк скрипт мгновенно выбирает только «свежие» пустые ячейки и успешно подгружает новые фото, не насилуя лимиты Google.
Макросы на стероидах: ускоряем обработку графики к заказам
Передать ссылку из таблицы в ИИ — полдела. Но контент и фото выполненных работ для базы нужно сначала подготовить. В процессе работы над индивидуальными макетами для KAMAEVA ART и b2b-каталогами мы часто используем генеративные инструменты.
Чтобы менеджер или дизайнер не тратил время на ручное скачивание/загрузку картинок в веб-интерфейсы ИИ, я написал AutoHotkey макрос.
-
Как это работает: Оператор в графическом редакторе копирует макет или фото в буфер обмена. Нажимает горячую клавишу. АНК-скрипт подхватывает изображение из клипборда, конвертирует его «на лету», открывает Google AI Studio и автоматически вставляет картинку в поле ввода.
Это экономит около 30-40 секунд на ОДНОМ заказе. Умножьте это на наш поток в 400+ заказов — и вы получите недели сэкономленного рабочего времени сотрудника в масштабах месяца.
Чек-лист для внедрения CRM на базе Google Sheets
Если вы хотите повторить этот стек у себя для автоматизации базы заказов или e-commerce процессов, вот главные правила, к которым я пришел на практике:
-
Никогда не делайте запросы к API внутри циклов
forв Google Sheets. Сначала соберите все данные в один массив черезgetValues(), отфильтруйте его методами JS (оставив только нужные номера заказов), и только потом отправляйте пакетный запрос. -
Маркируйте пустые результаты. Статусы «Ошибка», «Файл не найден», «Пропущено» — это триггеры для вашего скрипта, которые говорят ему на следующем круге: «Сюда больше не ходи, не трать время выполнения».
-
Разделяйте логику. Пусть таблицы отвечают за хранение и фильтрацию, Make.com — за интеграцию и работу с файловой структурой Диска, а сторонние API — за обработку данных.
Автоматизация производства — это бесконечный, но безумно интересный процесс. Сейчас, когда мы масштабируем KAMAEVA ЦЕХ под крупные оптовые контракты, именно этот IT-бэкграунд позволяет нам держать высокую скорость обработки заказов и не раздувать штат операционных сотрудников.


