Интеграция AmoCRM с Google Таблицами
Решение

Интеграция AmoCRM с Google Таблицами

CRM, которая не знает про склад, — это блокнот с телефонами. Менеджер видит сделку, но не видит, есть ли товар. Видит заказ, но не знает, отгружен ли он. Видит клиента, но не помнит, что тот уже написал в Telegram.

AmoCRM — одна из самых популярных CRM в российском малом и среднем бизнесе. Удобный интерфейс, простая воронка, мобильное приложение. Но сила CRM — не в самой системе, а в том, что она знает. А знает она ровно столько, сколько в неё попадает. Если данные о заказах живут в маркетплейсе, остатки — в МойСклад, а переписка — в мессенджере, AmoCRM работает вполсилы.

Эта статья — про то, как интегрировать AmoCRM с другими системами: Google Таблицами, маркетплейсами, складом, мессенджерами. Не абстрактно, а с архитектурой, конкретными задачами и честными ограничениями.

Зачем интегрировать AmoCRM

Типичная ситуация. Компания продаёт на Ozon и Wildberries, учёт ведёт в МойСклад, клиентскую базу — в AmoCRM, а операционные данные — в Google Таблицах. Четыре системы, каждая знает свой кусок правды.

Менеджер получает заявку в AmoCRM. Чтобы ответить клиенту, ему нужно:

  1. Зайти в МойСклад — проверить наличие товара
  2. Зайти в Ozon — посмотреть текущую цену
  3. Открыть таблицу — свериться с графиком доставки
  4. Вернуться в AmoCRM — написать ответ

Четыре переключения контекста на одну заявку. При 50 заявках в день — 200 переключений. Это не просто потеря времени — это источник ошибок: забыл проверить остаток, назвал старую цену, перепутал сроки.

Интеграция решает эту проблему: данные из всех систем попадают в AmoCRM автоматически. Менеджер видит полную картину в одном окне.

Четыре направления интеграции

AmoCRM ↔ Google Таблицы

Самое частое. Google Таблицы — универсальный буфер: в них живут данные, которых нет ни в CRM, ни в учётной системе. KPI менеджеров, внутренние справочники, расчёты маржи, планы продаж.

Типичные задачи:

  • Выгрузка сделок из AmoCRM в таблицу для аналитики и отчётов
  • Обратная синхронизация: менеджер заполняет данные в таблице → они попадают в сделку AmoCRM
  • Автоматическое создание сделок из таблицы (импорт лидов)
  • Ежедневная сводка в таблице: воронка, конверсия, средний чек

Техническая реализация: Google Apps Script отправляет запросы к AmoCRM API по расписанию (триггеры) или через webhooks AmoCRM, которые вызывают Apps Script Web App.

AmoCRM ↔ Маркетплейсы (Ozon, Wildberries)

Заказ на маркетплейсе — это потенциальный клиент. Но маркетплейс не даёт CRM-функции: нет воронки, нет задач менеджерам, нет истории взаимодействия.

Типичные задачи:

  • Автоматическое создание сделки в AmoCRM при новом заказе на маркетплейсе
  • Обновление статуса сделки при изменении статуса заказа (собран, отгружен, доставлен)
  • Привязка данных о товарах и ценах к сделке
  • Идентификация повторных клиентов по телефону или email

Нюанс: маркетплейсы ограничивают доступ к данным покупателей. Ozon передаёт телефон и email только после определённого статуса заказа. Wildberries — ещё строже: контактные данные покупателя доступны только в рамках FBS-схемы при самовывозе. Это влияет на то, когда именно можно создать контакт в CRM, и иногда делает полноценную CRM-интеграцию с маркетплейсом невозможной.

При интеграции с несколькими маркетплейсами одновременно возникает задача дедупликации: один и тот же клиент может купить товар на Ozon и на Wildberries. Идентификация по телефону или email работает, но не всегда — клиент может использовать разные номера. Это архитектурная задача, которую нужно решать на уровне проектирования, а не постфактум.

