Продажи · 14 мин чтения

CRM в Google Таблицах: шаблон, пределы и когда пора в настоящую CRM

Google Таблица — не CRM, но одному-двум людям, которые сами принимают заявки, её хватает. Условие одно: у каждой заявки есть следующий шаг с датой, а просроченное видно без поиска. Ниже — шаблон, два приёма автоматизации на Apps Script и признаки, по которым понятно, что таблица перестала справляться.

Сетка электронной таблицы с одной оранжевой строкой, стрелка вправо и доска из трёх колонок с карточками; одна карточка во второй колонке тоже оранжевая

CRM в Google Таблицах — рабочий вариант для малого бизнеса, пока заявки ведут один-два человека. Сама таблица не напомнит о звонке, не сохранит переписку и не спрячет от менеджера чужих клиентов. Часть этого закрывают правила ведения и небольшой скрипт, остальное не закрывается никак. Если нужен шаблон таблицы для учёта клиентов, ниже он целиком: листы, колонки, списки и формула подсветки.

Пределы ниже — из документации Google на 28 сентября 2026 года. Квоты Apps Script, как пишет сам Google, могут поменяться без предупреждения.

20 млн
ячеек или 100 МБ — предел одной Google Таблицы по справке Google Диска
90 минут
в сутки на все триггеры Apps Script у аккаунта gmail.com; у Google Workspace — 6 часов
6 минут
максимум на один запуск скрипта Apps Script

Когда таблицы хватает вместо CRM

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

Что нужно от CRM Таблица сама Как закрыть
Список заявок и клиентов Да Листы «Заявки» и «Клиенты»
Статус и следующий шаг Да Выпадающие списки и дата шага
Напоминание о шаге Нет Подсветка просроченного и утренняя сводка скриптом
Заявки с сайта Нет Google Форма или веб-приложение на Apps Script
История переписки Нет Не закрывается: переписка остаётся в мессенджере
Менеджер видит только своих Нет Не закрывается: доступ даётся на файл целиком
Журнал звонков Нет Не закрывается без телефонии

Такой мини-CRM для малого бизнеса хватает, когда заявки принимают и ведут до сделки одни и те же один-два человека. Утренний просмотр списка должен занимать минуты, клиенты пишут в один-два канала, и никто не спорит, чей клиент.

Учёт заявок в Excel устроен так же, структура ниже переносится один в один. Главная разница — в автоматизации: скрипты ниже написаны на Apps Script и работают только с Google Таблицами.

Шаблон CRM в Google Таблицах: три листа

Лист «Заявки». Одна строка — одно обращение. Буквы колонок важны: на них ссылаются формула и скрипт ниже.

Колонка Что писать Зачем
A. Дата Дату обращения, а не «вчера» Считать, сколько заявка ждала
B. Клиент Имя и телефон в одном формате: +998 XX XXX-XX-XX Находить повторные обращения и дубли
C. Источник Из списка: сайт, Telegram, Instagram, звонок, рекомендация Понимать, какой канал приводит клиентов
D. Запрос Что хочет, одной фразой Не перечитывать переписку перед звонком
E. Статус Из списка: новая, в работе, КП отправлено, оплата, выиграна, проиграна Видеть воронку
F. Следующий шаг Глагол: позвонить, отправить КП, напомнить об оплате Заявка без шага теряется
G. Дата шага Дату Подсветка просроченного и утренняя сводка
H. Менеджер Из списка Кто отвечает
I. Сумма Число, без «тыс.» и валюты в ячейке Сумма воронки
J. Причина отказа Из списка Через месяц видно, почему проигрываете

Лист «Клиенты». Одна строка — один клиент: телефон, имя, компания, дата первого обращения, число обращений. Число считает формула по листу «Заявки». Повторная заявка — новая строка в «Заявках», а клиент остаётся тем же.

Лист «Справочники». Списки статусов, источников, менеджеров и причин отказа, каждый в своей колонке. Поменяли список здесь — поменялись варианты во всех выпадающих списках.

Главное правило шаблона: у каждой заявки, кроме выигранных и проигранных, заполнены «Следующий шаг» и «Дата шага». В CRM это называется задачей. Без неё таблица превращается в архив.

