Integraciones

Importar desde Google Sheets a Kommo

El widget le permite cargar automáticamente datos de Google Sheets en Kommo y mantenerlos actualizados. Crea nuevos contactos, empresas y ofertas. Los cambios se importan dentro de un minuto de los cambios en la tabla cuando se configura un activador de Apps Script.

Funciones

Descargar automáticamente datos de Google Sheets
Crear contactos, empresas y ofertas.
Importar dentro de un minuto después del cambio de tabla (a través de Apps Script)
Modo de sincronización periódica de respaldo (cada 10 minutos)
Escenarios flexibles de procesamiento de duplicados
Configurar el horario laboral para la importación
Etiquetas automáticas para ofertas
Sincronización bidireccional con widget de carga
Fácil personalización del formato de tabla

Guia de instalacion y configuracion

Guia detallada para trabajar con el widget "Importar desde Google Sheets a Kommo"

Configuraciones básicas

  • Después de instalar el widget, vaya a Configuración y haga clic en el botón +Agregar.

A continuación, configure los parámetros de importación:
Enlace a la tabla — pegue el enlace a su Google Sheet.
Pipeline y etapa — seleccione el pipeline y la etapa a la que se importarán los leads.
Horario de trabajo — indique el intervalo de tiempo para la importación.
Etiqueta para los leads — introduzca la etiqueta que se añadirá automáticamente a los leads durante la importación.

  • Ejemplo de configuración de hora: si necesita configurar la importación de 23:00 a 10:00, agregue dos rangos:
  • 23:00–23:59
  • 00:00–10:00
  • Si necesita agregar otra tabla para importar, haga clic en +Agregar y configúrela según el mismo principio.
  • Todas las tablas se tendrán en cuenta simultáneamente.
  • Después de completar la configuración, haga clic en Guardar.

El procesamiento toma

La función Script para tomas está disponible en la configuración:

  1. Si el pipeline y el título coinciden (predeterminado): la oferta se actualiza si el pipeline (la etapa no importa) y el nombre de la oferta coinciden.
  2. Cuando un pipeline coincide: la oferta se actualiza cuando solo el pipeline coincide.
  3. Crear siempre nuevo: cada importación crea un nuevo acuerdo. Al elegir este escenario, debe eliminar el Hash y el ID de lead en la tabla.
  4. Cualquier oferta encontrada: la oferta se actualiza si el contacto o la empresa ya tiene al menos una oferta.

Configurar una tabla para importar

Importante: en la configuración de acceso a la tabla, indique “Todos los que tengan el enlace pueden editar” o dé acceso a nuestro correo: [email protected]

  • En primera línea de la tabla se indican los nombres de las columnas
  • Formato: Entidad.Nombre de campo (por ejemplo: Oferta.Nombre, Contacto.Teléfono)
  • Para obtener más detalles, consulte enlace

Configurar Apps Script para importación instantánea

Para importar datos automáticamente cuando cambias una tabla, necesitas instalar un Apps Script especial en tu Google Sheet. Esto garantizará que los cambios se procesen rápidamente (en un minuto). La configuración sólo lleva 2 minutos: ¡simplemente pegue el código y ejecute una función!

⚡ La importación Sin Apps Script funcionará en modo de verificación periódica (cada 10 minutos), lo que ralentiza significativamente la sincronización de datos.

Ventajas de configurar un activador:

  • Procesamiento rápido: los cambios se importan en un minuto
  • 🔄 Automatización: no es necesario esperar la sincronización periódica
  • 💪 Relevancia de los datos: la información en Kommo siempre corresponde a la tabla

💡¿Dónde puedo encontrar el ID de cuenta? En Kommo, haga clic en su avatar en la parte superior izquierda → Su número de cliente. Este es su ID_cuenta.

Instrucciones paso a paso:

  1. Abre tu hoja de Google
  2. En el menú, seleccione: Extensiones → Apps Script
  3. Copie el código a continuación y péguelo en su editor (reemplazando todo el código existente)
  4. Ejecute la función setup (seleccione de la lista desplegable y presione ▶️)
  5. Regrese a la hoja de la tabla (ubicada en la siguiente pestaña) en la ventana que aparece, ingrese su account_id (en Kommo: haga clic en el avatar en la parte superior izquierda → Su número de cliente)
  6. ¡Listo! Ahora los cambios en la tabla se importarán automáticamente.
// 🚀 Función de configuración inicial — ejecútela una vez
function setup() {
  var ui = SpreadsheetApp.getUi();
  
  // Solicitar account_id al usuario
  var response = ui.prompt(
    '⚙️ Configuración de importación automática',
    'Introduzca su Account ID (en amoCRM: avatar arriba a la izquierda → Su número de cliente):',
    ui.ButtonSet.OK_CANCEL
  );
  
  if (response.getSelectedButton() !== ui.Button.OK) {
    ui.alert('❌ Configuración cancelada');
    return;
  }
  
  var accountId = response.getResponseText().trim();
  if (!accountId) {
    ui.alert('❌ El Account ID no puede estar vacío');
    return;
  }
  
  // Guardar account_id
  PropertiesService.getScriptProperties().setProperty('account_id', accountId);
  
  // Eliminar activadores antiguos
  var triggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < triggers.length; i++) {
    if (triggers[i].getHandlerFunction() === 'onEdit') {
      ScriptApp.deleteTrigger(triggers[i]);
    }
  }
  
  // Crear un nuevo activador
  ScriptApp.newTrigger('onEdit')
    .forSpreadsheet(SpreadsheetApp.getActive())
    .onEdit()
    .create();
  
  ui.alert(
    '✅ ¡Configuración completada!',
    'Account ID: ' + accountId + '\n\n' +
    'Ahora, cuando cambie la hoja, los datos se importarán automáticamente a amoCRM en un minuto.',
    ui.ButtonSet.OK
  );
}

// Devuelve la zona horaria de la hoja o UTC si hay error
function getSafeTimeZone() {
  try {
    var tz = SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone();
    return (tz && tz.trim()) ? tz : 'UTC';
  } catch(e) {
    return 'UTC';
  }
}

// ⚙️ Obtener account_id de la configuración
function getAccountIdFromProperties() {
  return PropertiesService.getScriptProperties().getProperty('account_id');
}

// 🔄 Función principal — se ejecuta automáticamente al editar la hoja
function onEdit(e) {
  var accountId = getAccountIdFromProperties();
  
  if (!accountId) {
    Logger.log("❌ Account ID no configurado. Ejecute 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: (function() {
      var tz = getSafeTimeZone();
      var date = new Date();
      return new Date(Utilities.formatDate(date, tz, "yyyy/MM/dd HH:mm:ss")).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("✅ Importación iniciada para la hoja: " + activeSheet.getName());
  } catch (error) {
    Logger.log("❌ Error de envío: " + error.toString());
  }
}

💡 Importante: se recomienda instalar Apps Script para todos los usuarios del widget. Esto garantiza una velocidad óptima de sincronización de datos entre Google Sheet y Kommo. Si tiene alguna pregunta sobre la configuración, comuníquese con el soporte técnico.

Información de transferencia de datos

ℹ️Los servidores de este servicio (Google Sheets) se encuentran fuera de la Federación de Rusia. Si procesa datos personales de ciudadanos de la Federación de Rusia, le recomendamos que garantice el cumplimiento de los requisitos de la Ley Federal N° 152-FZ "Sobre Datos Personales" en materia de transferencia de datos transfronteriza.