Мы подробно разбираем интеграции с конкретными маркетплейсами в статье Интеграция маркетплейсов: Ozon, Wildberries, FlowWow и СберМаркет.

AmoCRM ↔ МойСклад

Связка CRM и склада — основа для компаний, которые продают физические товары.

Типичные задачи:

  • Показывать остатки в карточке сделки AmoCRM (кастомные поля)
  • Автоматически создавать заказ покупателя в МойСклад при переходе сделки на стадию «Оплачено»
  • Синхронизация контрагентов: новый клиент в AmoCRM → контрагент в МойСклад
  • Обратная связь: отгрузка в МойСклад → обновление статуса сделки

Техническая реализация: обе системы имеют REST API и поддерживают webhooks. Интеграция строится через промежуточный сервис, который слушает события с обеих сторон и маппит данные.

AmoCRM ↔ Telegram

Telegram — и канал продаж, и инструмент уведомлений.

Типичные задачи:

  • Уведомление менеджера в Telegram о новой сделке или задаче
  • Бот для клиентов: приём заявок → автоматическое создание сделки в AmoCRM
  • Пересылка сообщений из Telegram-чата с клиентом в примечания к сделке
  • Ежедневная сводка по воронке в Telegram

Подробнее про Telegram-ботов: Telegram-бот для приёма заказов.

Архитектура: webhooks vs polling

Два подхода к синхронизации данных между AmoCRM и внешними системами.

Polling (периодический опрос)

Скрипт каждые N минут запрашивает AmoCRM API: «что изменилось с прошлого раза?». Простой подход, работает на Google Apps Script без инфраструктуры.

Плюсы: не нужен публичный endpoint, работает за NAT, минимальная настройка. Минусы: задержка до N минут, нагрузка на API при частых запросах, расход квоты.

Webhooks (подписка на события)

AmoCRM отправляет HTTP-запрос на ваш сервер при каждом событии: создание сделки, смена статуса, добавление примечания. Реакция — мгновенная.

Плюсы: без задержки, без лишних запросов к API, экономия квоты. Минусы: нужен публичный endpoint (сервер или Cloud Function), обработка дубликатов, обработка ошибок доставки.

Что выбрать

КритерийPollingWebhooks
Задержка1-15 минутСекунды
ИнфраструктураНе нужна (GAS)Нужен сервер
НадёжностьВысокая (вы контролируете)Зависит от доставки
Квота APIРасходуетсяЭкономится
СложностьНизкаяСредняя

Для большинства задач малого бизнеса достаточно polling с интервалом 5-10 минут. Webhooks нужны, когда критична скорость: уведомления менеджерам, синхронизация с маркетплейсом, обработка заявок.

Маппинг полей

Отдельная головная боль — соответствие полей между системами. У AmoCRM — свои кастомные поля. У МойСклад — свои атрибуты. У маркетплейсов — свои идентификаторы.

Пример маппинга AmoCRM → МойСклад:

AmoCRM (сделка)МойСклад (заказ покупателя)
Название сделкиНаименование
БюджетСумма
Контакт → ТелефонКонтрагент → Телефон
Кастомное поле «Товар»Позиция заказа
Стадия «Оплачено»Статус «Подтверждён»

Маппинг настраивается один раз, но его нужно поддерживать: добавили новое поле в AmoCRM — нужно добавить маппинг, иначе данные потеряются.

Если в этом описании вы узнаёте свою ситуацию — CRM не связана со складом, маркетплейсом или учётной системой — пройдите квиз за 2 минуты. Мы зададим 5 вопросов и подскажем, какие интеграции дадут максимальный эффект.

Что можно автоматизировать поверх интеграции

Интеграция — это фундамент. Когда данные перетекают между системами автоматически, появляется возможность строить автоматизацию поверх:

Автораспределение заявок. Новая сделка создаётся в AmoCRM → скрипт смотрит регион, категорию, сумму → назначает ответственного менеджера по правилам. Не нужен руководитель, который вручную раскидывает заявки.

