Conecta WhatsApp con Google Sheets en las dos direcciones.

Conectar WhatsApp con Google Sheets sirve para dos cosas: que cada lead, chat cerrado o respuesta quede como una fila en la hoja, y que una lista de la hoja dispare mensajes por WhatsApp. Omniia no tiene un conector nativo con Sheets; se hace con sus webhooks y su API, por una de dos rutas: n8n, Zapier o Make, o un script de Google Apps Script.

  • Sin tarjeta de crédito
  • Sin permanencia
  • Soporte en español
  • Cada lead o chat cerrado como una fila nueva, sin copiar y pegar
  • Plantillas aprobadas enviadas desde una lista de la hoja
  • Dos rutas: n8n, Zapier o Make, o un script gratuito de Apps Script
  • Una columna de control para no escribirle dos veces al mismo cliente
  • Tablas de datos de Omniia para lo que el bot consulta

De WhatsApp a la hoja

Una automatización de Omniia o un webhook le avisan a la hoja cada vez que llega un lead o se cierra un chat, con el nombre, el teléfono y los campos que capturaste.

De la hoja a WhatsApp

Un script recorre las filas pendientes, envía una plantilla aprobada por la API de Omniia y marca cada fila como enviada o con el error.

O mejor dentro de Omniia

Si la hoja solo era un puente, quizás te sirven más las Tablas de datos, que el bot consulta directo, o la importación y exportación de contactos en Excel.

Actualizado el 15 de octubre de 2026

Tres formas de conectar WhatsApp con Google Sheets

RutaCómo funcionaConviene si…
n8n, Zapier o MakeReciben el webhook de Omniia y agregan la fila con su módulo de Google SheetsNo quieres tocar código o ya usas una de ellas
Google Apps ScriptUn script de la hoja recibe los datos (doPost) o llama a la API de OmniiaQuieres algo gratuito y alguien del equipo lee un poco de JavaScript
Sin hojaLos datos viven en Omniia: Tablas de datos o contactos importados desde ExcelLa hoja solo era un puente

Los módulos de Sheets tienen estos nombres, según la documentación de cada herramienta consultada el 15 de octubre de 2026: en n8n, el nodo Google Sheets con Append Row y Append or Update Row, y el disparador Google Sheets Trigger (fila agregada o actualizada); en Zapier, Create Spreadsheet Row y el disparador New Spreadsheet Row; en Make, Add a Row y Watch New Rows. Cómo se conecta cada herramienta con Omniia está en WhatsApp con n8n, Zapier o Make.

De WhatsApp a Google Sheets: guardar leads y respuestas

Ejemplo: una academia de inglés en Cali quiere una hoja con cada interesado que escribe por WhatsApp, con su nombre, su teléfono y el programa que le interesa, para que la directora la revise sin entrar al CRM. El chatbot ya pregunta el programa, lo guarda en el campo “programa” del contacto y le pone la etiqueta “Interesado”. Con Apps Script y una automatización de Omniia no hace falta ninguna herramienta en medio:

  1. 1En la hoja, abre Extensiones → Apps Script y pega el script de abajo, con una clave secreta propia.
  2. 2Impleméntalo como aplicación web (Deploy → New deployment → Web app), ejecutándose con tu cuenta y con un acceso que permita llamarlo sin iniciar sesión en Google.
  3. 3Copia la URL que termina en /exec y agrégale ?clave= seguido de tu clave secreta.
  4. 4En Omniia, crea una automatización con el disparador Se le pone una etiqueta (Interesado) y un solo paso: Avisar a otro sistema, con esa URL. Apaga “Cortar si el contacto responde”: el cliente suele seguir escribiendo y la secuencia se detendría antes de avisar.
  5. 5Activa la automatización y escríbele a tu WhatsApp desde otro celular para probar.
Apps Script: una fila por cada lead
// Extensiones → Apps Script, en la hoja que tiene una pestaña llamada Leads
const CLAVE = 'cambia-esto-por-una-clave-larga';

function doPost(e) {
  if (e.parameter.clave !== CLAVE) return ContentService.createTextOutput('no');
  const datos = JSON.parse(e.postData.contents);   // lo que envía "Avisar a otro sistema"
  const c = datos.contact || {};
  const campos = c.fields || {};
  SpreadsheetApp.getActive().getSheetByName('Leads').appendRow([
    new Date(),
    c.name || '',
    "'" + (c.phone || ''),       // el apóstrofo deja el número como texto
    campos.programa || '',
    datos.automation ? datos.automation.name : '',
  ]);
  return ContentService.createTextOutput('ok');
}

La clave va en la URL porque el evento de una aplicación web de Apps Script no trae los encabezados HTTP, según la guía de Google, y por eso no se puede verificar la firma X-Omniia-Signature dentro del script. Si necesitas la firma, o quieres guardar otros eventos, como cada chat cerrado con su calificación, usa n8n, Zapier o Make con los webhooks de Ajustes → API.

De Google Sheets a WhatsApp: enviar plantillas desde una lista

Caso: una distribuidora de Bucaramanga tiene en una hoja los pedidos que se entregan esta semana y quiere confirmarle a cada cliente el día de entrega con una plantilla de utilidad. El script recorre las filas sin estado, envía la plantilla por la API de Omniia y escribe el resultado en la última columna.

  1. 1Arma la pestaña Entregas con estas columnas: teléfono (57 más los 10 dígitos), nombre, pedido, fecha y estado (vacía).
  2. 2Crea una clave en Ajustes → API de Omniia y busca el id de tu canal oficial con GET /api/v1/channels.
  3. 3Pega el script, cambia la clave, el canal y el nombre de la plantilla, y córrelo una vez desde el editor para autorizarlo.
  4. 4Si quieres que corra solo, crea un activador instalable de tiempo, por ejemplo cada mañana.
