Интеграции

Импорт из Google таблиц в amoCRM

Виджет позволяет автоматически загружать данные из Google Таблиц в amoCRM и поддерживать их в актуальном состоянии. Создавайте новые контакты, компании и сделки. Изменения импортируются в течение минуты после изменений в таблице при настройке Apps Script триггера.

Возможности

Автоматическая загрузка данных из Google Таблиц
Создание контактов, компаний и сделок
Импорт в течение минуты после изменения таблицы (через Apps Script)
Резервный режим периодической синхронизации (каждые 10 минут)
Гибкие сценарии обработки дублей
Настройка рабочего времени для импорта
Автоматические теги для сделок
Двусторонняя синхронизация с виджетом выгрузки
Простая настройка формата таблицы

Инструкция по установке и настройке

Подробное руководство по работе с виджетом "Импорт из Google таблиц в amoCRM"

Основные настройки

  • После установки виджета перейдите в Настройки и нажмите кнопку +Добавить.

Далее настройте параметры импорта:Ссылка на таблицу – вставьте ссылку на вашу Google Таблицу.Воронка и этап – выберите воронку и этап, куда будут импортироваться сделки.Рабочее время – укажите диапазон времени для импорта. Тег для сделок – введите тег, который будет автоматически добавлен к сделкам при импорте.

  • Пример настройки времени: если нужно настроить импорт с 23:00 до 10:00, добавьте два диапазона:
  • 23:00–23:59
  • 00:00–10:00
  • Если необходимо добавить ещё одну таблицу для импорта – нажмите +Добавить и настройте её по тому же принципу.
  • Все таблицы будут учитываться одновременно.
  • После завершения настройки нажмите Сохранить.

Обработка дублей

В настройках доступна функция Сценарий для дублей:

  1. При совпадении воронки и названия (по умолчанию) — сделка обновляется, если совпадает воронка (этап не имеет значения) и название сделки.
  2. При совпадении воронки — сделка обновляется при совпадении только воронки.
  3. Всегда создавать новую — каждый импорт создаёт новую сделку. При выборе этого сценария необходимо удалять Хеш и ID сделки в таблице.
  4. Найдена любая сделка — сделка обновляется, если у контакта или компании уже есть хотя бы одна сделка.

Оформление таблицы для импорта

Важно!!! В настройках доступа к таблице укажите:«Редактировать могут все, у кого есть ссылка»илидайте доступ нашей почте: docs.nova.agency@gmail.com

  • В первой строке таблицы указываются названия столбцов
  • Формат: Сущность.Название поля (например: Сделка.Название, Контакт.Телефон)
  • Более подробно смотрите по ссылке

Настройка Apps Script для мгновенного импорта

Для автоматического импорта данных при изменении таблицы необходимо установить специальный Apps Script в вашу Google таблицу. Это обеспечит быструю обработку изменений (в течение минуты). Настройка занимает всего 2 минуты — просто вставьте код и запустите одну функцию!

Без Apps Script импорт будет работать в режиме периодической проверки (каждые 10 минут), что значительно замедляет синхронизацию данных.

Преимущества настройки триггера:

  • Быстрая обработка – изменения импортируются в течение минуты
  • 🔄 Автоматизация – не нужно ждать периодической синхронизации
  • 💪 Актуальность данных – информация в amoCRM всегда соответствует таблице

💡Где найти Account ID? В amoCRM кликните на ваш аватар слева вверху → Ваш номер клиента. Это и есть ваш account_id.

Пошаговая инструкция:

  1. Откройте вашу Google таблицу
  2. В меню выберите: Расширения → Apps Script
  3. Скопируйте код ниже и вставьте в редактор (заменив весь существующий код)
  4. Запустите функцию setup (выберите в выпадающем списке и нажмите ▶️)
  5. Вернитесь на лист таблиц(находится в соседней вкладке) в появившемся окне введите ваш account_id (в amoCRM: кликните на аватар слева вверху → Ваш номер клиента)
  6. Готово! Теперь изменения в таблице будут импортироваться автоматически