Автоматические задачи. Сделка перешла на стадию «Переговоры» → менеджеру ставится задача «Позвонить через 2 дня». Сделка зависла на стадии 5 дней → руководителю приходит алерт в Telegram.

Отчёты в реальном времени. Данные из AmoCRM + маркетплейсов + склада сливаются в Google Таблицу. Руководитель видит: сколько сделок на каждой стадии, какая конверсия, где узкие места, какие товары заканчиваются.

Антидубли. При создании контакта скрипт проверяет, нет ли в базе клиента с таким же телефоном или email. Если есть — не создаёт дубль, а привязывает сделку к существующему контакту.

Автоматическое обогащение сделки. Клиент оставил заявку → скрипт по ИНН подтягивает данные компании из ЕГРЮЛ, по телефону — проверяет, есть ли клиент на маркетплейсах. Менеджер получает сделку уже с заполненными полями.

Уведомления о просрочках. Сделка висит на стадии «Ожидание оплаты» больше 3 дней → алерт руководителю. Менеджер не закрыл задачу в срок → повторное уведомление с эскалацией. Это не заменяет управление, но убирает слепые зоны.

Пример: от заявки до отгрузки

Как выглядит полный цикл обработки заказа в интегрированной системе:

Весь цикл — от заявки клиента до уведомления об отгрузке — проходит без ручного копирования данных между системами. Менеджер работает только в AmoCRM: видит заявку, общается с клиентом, подтверждает оплату. Всё остальное происходит автоматически.

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

Ограничения AmoCRM API

API AmoCRM — один из наиболее документированных среди российских CRM, но ограничения есть.

Rate limits: 7 запросов в секунду

AmoCRM ограничивает частоту обращений к API: не больше 7 запросов в секунду на аккаунт. При массовой синхронизации (импорт 1000 контактов, обновление 500 сделок) приходится добавлять паузы и пакетную обработку. Для ежедневной работы с 50-100 сделками лимита хватает с запасом.

API не на всех тарифах

Полный доступ к API AmoCRM доступен начиная с тарифа «Расширенный». На базовом тарифе функциональность API ограничена: нет webhooks, нет части эндпоинтов. Перед проектированием интеграции убедитесь, что тариф позволяет использовать нужные возможности.

Кастомные поля — строковые

Кастомные поля в AmoCRM хранятся как строки. Даже числовые значения приходят в виде текста. При маппинге с другими системами нужно преобразование типов, иначе — ошибки в расчётах и сортировке.

Webhooks — без гарантии доставки

AmoCRM отправляет webhook один раз. Если ваш сервер не ответил — повторной попытки не будет. Нужно предусмотреть обработку пропущенных событий: периодический polling как fallback или сравнение состояний по расписанию.

OAuth 2.0 и обновление токенов

AmoCRM использует OAuth 2.0 с refresh-токенами. Токен живёт 24 часа, refresh-токен — 3 месяца. Если refresh-токен протух (например, интеграция не работала 3 месяца), придётся переавторизовать приложение вручную. Нужен мониторинг: если обновление токена не удалось — алерт, а не молчаливая остановка.

Лимит на количество кастомных полей

На каждую сущность (сделка, контакт, компания) — не больше 60 кастомных полей. Звучит много, но при интеграции с 3-4 системами, где у каждой свои атрибуты, лимит заканчивается быстрее, чем ожидаешь. Решение — хранить расширенные данные в Google Таблице, а в AmoCRM держать только то, что нужно менеджеру.

Типичные ошибки при интеграции CRM

За десятки интеграционных проектов мы видели повторяющиеся паттерны ошибок. Вот что стоит знать заранее.

Синхронизировать всё подряд. Не каждое поле из МойСклад нужно в AmoCRM. Менеджеру не нужны серийные номера партий или коды ТН ВЭД. Чем больше данных синхронизируется, тем дороже интеграция и больше точек отказа. Синхронизируйте только то, что влияет на решения.