Apps Script: enviar la plantilla fila por fila
const API = 'https://crm.omniia.app/api/v1/messages';
const CLAVE_API = 'omn_live_TU_CLAVE';          // Ajustes → API (no compartas esta hoja)
const CANAL = '<id-del-canal-oficial>';         // GET /api/v1/channels

function enviarEntregas() {
  const hoja = SpreadsheetApp.getActive().getSheetByName('Entregas');
  const filas = hoja.getDataRange().getDisplayValues(); // fila 1 = títulos
  for (let i = 1; i < filas.length; i++) {
    const [telefono, nombre, pedido, fecha, estado] = filas[i];
    if (estado) continue; // ya se envió o ya falló: no repetir
    const res = UrlFetchApp.fetch(API, {
      method: 'post',
      contentType: 'application/json',
      headers: {
        Authorization: 'Bearer ' + CLAVE_API,
        'Idempotency-Key': 'entrega-' + pedido,
      },
      payload: JSON.stringify({
        channelId: CANAL,
        to: telefono.replace(/\D/g, ''),
        type: 'template',
        template: { name: 'entrega_programada', language: 'es_CO', variables: [nombre, pedido, fecha] },
      }),
      muteHttpExceptions: true,
    });
    const ok = res.getResponseCode() === 200;
    hoja.getRange(i + 1, 5).setValue(ok ? 'enviado' : 'error: ' + res.getContentText().slice(0, 80));
    Utilities.sleep(1500); // un envío cada segundo y medio
  }
}

La columna de estado y el Idempotency-Key cuidan lo mismo desde dos lados: que nadie reciba dos veces el aviso aunque el script se corra de nuevo. Si en la columna aparece meta_window_expired o template_variables_mismatch, el significado de cada error está en la guía de la API y los webhooks.

Un detalle que confunde: si las filas las agrega Zapier, n8n u otro script, un activador de edición de Apps Script no se dispara. La documentación de activadores de Google lo dice así: las ejecuciones de scripts y las peticiones a la API no hacen correr los activadores. Para reaccionar a filas nuevas usa el activador de tiempo o el disparador de filas nuevas de n8n, Zapier o Make.

¿Hoja de Google, Tablas de datos o Excel de contactos?

Muchas veces la hoja de cálculo es un puente que sobra. Antes de conectarla, revisa si lo que necesitas ya existe dentro de Omniia:

NecesidadMejor opciónPor qué
El bot responde precios, sedes, horarios o tarifasTablas de datos de OmniiaEl flujo las lee con el nodo Consultar tabla y el agente de IA también las consulta, sin depender de otro servicio
Los datos cambian solos desde otro sistema varias veces al díaHoja de Google con n8n o Apps ScriptLas Tablas de datos se llenan a mano en una grilla; hoy no se cargan por la API
Subir la base de clientes una sola vezImportar Excel (.xlsx) en ContactosCrea los contactos con etiquetas y campos, listos para segmentar
Sacar un listado de contactos filtradoExportar a Excel desde ContactosSale con los filtros que aplicaste; el permiso de exportar se da por usuario
Un registro vivo de leads o atenciones para gerenciaHoja de Google conectadaLo ve y lo filtra gente que no entra a Omniia

Si vas por la importación, en importar contactos de Excel a un CRM explicamos cómo preparar el archivo para que no falle. Y si tu equipo todavía lleva los clientes en una hoja, vale la pena leer CRM vs. Excel antes de construir más fórmulas.

  • 1

    bandeja para todos tus canales

  • 24/7

    tu agente de IA responde

  • 1 link

    para que tus clientes agenden solos

  • 0

    cláusulas de permanencia

Preguntas frecuentes

¿Tienes otra duda? Escríbenos por WhatsApp y te ayudamos.

¿Omniia trae un conector con Google Sheets?

No. La conexión se arma con los webhooks y la API de Omniia, usando n8n, Zapier, Make o un script de Google Apps Script. Lo que sí es nativo es la importación y exportación de contactos en Excel.

¿Puedo hacer envíos masivos desde una hoja?

Para unos cuantos avisos de utilidad, sí, con el script de esta página. Para una campaña a toda tu base, importa los contactos y usa las campañas de Omniia, que controlan el ritmo, la ventana horaria y los reportes de entrega.

¿Funciona con Excel en lugar de Google Sheets?

Para cargar o descargar contactos, sí: Omniia importa y exporta archivos .xlsx. Las recetas de conexión en vivo de esta página están hechas para Google Sheets.

¿Por qué el teléfono se ve raro en la hoja?

Google Sheets trata los números largos como cifras y puede cambiarlos de formato. Guarda la columna como texto o escribe el número con un apóstrofo delante, como hace el script de ejemplo.

¿Las filas que agrega Zapier disparan mi script de edición?

No. Según Google, las ejecuciones de scripts y las peticiones a la API no hacen correr los activadores. Usa un activador de tiempo o el disparador de filas nuevas de n8n, Zapier o Make.

¿Puedo guardar cada mensaje en la hoja?

Sí, con el evento message.received cada mensaje es una fila, pero una hoja con miles de mensajes se vuelve lenta. El historial completo ya queda en la ficha de cada contacto en Omniia.

Pruébalo gratis durante 1 semana

Creas tu cuenta en minutos, conectas tu WhatsApp y nuestro equipo te acompaña para dejarlo funcionando.

  • Sin tarjeta de crédito
  • Implementación rápida
  • Cancela cuando quieras