Google Sheets — самый быстрый способ собрать нестандартный отчёт из RetailCRM без BI и разработчиков. Таблицу видят все, формулы понятны, а данные можно подтягивать автоматически. Разбираем, как настроить выгрузку заказов и клиентов и не упереться в лимиты API.
Когда выгрузка в Google Sheets оправдана
Встроенная аналитика RetailCRM закрывает типовые отчёты, но иногда нужен гибкий срез: своя сводная, ручные пометки, объединение с данными из других источников. Здесь Google Sheets выигрывает за счёт простоты и доступности.
- Оперативные отчёты — выручка по дням, менеджерам, регионам в своём формате;
- Данные для подрядчиков — отдать таблицу без доступа в CRM;
- Промежуточный слой — собрать данные перед загрузкой в BI или рекламные кабинеты;
- Ручная работа — обзвон, сверка, разметка сегментов прямо в строках.
Три способа получить данные
Выгрузку можно построить по-разному — от ручного экспорта до полностью автоматической синхронизации.
| Способ | Автообновление | Сложность |
|---|---|---|
| Ручной экспорт CSV из RetailCRM | Нет | Минимальная |
| Apps Script + REST API | Да, по расписанию | Средняя, нужен код |
| Коннектор (Albato, ApiX-Drive и подобные) | Да | Низкая, без кода |
Разовый экспорт подходит для «посмотреть здесь и сейчас». Для регулярной отчётности нужен один из автоматических вариантов — через скрипт или коннектор.
Выгрузка через REST API
RetailCRM отдаёт данные через REST API. Заказы забирают методом GET /api/v5/orders, клиентов — GET /api/v5/customers, с фильтрами по дате, статусу и другим полям. Ключ создаётся в разделе Настройки → Интеграция → Ключи доступа к API.
API постраничный: за один запрос отдаётся ограниченное число записей, дальше листаем по параметру page. Пример фильтра по дате создания:
GET /api/v5/orders?filter[createdAtFrom]=2026-07-01 00:00:00&limit=100&page=1
Автообновление через Apps Script
Самый гибкий вариант без сторонних сервисов — Google Apps Script прямо внутри таблицы (Расширения → Apps Script). Скрипт ходит в API RetailCRM и пишет строки на лист. Каркас выглядит так:
const url = 'https://ВАШ-АККАУНТ.retailcrm.ru/api/v5/orders?apiKey=КЛЮЧ&limit=100&page=1';const data = JSON.parse(UrlFetchApp.fetch(url).getContentText());sheet.getRange(row, 1, data.orders.length, cols).setValues(rows);
- Создайте функцию, которая листает все страницы и собирает массив заказов.
- Разложите нужные поля по колонкам (номер, дата, сумма, статус, менеджер).
- Повесьте триггер по времени:
Триггеры → Добавить триггер, например раз в час или раз в сутки.
Так таблица обновляется сама, а вы работаете с готовыми данными. Ключ API лучше хранить в свойствах скрипта, а не в тексте.
Выгрузка без кода через коннекторы
Если писать скрипт не хочется, подойдут сервисы-коннекторы: Albato, ApiX-Drive и аналоги. Они связывают RetailCRM и Google Sheets через визуальный конструктор.
- выбираете триггер — например, «новый заказ» или «изменение статуса»;
- указываете действие — «добавить строку в таблицу»;
- сопоставляете поля заказа с колонками листа.
Плюс — скорость запуска и отсутствие кода. Минусы — абонентская плата и зависимость от посредника: сложную логику и большие исторические выгрузки коннекторы тянут хуже, чем прямой доступ к API. Для потоковой записи новых заказов «на лету» это удобный вариант, для тяжёлых аналитических дампов — скорее нет.
Частые проблемы выгрузки
Чек-лист того, что чаще всего ломает автоматическую таблицу:
- Превышение лимита API — нет пауз между запросами, часть страниц не догружается;
- Смещение колонок — в CRM добавили поле, а скрипт пишет по фиксированным индексам;
- Дубли строк — при повторном запуске данные дописываются вместо обновления;
- Часовой пояс — даты из API и настройки таблицы расходятся, отчёт «съезжает» на сутки;
- Разросшаяся таблица — сотни тысяч строк тормозят Sheets, пора переходить на BI.
Итог
Google Sheets — быстрый и понятный способ собрать из RetailCRM отчёт под конкретную задачу. Для разового среза хватит экспорта CSV, для регулярной отчётности — Apps Script или коннектора с автообновлением. Главное — держать в голове лимиты API, дедупликацию строк и часовые пояса.
Мы настраиваем выгрузки из RetailCRM в Google Sheets: пишем скрипты с корректной пагинацией, собираем автообновляемые дашборды и подключаем коннекторы там, где это оправдано. Если таблицы у вас ведутся руками — поможем перевести их на автопилот.
Частые вопросы
Можно ли выгрузить данные без программиста?
Да. Для разового отчёта хватит экспорта CSV из RetailCRM, для регулярного — коннектора вроде Albato или ApiX-Drive с визуальной настройкой. Apps Script нужен только для гибкой логики.
Как часто можно обновлять таблицу?
Через триггер Apps Script — вплоть до раза в несколько минут, но с оглядкой на лимиты API RetailCRM. Для большинства отчётов достаточно обновления раз в час или раз в сутки.
Почему при выгрузке приходят не все заказы?
Чаще всего дело в пагинации и лимитах: скрипт забирает только первую страницу или упирается в ограничение запросов. Нужно листать все страницы с паузами между ними.
Как избежать дублей при повторной выгрузке?
Используйте номер заказа как уникальный ключ и логику upsert: скрипт ищет существующую строку и обновляет её, а не дописывает новую. Иначе таблица быстро задвоится.
Есть ли ограничение по объёму данных?
Технического запрета нет, но Google Sheets тормозит на сотнях тысяч строк. Для больших исторических массивов лучше выгружать данные в Power BI или Data-хранилище.
Где безопасно хранить ключ API?
В Apps Script — в свойствах скрипта (Script Properties), а не в тексте формулы или ячейке. Так ключ не попадёт в общий доступ вместе с таблицей.
Можно ли выгружать не только заказы?
Да, через API доступны клиенты, товары, справочники и коммуникации. Методы отличаются эндпоинтом, но принцип пагинации и фильтров тот же, что и для заказов.
Поможем с настройкой и поддержкой RetailCRM
Поможем с настройкой, доработкой и поддержкой RetailCRM.