Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

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

Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

Google Spreadsheets, или табличка в Excel, является простым и доступным инструментом для создания табличных отчетов. Он полезен не только руководителям, но и рядовым менеджерам для отслеживания статистики, а еще его можно использовать для хранения резервной информации из CRM. Давайте рассмотрим на примере нашего клиентского кейса, как можно выгрузить данные из Битрикс24 в Таблицы Гугл с помощью платформы Пинкит.

Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

1. Описание кейса

Клиент обратился в Пинол за настройкой Битрикс24. Ему понадобилось настроить два расширенных отчета по задачам Битрикс24, в которые выгружается большой массив данных по всем сотрудникам. Напомним, что компания большая, и нагрузку такая разработка должна выдерживать тоже немаленькую.

Приложим краткое описание запроса:

1.1 Отчет "Мониторинг работы в CRM"

1.1.1. Отчет должен формироваться на текущий момент.

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

1.1.3. В автоматический отчет выгружать следующие данные:

  • Отдел сотрудника.
  • ФИО сотрудника.
  • количество компаний (сущность "Компания"), в которых сотрудник ответственный.
  • количество компаний (сущность "Компания"), в которых сотрудник ответственный, где есть дела с просроченным крайним сроком.
  • количество контактов (сущность "Контакт"), в которых сотрудник ответственный.
  • количество контактов (сущность "Контакт"), в которых сотрудник ответственный, где есть Дела с просроченным крайним сроком.
  • количество сделок (сущность "Сделка") во всех воронках, находящиеся в любом статусе, кроме финального (успех или неудача), в которых сотрудник ответственный.
  • количество сделок (сущность "Сделка") во всех воронках, находящиеся в любом статусе, кроме финального (успех или неудача), в которых сотрудник ответственный.
  • количество сделок (сущность "Сделка") во всех воронках, находящиеся в любом статусе, кроме финального (успех или неудача), в которых сотрудник ответственный, в которых нет назначенных дел.
  • количество сделок (сущность "Сделка") во всех воронках, находящиеся в любом статусе, кроме финального (успех или неудача), в которых сотрудник Ответственный, в которых есть дела с просроченным крайним сроком.

Визуально это выглядит так:

Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

1.2 Отчет "Мониторинг соблюдения правил работы с задачами в Битрикс24"

1.2.1. Отчет должен формироваться за заданный период (по умолчанию 1 неделя, но можно задавать любой от 1 дня). Конец периода всегда равен дате формирования отчета.

1.2.2. Сделать возможность формировать отчет по всем сотрудникам, выбранным сотрудникам, отделам или сотрудникам, состоявшим в какой-то выбранной группе.

1.2.3. В автоматический отчет нужно выгружать следующие данные:

  • Отдел сотрудника
  • ФИО сотрудника
  • количество добавленных в период задач сотрудника, в которых он указан постановщиком
  • количество закрытых (в том числе завершен контроль, если требуется) задач в периоде, в которых сотрудник постановщик
  • количество задач на конец периода в статусе "выполняется" или "ждет выполнения" (отложенные не считаем), в которых сотрудник постановщик
  • количество задач на конец периода с неустановленным крайним сроком в любых статусах, кроме "Завершена", в которых сотрудник постановщик
  • количество задач на конец периода в статусе "Ждет контроля" на протяжении 4-х и более календарных дней, в которых сотрудник постановщик
  • количество добавленных в периоде задач, где сотрудник ответственный (соисполнителей не считаем)
  • количество задач завершенных в периоде (в статусе "Завершена" или "Ждет контроля"), в которых сотрудник ответственный
  • количество задач, которые на конец периода находятся в статусе "Ждет выполнения" 2 и более дней, в которых сотрудник ответственный
  • количество задач на конец периода в статусе "Ждет выполнения" или "Выполняется" (отложенные не считаем), в которых за период не было добавлено ни одного комментария любым сотрудником (пинги не считаем).

Как видите, этот отчет более широкий:

Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

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

Как известно, чем больше база данных и объем выгружаемой информации, тем больше нагрузка на интеграцию: за несколько выгрузок мы достигли цифры в 400 000 API-вызовов! Но Пинкит успешно справляется с такими задачами :)

Алексей Окара, основатель Пинол и продакт-менеджер Пинкит
Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

2. Реализация и сложности

2.1 Дела

Отслеживание дел в компаниях, контактах и сделках, а также их крайнего срока — это важная часть отчета. У наших инженеров возник вопрос, как отследить, что дело завершено? Допустим, мы выгрузили контакт с пометкой, что в нем есть незавершенные дела, затем сотрудник завершил дело, но это действие не является изменением сущности, поэтому интеграция не сработает, чтобы внести изменение в таблицу о том, что у контакта нет просроченных дел.

Решением стала отдельная интеграция для отслеживания изменений по делам: мы добавили в ней фильтр по времени завершения, и если приходит какое-нибудь завершенное дело, интеграция ищет его сущность среди сохраненных и обновляет по ней ячейку. Эту интеграцию вместе с интеграцией по выгрузке данных в Таблицы Гугл мы настроили клиенту в рамках подарочных часов бонусной техподдержки.

Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

2.2. Комментарии

В отчет также нужно выгружать количество задач на конец периода в статусе "Ждет выполнения" или "Выполняется", в которых за период не было добавлено ни одного комментария любым сотрудником (кроме системных пингов). Здесь возникает проблема, как определить, комментарий "живой" от настоящего сотрудника или системный пинг, например, о том, что задача просрочена. Мы решили реализовать задачу так: в отдельной интеграции получить весь массив комментариев и обработать его инструментом Пинкит "Фильтр массива":

Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

2.3 Дашборды

Чтобы отслеживать данные в динамике, а также сравнивать статистику по отделам и сотрудникам, мы предложили настроить интерактивные дашборды. Они наглядно представляют информацию в виде графиков и диаграмм, так что не нужно выполнять подсчеты вручную, а еще ими удобно пользоваться, например, с телефона или планшета на совещаниях. Для руководителя крупной компании это незаменимое решение:

Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!

Итог

Выгрузка данных из Битрикс24 в таблицы Гугл — это довольно частый запрос среди наших клиентов, ведь благодаря такой интеграции вы можете без больших затрат (напомним, мы дарим нашим клиентам большой объем часов бонусной техподдержки) расширить свои возможности: создать резервную копию данных, сконструировать сложный отчет и вывести на любое устройство динамическую информацию в виде дашбордов. Мы не ограничиваем клиентов в количестве API-вызовов, если им требуется выгружать большие массивы данных.

Отправьте нам заявку, и мы проведем для вас бесплатную презентацию сервиса Пинкит: чем раньше вы начнете автоматизировать, тем больше времени освободится от рутинных задач. Регистрируйтесь в личном кабинете Пинкит и занимайтесь стратегией, а не рутиной!

Создание отчетов из Битрикс24 в Google Sheets. 400 000 API-вызовов? Легко!
66