ИНСТРУКЦИЯ

Выгрузка данных из amoCRM в GoogleSheets с помощью виджета

Что можно выгрузить?

Виджет позволяет выгружать практически все данные из amoCRM в таблицы.
  1. Сделки
  2. Контакты
  3. Компании
  4. Задачи
  5. Воронки
  6. Статусы
  7. Пользователи
  8. События
  9. Звонки
  10. SMS Сообщения
  11. Примечания
  12. Неразобранное
  13. Покупатели
  14. Транзакции
  15. Сегменты покупателей
  16. Статусы покупателей
  17. Товары
  18. Поставщики
  19. Счета

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

Как часто синхронизируются данные?

Синхронизация данных происходит раз в день, в неделю, в месяц или в реальном времени. Частоту синхронизации можно выбрать в настройках выгрузки.
При интервальном режиме выгрузка происходит после полуночи после прошедшего интервала:
  • каждый день - после полуночи на следующий день
  • каждую неделю - в понедельник
  • каждый месяц - первого числа следующего месяца
Выгрузка в реальном времени происходит сразу после изменений в amoCRM.
Установка и настройка виджета
Данное решение вы можете установить самостоятельно из списка виджетов в amoCRM
Установить по кнопке
Или зайдите в amoCRM > Настройки, ищите данную иконку в списке виджетов или по поиску "f5 google" и установите виджет.
После установки авторизуйтесь в Google аккаунте через кнопку "Авторизоваться", вставьте ключ в соответствующее поле "код авторизации" в виджете. В этом аккаунте в дальнейшем будут создаваться таблицы с выгрузками.

После этого зайдите в настройки вашей amoCRM. В нем появился новый пункт меню "Выгрузка", в которой можно создавать и управлять вашими выгрузками.

Список выгрузок
Каждая новая выгрузка это новая таблица (книга) в Google Sheets. Вы можете создавать сразу несколько выгрузок по разным фильтрам и сущностям в зависимости от задач. Все они будут синхронизироваться по своим правилам.
Количество выгрузок может быть ограничено в зависимости от количества пользователей в аккаунте amoCRM.
Здесь вы можете управлять своими выгрузками:
  • Создавать или удалять выгрузки
  • Менять настройки выгрузок
  • Включить или выключать синхронизацию
  • Открыть в таблицу с данными в GoogelSheets
Создание новой выгрузки
Рассмотрим на примере выгрузки сделок.
Пример выгрузки всех сделок по дате создания
  • В списке выгрузок нажмите "Создать новую выгрузку”, задайте название выгрузки и режим синхронизации.
  • Примените фильтр создания сущностей "Дата создания (фильтр)". Например: "Текущий месяц". Этот фильтр динамический, то есть будут выгружены только сделки за текущий месяц, в следующем месяце старые данные будут удалены, и начнут выгружаться сделки, созданные уже в этом месяце.
  • В окне “Листы” нажмите “Добавить лист”, в открывшемся окне выберите сущность для выгрузки - Сделки и нажмите Создать.

  • В выгрузку автоматически будут добавлены некоторые системные поля. Удалите поля, которые не нужно выгружать и добавьте новые при необходимости, например: название, теги, бюджет, ответственный и т.д. Добавление поля происходит по кнопке "Добавить столбцы". Можно выгрузить любые поля из amoCRM, в том числе системные, например: название отдела, чтобы построить сводные данные по отделам.
После завершения всех настроек нажмите кнопку “Сохранить” вверху справа.

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

ВАЖНО! После создания выгрузки всегда нужно запускать первичную выгрузку, даже если вы выбрали интервальную, например еженедельную выгрузку. В момент первичной выгрузки виджет проверяет правильное заполнение таблицы и только в случае, если она завершится без ошибок, запланирует следующую выгрузку с выбранным интервалом.
Пример выгрузки всех сделок по фильтру,
выбранному в amoCRM
  • В списке выгрузок нажмите "Создать новую выгрузку”, задайте название выгрузки и режим синхронизации.
  • Примените фильтр создания сущностей "Дата создания (фильтр)". Например: "Текущий месяц". Этот фильтр динамический, то есть будут выгружены только сделки за текущий месяц, в следующем месяце старые данные будут удалены, и начнут выгружаться сделки, созданные уже в этом месяце.
  • В окне “Листы” нажмите “Добавить лист”, в открывшемся окне выберите сущность для выгрузки - Сделки и нажмите Создать.

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