Как создать CRM в Google Таблицах: пошагово

  1. Задайте типы колонок. Проще всего выделить колонки A–J и выбрать Формат → Преобразовать в таблицу. Для каждого столбца выбирается тип: дата, раскрывающийся список, флажок. Если в столбец с датой напишут текст, появится предупреждение (справка Google). Если заявки будет дописывать скрипт (о нём ниже), проверьте на пробной заявке, что новая строка легла внутрь таблицы.
  2. Сделайте списки из «Справочников». Данные → Настроить проверку данных → «Раскрывающийся список из диапазона», диапазон — колонка на листе «Справочники». Значение не из списка Таблица отклонит, при желании это можно смягчить до предупреждения (справка).
  3. Поставьте свой регион и часовой пояс. Файл → Настройки таблицы. От них зависят формат дат, чисел и валюты по умолчанию (справка).
  4. Подсветите просроченное. Выделите A2:J, откройте Формат → Условное форматирование и выберите «Ваша формула» (справка). Формула красит строку, если дата шага прошла, а заявка не закрыта: =AND($G2<>"";$G2<TODAY();$E2<>"выиграна";$E2<>"проиграна") Названия функций по умолчанию английские. Аргументы в русском регионе файла разделяют точкой с запятой, в английском — запятой.
  5. Дайте каждому менеджеру свой вид. Обычный фильтр видят все, кто открыл таблицу, и менять его могут все редакторы. Сохранённый режим фильтрации («мои заявки, не закрытые, по дате шага») чужой вид не трогает (справка).
  6. Соберите сводку на отдельном листе. Например, число выигранных заявок из Telegram: =COUNTIFS('Заявки'!C:C;"Telegram";'Заявки'!E:E;"выиграна") Таких ячеек хватает на простую воронку по источникам и статусам.
  7. Защитите справочники и заголовки. Данные → Защитить листы и диапазоны. Это защита от случайной правки, а не от утечки: копировать таблицу могут даже те, у кого доступ только на просмотр (справка).

Автоматизация без программиста: заявки с сайта и сводка в Telegram

«Без программиста» здесь значит без сервера и без подписки. Несколько десятков строк кода скопировать всё-таки придётся.

Самый простой путь для заявок — Google Форма: её ответы можно сразу сохранять в таблицу (справка). Если форма должна быть частью вашего сайта, нужен приёмник на Apps Script.

Заявка с сайта — строка в таблице

Откройте редактор из самой таблицы: Расширения → Apps Script. Функция doPost срабатывает, когда на адрес веб-приложения приходит POST-запрос, а текст запроса лежит в e.postData.contents (документация Apps Script).

Код приёмника заявок: функция doPost

Выделите код и вставьте его в редактор Apps Script вместо пустой функции. Поля name, phone и request должна присылать форма на сайте.

Дальше скрипт разворачивают как веб-приложение: Развернуть → Новое развертывание (в английском интерфейсе Deploy → New deployment), тип «Веб-приложение». Выполнять — от вашего имени, доступ — всем, включая тех, кто не вошёл в Google. В манифесте это значение называется ANYONE_ANONYMOUS (документация), без него форма на сайте не пройдёт. Обратная сторона: адрес виден в коде страницы, и писать в таблицу может любой, кто его нашёл. Поэтому скрипт выше проверяет хотя бы телефон.

После каждой правки кода нужна новая версия. Её создают и выбирают в меню Развернуть → Управление развертываниями, иначе прежний адрес продолжит отдавать старый код (документация).

Подводный камень, на котором легко застрять. Если сайт отправляет заявку с заголовком Content-Type: application/json, браузер сначала шлёт проверочный запрос OPTIONS. Документация описывает у веб-приложения Apps Script только два обработчика, doGet и doPost, и отвечать на OPTIONS нечему. Выход — отправлять тот же JSON как text/plain. Такие запросы браузер отправляет без предварительной проверки (MDN), а doPost читает их из e.postData.contents точно так же.

Утренняя сводка в Telegram

  1. Создайте бота через @BotFather и получите токен.
  2. Напишите боту сами: первым начать разговор бот не может (Telegram). Номер своего чата узнайте методом getUpdates.
  3. Токен и номер чата положите в свойства скрипта: Настройки проекта → Свойства скрипта (документация). В коде им не место.
Код утренней сводки и триггера

Свойства скрипта должны называться TG_TOKEN и TG_CHAT. Номера колонок в коде считаются с нуля: r[4] — статус, r[5] — следующий шаг, r[6] — дата шага.