Не продумать обработку ошибок. API вернул 500. Webhook не доставился. Токен протух. Если каждый такой случай не обработан — данные рассинхронизируются молча. Нужен мониторинг, retry-стратегия и алерты. Без них интеграция деградирует незаметно.

Забыть про тестирование на реальных данных. Интеграция отлично работает на 5 тестовых сделках. А потом на продакшене оказывается, что у 30% контактов нет телефона, у 10% — дублирующиеся email, а у 5% — кириллица в полях, где ожидается латиница. Тестировать нужно на копии реальной базы.

Не заложить миграцию существующих данных. Интеграция настроена, новые данные синхронизируются. А 3 000 существующих контактов из старой таблицы — по-прежнему в таблице. Миграция исторических данных — отдельная задача, часто более трудоёмкая, чем сама интеграция.

Запустить без обучения команды. Менеджеры привыкли работать по-старому. Если просто включить интеграцию и ничего не объяснить — часть команды продолжит дублировать данные руками «на всякий случай», создавая хаос вместо порядка.

Как подготовиться к интеграции

Прежде чем писать код, нужно ответить на несколько вопросов. От ответов зависит архитектура, стоимость и сроки.

1. Какие данные и в каком направлении

Не все данные нужно синхронизировать в обе стороны. Часто достаточно одностороннего потока: заказы из маркетплейса → AmoCRM (создание сделок), но не обратно. Остатки из МойСклад → кастомное поле в AmoCRM (информация для менеджера), но менеджер не редактирует остатки в CRM.

Чем меньше направлений синхронизации, тем проще интеграция и меньше конфликтов данных.

2. Кто master для каждого типа данных

Если контакт создаётся и в AmoCRM, и в МойСклад — кто главный? Если изменили телефон в CRM, должен ли он обновиться на складе? А если изменили на складе?

Золотое правило: один тип данных — один master-источник. Контакты — AmoCRM. Остатки — МойСклад. Заказы с маркетплейса — маркетплейс. Все остальные системы получают данные из master.

3. Что делать при конфликте

Менеджер изменил цену в AmoCRM, а на маркетплейсе она уже другая. Какая правильная? Нужны явные правила разрешения конфликтов: приоритет источника, timestamp последнего изменения, уведомление ответственному.

4. Какой тариф AmoCRM

Проверьте заранее. API требует тариф «Расширенный» или выше. Webhooks — тоже. На базовом тарифе большая часть интеграционных сценариев невозможна.

5. Какой объём данных

50 сделок в месяц и 5000 сделок в месяц — это разные архитектуры. При небольших объёмах хватает polling на GAS. При больших — нужен сервер, очереди, мониторинг.

Когда AmoCRM не нужна

Честная секция. Не каждому бизнесу нужна CRM, и не каждая задача требует AmoCRM.

Если сделок меньше 30 в месяц и менеджер один — Google Таблица с автоматизацией через Apps Script закроет потребность. Воронка, напоминания в Telegram, еженедельные отчёты — всё это реализуемо без ежемесячной подписки. Мы описали такой подход: CRM в Google Sheets для малого бизнеса.

Если основной канал — маркетплейсы и нет прямых продаж — CRM может быть избыточной. Маркетплейсы управляют коммуникацией с покупателем, и задача бизнеса — операции (остатки, цены, логистика), а не продажи. В этом случае интеграции маркетплейсов с учётной системой достаточно.

Если нужна телефония и сложные воронки — AmoCRM подходит. Но если нужен ERP-уровень (производство, себестоимость, серийный учёт) — лучше смотреть на Битрикс24 или 1С с CRM-модулем.

Если бюджет ограничен — тариф AmoCRM с полным API стоит от 1 500 руб./мес на пользователя. При 5 менеджерах — 7 500 руб./мес только за CRM, плюс стоимость интеграций. Для микробизнеса это существенная статья расхода. Google Таблица с автоматизацией — бесплатная альтернатива для старта.

Сколько стоит интеграция