Такая же логика и при выгрузке Сводной таблицы с сущностью листа “Покупатели” и дополнительной сущностью “Товары”. Выбрав основной сущностью “Покупатели” в полях товара могут присутствовать пустые значения, так как товар может быть не выбран в карточке покупателя. Но выбрав основной сущностью “Товар” в выгрузку попадут только “Покупатели” в карточке которых есть товар, так как при формировании листа сущностью данного листа при любой основной сущности сводной таблицы остаются “Покупатели”.
В окне редактирования столбцов таблицы автоматически подтянутся поля “Основной сущности”. Удаление полей производится через чекбоксы расположенные рядом с соответствующими полями, либо через чекбокс рядом с “Именем поля”, через который можно за раз удалить все поля.
Выгрузка только определенных сделок по фильтру


Виджет позволяет выгружать сущности по фильтру, выбранному в amoCRM. Например: нам нужно выгружать все успешные сделки с тегом "VIP" в отдельную таблицу. Зайдите в список сделок, выберите необходимый фильтр стандартными средствами: теги, статус сделок, бюджет и т.д., можно сразу несколько параметров. Сохраните данный фильтр для выгрузки, нажав на троеточие > "Сохранить фильтр".

Задайте имя для данного фильтра и нажмите "Сохранить". Пункт “Сохранить фильтр” для Задач есть только в формате список.

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

Динамические фильтры по дате создания сущности

Виджет поддерживает динамические фильтры по дате создания сущности. Например, нужно выгружать данные по сделкам созданные за сегодня или за последние 30 дней и с каждым днем эта дата будет сдвигаться на актуальную. В статусе Сегодня, пользователь виджета выгрузит все сделки созданные за сегодня, при этом на следующий день в таблицу выгрузки будут попадать созданные завтра. При изменении старых данных, которые уже не соответствуют фильтру, они будут удаляться из таблицы.

Также не рекомендуется использовать динамический фильтр вместе с интервальной выгрузкой, так как выгрузка запускается после полуночи, соответственно в нее попадут только сущности, созданные после полуночи.

Работа со сводными данными

Виджет может выгружать данные (поля) по прикрепленным сущностям. Например:

  • Выгружая сделки можно выгрузить все прикрепленные к ним задачи, примечания и товары.
  • Выгружая контакты, можно выгрузить прикрепленные по ним звонки.
  • Выгружая компании, можно выгрузить все связанные по ним контакты.
Связанные данные по добавляются в тот лист в виде новых столбцов.
Примеры:
  • Товары к сделкам выгружаются следующей ячейке, в виде списка наименований перечисленных через запятую.
  • Список контактов со звонками. Звонки (id, длительность, результат звонка, номер телефона и т.д.) будут добавлены в новые столбцы, каждое значение свойства звонка в свой столбец. Если звонков несколько, то будут разделены запятыми.
  • Список сделок с задачами. Задачи (тексты задач, дедлайны, была ли просрочена) будут добавлены в отдельные столбцы, если их несколько, будут разделены запятыми.

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

Для этого
  • Создадим лист со Сделками и выберем сводные данные звонки. Так как у некоторых сделок сделки может не быть в принципе (по ним не звонили), то нам такие сделки не интересны, мы их не будем выгружать, поэтому основной сущностью выберем Звонки.
  • После выгрузки данных, мы получим таблицу в которой будут отображены только сделки в которых были звонки. Однако стоит учитывать, что в одной сделке может быть несколько звонков и в выгрузку попадут несколько одинаковых сделок (количество зависит от количества звонков по данной сделке), однако к ним будут прикреплены их уникальные идентификаторы звонка.
  • В зависимости от используемой телефонии, в сделках может не быть звонков, так как они закрепляются к контакту. В таком случае сущность листа выбирается “Контакт”, в остальном же выбор сводных данных и основной сущности остается прежний.

При этом дополнительные сущности не ограничиваются лишь контактом, есть возможность выгрузить связанные с данной сделкой: Контакты, Компании, Товары, Счета, Звонки, Задачи, SMS сообщения, примечания.
Выгрузка таблицы при “Основной сущности” - Контакт
Выгрузка таблицы при “Основной сущности” - Звонки
Второй пример. 

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

Выгрузка таблицы при “Основной сущности” - Сделки
Выгрузка таблицы при “Основной сущности” - Контакты
Выгрузка таблицы при “Основной сущности” - Покупатели
Выгрузка таблицы при “Основной сущности” - Товары
Коды ошибок при процессе выгрузки