Функцию setup запускают один раз вручную; если вы не в Узбекистане, замените в ней часовой пояс на свой. Три оговорки. Триггер «на 9 утра» сработает в какой-то момент между 9 и 10 и дальше будет держать это время (триггеры). Работает он от аккаунта того, кто его создал: если этот человек уходит из компании, триггер пересоздают от другого аккаунта, иначе сводка может перестать приходить. Сообщение в Telegram ограничено 4 096 знаками, поэтому длинный список обрезается (sendMessage).

Историю статусов тоже можно вести скриптом. Простой триггер onEdit может записывать на отдельный лист, когда и на что поменяли статус: в событии есть прежнее значение, если правили одну ячейку (документация). Но строки, которые добавил сам скрипт, onEdit не видит (ограничения). Встроенная история изменений ячейки не показывает добавленные и удалённые строки (справка). Полноценным журналом ни то ни другое не станет.

Пределы: что говорит документация Google

Объём. Одна таблица — до 20 млн ячеек или 100 МБ (справка Google Диска, на английском). Русская версия той же страницы на 28 сентября 2026 года всё ещё пишет про 10 млн ячеек: похоже, перевод отстал от оригинала. Для учёта заявок малого бизнеса упереться в этот предел трудно. Упираются раньше и в другое.

Скрипты. По странице квот Apps Script (обновлена 3 сентября 2026 года):

  • один запуск скрипта — не дольше 6 минут;
  • все триггеры вместе — 90 минут работы в сутки у аккаунта gmail.com и 6 часов у Google Workspace;
  • не больше 20 триггеров на одного пользователя в одном скрипте;
  • внешних запросов, например в Telegram, — 20 000 в сутки у gmail.com и 100 000 у Workspace;
  • писем из скрипта — 100 получателей в сутки у gmail.com и 1 500 у Workspace.

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

Чего нет вовсе. Это уже не квоты, а устройство таблицы.

  • Задач с напоминанием. Дата шага и подсветка работают, только если человек открыл файл.
  • Прав на строки. Роль — читатель, комментатор или редактор — выдаётся на файл целиком. Защита диапазонов ограничивает правку, но не просмотр. Скачивать файл по умолчанию может любая роль; читателю и комментатору владелец может это запретить, редактору — нет (справка Google Диска). Менеджер, который уходит, может унести копию базы.
  • Журнала звонков и переписки. Звонки и сообщения остаются в телефоне и мессенджере. В таблицу попадает только то, что кто-то не поленился переписать.

Шесть признаков, что пора переходить в CRM

Ни один из них не про объём данных. С людьми таблица перестаёт справляться раньше, чем с ячейками.

  1. Пришёл третий менеджер. Каждому нужны свой вид, свои напоминания и правило, кому достаётся новая заявка. В таблице это устные договорённости, в CRM — настройки.
  2. Повторные контакты пропускают. Дата шага стоит, строка подсвечена, но в тот день в таблицу никто не заглянул. CRM ставит задачу конкретному человеку и показывает её, пока её не закроют.
  3. Спорят, чей клиент. Один и тот же телефон стоит в двух строках у двух менеджеров. В CRM ответственный — поле карточки, и спор решает правило распределения, а не память.
  4. Нужна история переписки. Клиенты пишут в Telegram, Instagram и WhatsApp, и перед звонком менеджер листает три приложения. В CRM с подключёнными каналами переписка лежит в карточке клиента.
  5. Нужно знать скорость ответа. Время первого ответа в таблицу записывают руками, то есть не записывают. Почему эта цифра важна и что о ней известно на самом деле, мы разбирали в статье «Сколько живёт заявка». Как отвечать на заявку сразу и передавать её менеджеру готовой карточкой, описано на странице «Автоматизация продаж с помощью ИИ».
  6. Отчёт собирают руками. Если по пятницам кто-то сводит цифры из таблицы, за учёт уже платят, только не за CRM, а временем этого человека. Как собрать такой отчёт без ручной работы — в статье «Автоматизация отчётов».

Одного признака для переезда мало. Два-три одновременно — повод.