Стоимость зависит от количества систем, направлений синхронизации и сложности бизнес-логики.

УровеньЧто включаетОриентировочная стоимостьТипичная окупаемость
ПилотныйAmoCRM ↔ Google Таблицы (выгрузка + отчёты)от 60 000 ₽2–4 месяца
Средний+ маркетплейс или МойСклад (одно направление)80 000–150 000 ₽3–5 месяцев
ПолныйAmoCRM + маркетплейсы + склад + Telegram150 000–300 000 ₽3–6 месяцев

Поддержка: 10 000–25 000 ₽/мес в зависимости от количества интеграций и частоты изменений API.

Окупаемость зависит от количества менеджеров и объёма ручной работы. При 2-3 менеджерах, тратящих по часу в день на переключение между системами, типичный проект окупается за 3-5 месяцев.

Частые вопросы

Можно ли интегрировать AmoCRM без программиста?

Частично. Встроенные виджеты AmoCRM и сервисы вроде Albato или Make (ex-Integromat) закрывают базовые сценарии: отправка данных из форм сайта, простые уведомления, выгрузка в таблицу. Но для кастомной бизнес-логики (маппинг полей, валидация, обработка конфликтов, работа с несколькими системами) — нужна разработка.

Сколько времени занимает интеграция?

Пилотная интеграция AmoCRM ↔ Google Таблицы — 2-3 недели. Средняя (+ маркетплейс или склад) — 4-6 недель. Полная (4+ системы, webhooks, мониторинг) — 6-10 недель. Сроки зависят от качества данных в существующих системах и количества кастомных правил.

Что будет, если AmoCRM обновит API?

AmoCRM обновляет API реже, чем маркетплейсы, но обновления случаются. Текущая версия — v4 — стабильна, но отдельные эндпоинты меняют формат ответа без смены версии. В рамках поддержки мы мониторим changelog и обновляем интеграцию проактивно.

Можно ли подключить несколько маркетплейсов к одной AmoCRM?

Да. Каждый маркетплейс — отдельный источник сделок. Важно настроить тегирование: сделки с Ozon получают тег «Ozon», с Wildberries — «WB». Это позволяет фильтровать воронку по каналу и считать конверсию отдельно.

Работает ли интеграция с Битрикс24 вместо AmoCRM?

Принципы те же: REST API, webhooks, маппинг полей. Но Битрикс24 API устроен иначе: другая структура сущностей, другая авторизация, другие лимиты. Архитектура интеграции переносится, код — нет.

Безопасно ли давать доступ к AmoCRM через API?

API-ключ AmoCRM даёт полный доступ к данным аккаунта: сделки, контакты, компании, примечания. Это эквивалент доступа администратора. Рекомендации:

  • Создайте отдельного пользователя для интеграции с минимальными правами
  • Храните токены в переменных окружения, а не в коде
  • Логируйте все операции интеграции для аудита
  • При подозрении на утечку — немедленно отзовите токен через настройки AmoCRM

При использовании Google Apps Script токен хранится в PropertiesService — это зашифрованное хранилище, привязанное к Google-аккаунту. Безопаснее, чем хранить в коде скрипта, но PropertiesService доступен всем, у кого есть доступ к редактору скрипта.

Читайте также

Если вы думаете об интеграции AmoCRM с другими системами — посмотрите, как мы подходим к таким проектам. Или напишите нам в Telegram — разберёмся, какие интеграции дадут максимальный эффект, а какие можно отложить.

Не хотите разбираться сами?

Если читали статью и поняли, что руками уже не справляетесь — напишите. Оценим задачу бесплатно и предложим решение.

КМ
Константин
Менеджер проектов · ответит в течение часа

Как автоматизация окупается → Чеклист: 7 процессов для автоматизации →

140+ реализованных проектов
Google Products Expert в команде

Нужна доработка под ваш бизнес?

Адаптируем готовое решение или разработаем с нуля.

Написать в Telegram

Подписывайтесь — делимся скриптами, кейсами и лайфхаками