Иногда из-за ограничений API Google или amoCRM при выгрузке могут возникать ошибки, которые покажутся в окне выгрузки. При этом в некоторых случаях можно нажать кнопку Повторить выгрузку и выгрузка будет продолжена с последнего места где она прервалась.


auth_access 401 - amoCRM: Проблемы с доступом oAuth. Не валидный токен.
auth_revoked 401 - amoCRM: Проблемы с доступом oAuth. Доступ был отвязан.
При возникновении ошибки необходимо открыть виджет и нажать кнопку Сохранить. И повторить авторизацию в аккаунте Google.

spreedsheet_permission - GoogleService: Нет доступа к таблице.
Данная ошибка возникает, при смене аккаунта авторизации в виджете. Текущий пользователь, который авторизован в Google, не имеет доступа к тем таблицам, которые сейчас выгружаются.

При возникновении подобной ошибки:
  • Можно включить доступ к таблице по ссылке с редактированием
  • Либо добавить почту под которой авторизован виджет в редакторы данной таблицы. Все настройки производятся в самой таблице выгрузки в сервисе Google.
  • Либо авторизоваться под прежним пользователем, под которым были настроены выгрузки.

spreedsheet_not_found - GoogleService: Таблица не найдена
Возможные причины ошибок: Таблица была удалена, либо виджет потерял к ней доступ. В случае если таблица существует в аккаунте Google, можно повторно внести id данной таблицы в соответствующее поле в настройке выгрузки, после чего повторить выгрузку в таблицу.

spreedsheet_limit - GoogleService: Достигнут лимит количества ячеек (5000000)
Достигнут лимит в количество ячеек установленный сервисом Google. Документ Google Таблиц может содержать не более 5 миллионов ячеек на всю книгу. Они могут быть на одном листе или на нескольких листах. Если у вас уже достигнут предел в 5 миллионов в меньшем количестве столбцов, он не позволит вам добавить больше столбцов (и наоборот, то есть, если предел в 5 миллионов ячеек будет достигнут с определенным количеством строк, он не позволит больше строк ).

limit_throttle 429 - amoCRM: Превышено количество API запросов.
qouta_read_limit 429 - GoogleService: Достигнута квота на чтение в 100 секунд.
qouta_write_limit 429 - GoogleService: Достигнута квота на запись в 100 секунд.
В аккаунте пользователя происходит много API в секунду, превышая ограничения выставленные amoCRM. Например установлены виджеты которые запускают множество итераций в секунду (Чат-боты, телефония, другие виджеты, Cron), вследствие чего количество запросов для выгрузки не хватает. Необходимо повторить выгрузку позднее.

server_error 500 - amoCRM: Серверная ошибка
google_unavailable 500 - GoogleService: Сервис не доступен в текущее время.
google_internal 500 - GoogleService: Серверная ошибка при отправке запроса.
Данный тип ошибок может возникать по нескольким причинам, от технический работ, до неисправности на сервере amoCRM/Google. В этот промежуток выгрузить данные не получится, необходимо дождаться завершения технических работ.


request_mistake 502- GoogleService: Неправильно сформирован запрос.
Возникает при попытке выгрузки данных, когда заблокировано добавление столбцов. В итоге выгрузка хочет выгрузить 20 столбцов, а доступно 19. Рекомендуется снять блокировку с листа и повторить выгрузку данных.

Ограничения на количество операций

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

Статистика использованных лимитов отображается в виджете во вкладке Статистика.
Особенности работы и ограничения связанные с API Google Cloud

  • В одной таблице GoogleSheets, во всех ее листах, в сумме не может быть больше 5 млн. ячеек. Если у вас очень много сделок и контактов (более 20 тыс.), ограничивайте количество выгружаемых данных, исключите ненужные для выгрузки поля, выгружайте сделки по воронкам в разные файлы используя фильтры и т.д.
  • Ограничение на количество создаваемых выгрузок: до 10 пользователей в аккаунте - 5 выгрузок, далее +1 выгрузка на каждые дополнительные 5 пользователей.
  • Ограничение на общее количество запросов в виджете: не более 200 тыс. в месяц. на пользователя.

GoogleSheets это полноценный функционал онлайн таблиц. Он практически заменяет Microsoft Excel. Сделки, выгруженные из amoCRM данным виджетом, вы можете импортировать в привычный Excel и работать с ними там, но с потерей синхронизации с CRM.

Возникли вопросы или сложности с настройкой?
Читайте так же
Telegram канал «Команды F5»
Лучшие кейсы автоматизаций, новости о выходе новых виджетов и обновлениях действующих.