Как перейти из таблицы в CRM и не потерять историю

  1. Назначьте день переезда. До него заявки идут в таблицу, после — только в CRM. Если вести обе системы параллельно, они быстро перестают совпадать.
  2. Почистите данные. Сначала приведите телефоны к одному формату, потом удалите повторы: Данные → Очистка данных → Удалить повторы (справка). Порядок важен: «+998 90…» и «90…» Таблица повторами не считает.
  3. Сопоставьте колонки с полями CRM. Статус станет этапом воронки, менеджер — ответственным, источник и причина отказа — полями карточки. Всё, что в поля не легло, склейте в одну колонку «История из таблицы» и загрузите в текстовое поле сделки.
  4. Загружайте в правильном порядке. Лист выгружается в CSV или XLSX через Файл → Скачать. Битрикс24 принимает импорт в CSV и связывает сделки с контактами и компаниями по точному совпадению названий и имён. Поэтому порядок такой: компании, затем контакты, затем сделки. При загрузке проверьте поле «Разделитель столбцов»: оно должно совпадать с символом в файле, иначе поля не распознаются (справка Битрикс24). amoCRM в своей PDF-инструкции 2022 года называет форматы xls, xlsx, ods и csv: файл до 2 МБ, до 100 столбцов и до 10 000 строк. Большую базу грузят частями (инструкция amoCRM, PDF).
  5. Сначала пробный файл. Загрузите десяток строк и проверьте карточки глазами, потом загружайте всё.
  6. Переключите входящие. Форма на сайте, doPost, Google Форма — всё, что писало в таблицу, теперь должно писать в CRM. Иначе через неделю новые заявки окажутся в старом файле.
  7. Отправьте таблицу в архив. Всем, кроме владельца, оставьте доступ только на просмотр.

Если переезд хотите отдать подрядчику, так выглядит наше внедрение CRM под ключ: сначала разбор процесса, потом amoCRM или Битрикс24 под него.

Честно о том, где тут мы

Заявки с этого сайта попадают в Google Таблицу. Анкета отправляет их веб-приложению на Apps Script, скрипт пишет строку и ставит заявке приоритет от 0 до 100. Запрос уходит как text/plain — по той самой причине с OPTIONS, что описана выше. Заявок с сайта у нас пока немного, и таблицы для них хватает.

Valli, наш ИИ-автоответчик в Telegram (сейчас в пилоте), умеет брать каталог товаров из Google Таблицы владельца: раз в 6 часов, по ссылке с доступом на чтение. Если каталог поправили в самом боте, следующая синхронизация перезапишет правку. Источник правды остаётся в таблице.

Коробочной CRM на продажу у нас нет. Для CRM-проектов мы внедряем amoCRM и Битрикс24, лицензии клиент оплачивает вендору напрямую. Списки клиентов есть внутри наших продуктов: у Valli — стадии диалога от нового клиента до покупки или отказа, у CorpVisor — заказы, оплаты и долги производственной компании в Самарканде. Но это части ботов под конкретный процесс, а не замена универсальной CRM. Замеров того, как переезд из таблицы в CRM меняет продажи, у нас нет, поэтому наших цифр в статье нет.

Если не уверены, хватит ли вам таблицы или пора в CRM, опишите процесс в анкете на главной или напишите в Telegram. Разбор одного процесса — за 48 часов, бесплатно.

Читать дальше

Стопка листов таблицы с сеткой, рядом воронка, из которой стрелка ведёт к телефону; на экране оранжевое облачко сообщения с пятью строками, рядом с телефоном часы, стрелки показывают восемь
Автоматизация · 13 мин чтения

Автоматизация отчётов: как перестать собирать сводку руками в Excel

Как автоматизировать отчёты и не ускорить ошибку: оставить 3–5 чисел, у которых есть хозяин, закрыть молчаливые пределы вроде XLS и выбрать один из четырёх уровней — Power Query в Excel, Google Таблицы с Apps Script, сводку в Telegram по расписанию или BI. Где в отчётах нужен ИИ, макет сводки на пять строк и чек-лист.

Секундомер, у которого закрашен сектор первых пяти минут, рядом облачко входящего сообщения с тремя точками
Продажи · 7 мин чтения

Сколько живёт заявка: что на самом деле известно про скорость ответа

«Ответьте за 5 минут — шансы вырастут в 100 раз»: откуда эта цифра и что в ней мерили. Что показали HBR, аудиты 9 538 и 433 компаний, замеры дилеров и застройщиков 2026 года и рецензируемое исследование о том, почему мгновенный автоответ не считается.

Покажите свой процесс — верну карту автоматизации за 48 часов

Шесть вопросов о том, как у вас всё устроено сейчас. На выходе — схема, что можно снять с людей, в каком порядке и сколько это стоит.

Пройти квиз · 6 вопросов Написать в Telegram Бесплатно · без созвона на входе