// 🚀 Функция для первоначальной настройки - запустите её один раз!
function setup() {
  var ui = SpreadsheetApp.getUi();
  
  // Запрашиваем account_id у пользователя
  var response = ui.prompt(
    '⚙️ Настройка автоматического импорта',
    'Введите ваш Account ID (в amoCRM: аватар слева вверху → Ваш номер клиента):',
    ui.ButtonSet.OK_CANCEL
  );
  
  if (response.getSelectedButton() !== ui.Button.OK) {
    ui.alert('❌ Настройка отменена');
    return;
  }
  
  var accountId = response.getResponseText().trim();
  if (!accountId) {
    ui.alert('❌ Account ID не может быть пустым');
    return;
  }
  
  // Сохраняем account_id
  PropertiesService.getScriptProperties().setProperty('account_id', accountId);
  
  // Удаляем старые триггеры
  var triggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < triggers.length; i++) {
    if (triggers[i].getHandlerFunction() === 'onEdit') {
      ScriptApp.deleteTrigger(triggers[i]);
    }
  }
  
  // Создаём новый триггер
  ScriptApp.newTrigger('onEdit')
    .forSpreadsheet(SpreadsheetApp.getActive())
    .onEdit()
    .create();
  
  ui.alert(
    '✅ Настройка завершена!',
    'Account ID: ' + accountId + '\n\n' +
    'Теперь при изменении таблицы данные будут автоматически ' +
    'импортироваться в amoCRM в течение минуты.',
    ui.ButtonSet.OK
  );
}

// ⚙️ Функция для получения account_id из настроек
function getAccountIdFromProperties() {
  return PropertiesService.getScriptProperties().getProperty('account_id');
}

// 🔄 Основная функция - срабатывает автоматически при редактировании таблицы
function onEdit(e) {
  var accountId = getAccountIdFromProperties();
  
  if (!accountId) {
    Logger.log("❌ Account ID не настроен. Запустите функцию setup()");
    return;
  }
  
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var activeSheet = e.source.getActiveSheet();
  var sheetId = activeSheet.getSheetId();
  var baseUrl = spreadsheet.getUrl();
  var fullUrl = baseUrl + "?gid=" + sheetId + "#gid=" + sheetId;
  
  var url = "https://qp1-nova.ru/api/events/gimport_market/" + accountId;
  var payload = {
    url: fullUrl,
    timestamp: new Date().getTime(),
    sheet_name: activeSheet.getName(),
    spreadsheet_id: spreadsheet.getId()
  };
  
  var options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };
  
  try {
    UrlFetchApp.fetch(url, options);
    Logger.log("✅ Импорт запущен для листа: " + activeSheet.getName());
  } catch (error) {
    Logger.log("❌ Ошибка отправки: " + error.toString());
  }
}

💡 Важно: Установка Apps Script рекомендуется для всех пользователей виджета. Это обеспечивает оптимальную скорость синхронизации данных между Google таблицей и amoCRM. Если у вас возникнут вопросы по настройке, обратитесь в техподдержку.

Совместная работа с виджетом "Выгрузка в Google таблицу"

Для двусторонней синхронизации используйте виджеты Импорт и Выгрузка вместе.В этом случае любые изменения будут автоматически синхронизироваться:Настройка:1.Установите оба виджета на аккаунт2.Создайте единую таблицу для выгрузки и импорта

  • изменили поле в amoCRM → оно обновилось в таблице,
  • изменили поле в таблице → оно обновилось в amoCRM.
  • После этого при попадании сделки в этап триггера данные выгружаются в таблицу

Настройка импорта (финальный шаг)

  • Добавьте ссылку на ту же таблицу в настройках виджета Импорт.
  • Выберите этап (любой – виджет обновит сделку, независимо от этапа).
  • Изменения в таблице и сделках теперь будут синхронизироваться автоматически
  • После подключения к таблице добавится служебный столбец Хеш изменения – он необходим для отслеживания корректности синхронизации
  • Таким образом, вы получаете полноценную синхронизацию сделок между amoCRM и Google Таблицами в обе стороны.

Информация о передаче данных

ℹ️Сервера данного сервиса (Google Sheets) находятся за пределами Российской Федерации. Если вы обрабатываете персональные данные граждан РФ, рекомендуем убедиться в соблюдении требований Федерального закона № 152-ФЗ «О персональных данных» в части трансграничной передачи данных.