Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt

Use this file to discover all available pages before exploring further.

Google Sheets es una herramienta accesible para equipos que necesitan datos estructurados sin montar una base de datos. A diferencia de Supabase (que conecta con PostgreSQL y lógica de negocio) o de un CRM (que impone un modelo predefinido), Sheets es flexible, compartible y familiar para cualquier persona del equipo. En Brain Studio, la integración permite que tus flujos lean, escriban y transformen datos en hojas en tiempo real: registrar leads, actualizar estados, consolidar reportes y orquestar procesos donde la hoja funciona como panel de control operativo.

Qué habilita Google Sheets

Al conectar Google Sheets, puedes:
  • Registrar eventos del negocio en hojas compartidas — leads, citas, pagos o documentos que quedan estructurados desde la conversación
  • Consultar datos existentes antes de responder — buscar una fila por ID, leer un rango o verificar un estado para que el agente no invente
  • Actualizar estados y columnas en tiempo real — marcar como procesado, agregar timestamp o cambiar un valor según lo que ocurre en el flujo
  • Gobernar la estructura del documento — formato condicional, validación de datos y protección de rangos para mantener la calidad de la hoja
  • Orquestar procesos entre integraciones — usar la hoja como cola de tareas donde cada fila es un caso pendiente que el flujo procesa y marca como hecho

Instalación

Requisitos previos

  1. Una cuenta de Google con acceso a Google Sheets y Google Drive.

Cómo conectarla

La forma más directa es usar Jelou Agent: describe lo que necesitas y el agente conecta Google Sheets automáticamente dentro del flujo. Si prefieres instalar manualmente, sigue estos pasos en el Marketplace. La conexión usa OAuth de Google; no necesitas copiar credenciales.
1

Abrir el Marketplace

En Brain Studio, abre Marketplace desde el menú lateral.
2

Buscar Google Sheets

Encuentra Google Sheets en el catálogo y haz clic en Conectar.
3

Autorizar acceso con Google

Se abrirá una ventana de autorización segura de Google. Inicia sesión si hace falta y acepta los permisos solicitados.
4

Confirmar la instalación

Al volver a Brain Studio, deja finalizar el asistente hasta que la integración aparezca como conectada.
En el Marketplace, Google Sheets debe mostrarse como conectada. Desde el Canvas puedes añadir su nodo, y en AI AgentHerramientas puedes activarla.

Tools disponibles

A alto nivel, las acciones se agrupan así:
  • Consultar — obtener celdas, rangos, filas, pestañas y metadatos del libro.
  • Crear y estructurar — crear libros/pestañas, insertar filas/columnas y mover dimensiones.
  • Actualizar datos — agregar, editar, limpiar o hacer upsert de filas y celdas.
  • Gobierno y calidad — validación, formato condicional, protección, comentarios y notas.
La integración expone 31 tools en Brain Studio; a continuación, cada una con propósito, inputs y ejemplo.
Inserta una nueva columna en una pestaña (suele hacerse con InsertDimension o peticiones equivalentes en batchUpdate).Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId / sheetName (string) — Pestaña.
  • startIndex (number) — Índice donde insertar la columna.
  • endIndex (opcional, number) — Si se insertan varias columnas.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetName": "Datos",
  "startIndex": 2,
  "dimension": "COLUMNS"
}
Documentación de Google: spreadsheets.values.batchUpdate · Solicitudes de hoja
Añade una regla de formato condicional (escala de colores, BOOLEAN, fórmula personalizada, etc.).Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId (number) — ID de la pestaña.
  • rule (objeto) — Definición de la regla (ranges, booleanRule, gradientRule, etc.).
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetId": 0,
  "rule": {
    "ranges": [{ "sheetId": 0, "startRowIndex": 1, "endRowIndex": 100, "startColumnIndex": 0, "endColumnIndex": 1 }],
    "booleanRule": {
      "condition": { "type": "NUMBER_GREATER", "values": [{ "userEnteredValue": "0" }] },
      "format": { "backgroundColor": { "red": 0.8, "green": 1, "blue": 0.8 } }
    }
  }
}
Documentación de Google: AddConditionalFormatRuleRequest
Anexa varias filas de datos al final de una tabla (o rango) con values.append.Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Rango base (p. ej. Hoja1!A:C).
  • values (array 2D) — Filas a añadir.
  • valueInputOption (opcional, enum: RAW | USER_ENTERED) — Por defecto USER_ENTERED.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Ventas!A:C",
  "values": [["2025-01", "Cliente A", 1500], ["2025-02", "Cliente B", 2200]],
  "valueInputOption": "USER_ENTERED"
}
Documentación de Google: spreadsheets.values.append
Añade un rango protegido con permisos de edición (AddProtectedRange).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (objeto) — Rango a proteger.
  • editors (opcional, objeto) — Usuarios o dominios con permiso de edición.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": {
    "sheetId": 0,
    "startRowIndex": 0,
    "endRowIndex": 1,
    "startColumnIndex": 0,
    "endColumnIndex": 5
  },
  "description": "Cabeceras"
}
Documentación de Google: AddProtectedRangeRequest
Añade una fila de datos; opcionalmente en un índice (p. ej. fila 2 tras cabeceras) desplazando el resto.Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Rango destino o tabla.
  • values (array) — Una fila de valores.
  • insertDataOption (opcional, enum) — INSERT_ROWS u opciones de append.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Datos!A:D",
  "values": [["ID-99", "Nuevo", "2025-03-23", true]],
  "valueInputOption": "USER_ENTERED"
}
Documentación de Google: spreadsheets.values.append
Elimina el contenido de una celda concreta (values.clear sobre el rango A1 de una celda).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Celda en notación A1 (p. ej. Hoja1!B5).
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Resumen!C10"
}
Documentación de Google: spreadsheets.values.clear
Borra el contenido de una o varias filas; las filas pueden quedar vacías según la implementación.Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Rango de filas (p. ej. Hoja1!A5:Z20).
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Import!A2:Z100"
}
Documentación de Google: spreadsheets.values.clear
Copia una pestaña a otro libro de Sheets (sheets.copyTo).Inputs:
  • spreadsheetId (string) — ID del libro origen.
  • sheetId (number) — ID de la pestaña a copiar.
  • destinationSpreadsheetId (string) — ID del libro destino.
Ejemplo:
{
  "spreadsheetId": "1SrcBookId",
  "sheetId": 123456789,
  "destinationSpreadsheetId": "1DstBookId"
}
Documentación de Google: spreadsheets.sheets.copyTo
Crea un libro nuevo en blanco o puede duplicar un libro existente según parámetros de la tool (spreadsheets.create).Inputs:
  • title (string) — Título del libro.
  • sheets (opcional, array) — Pestañas iniciales con title.
  • sourceSpreadsheetId (opcional, string) — Si la tool admite duplicar desde otro ID.
Ejemplo:
{
  "title": "Presupuesto 2025",
  "sheets": [{ "title": "Enero" }, { "title": "Febrero" }]
}
Documentación de Google: spreadsheets.create
Crea una pestaña nueva en un libro con título (suele enviarse AddSheetRequest dentro de batchUpdate).Inputs:
  • spreadsheetId (string) — ID del libro.
  • title (string) — Nombre de la nueva pestaña.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "title": "Backup Q1"
}
Documentación de Google: AddSheetRequest · batchUpdate
Elimina una regla de formato condicional por índice.Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId (number) — ID de pestaña.
  • index (number) — Índice de la regla a eliminar.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetId": 0,
  "index": 0
}
Documentación de Google: DeleteConditionalFormatRuleRequest
Elimina filas del documento (DeleteDimension en filas).Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId (number) — Pestaña.
  • startIndex (number) — Primera fila a eliminar (0-based).
  • endIndex (number) — Fila final (exclusiva).
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetId": 0,
  "dimension": "ROWS",
  "startIndex": 5,
  "endIndex": 8
}
Documentación de Google: DeleteDimensionRequest
Elimina una pestaña del libro (DeleteSheetRequest vía batchUpdate).Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId (number) — ID de la pestaña a eliminar.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetId": 987654321
}
Documentación de Google: DeleteSheetRequest
Busca una o más filas donde una columna coincide con un valor (lectura con values.get / filtrado en el flujo).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Rango a escanear.
  • column (string o number) — Columna clave.
  • value (string) — Valor buscado.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Clientes!A2:D",
  "column": "A",
  "value": "CLI-1001"
}
Documentación de Google: spreadsheets.values.get
Obtiene el valor mostrado o introducido por el usuario de una celda (values.get en rango A1 de una celda).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Celda (p. ej. Hoja1!B2).
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Totales!E4"
}
Documentación de Google: spreadsheets.values.get
Obtiene metadatos del usuario autenticado mediante about.get de Drive: nombre, correo, cuota, etc.Inputs:
  • fields (opcional, string) — Campos (user, storageQuota, …).
Ejemplo:
{
  "fields": "user,storageQuota"
}
Documentación de Google: about.get (Drive)
Devuelve el recurso del libro: pestañas, propiedades, nombres (spreadsheets.get).Inputs:
  • spreadsheetId (string) — ID del libro.
  • ranges (opcional, array de string) — Rangos para devolver también datos parciales si la tool lo permite.
  • includeGridData (opcional, boolean) — Incluir datos de cuadrícula.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "includeGridData": false
}
Documentación de Google: spreadsheets.get
Lee todos los valores de un rango en notación A1 (values.get).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Rango (p. ej. Ventas!A1:F100).
  • majorDimension (opcional, enum: ROWS | COLUMNS) — Orientación.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Inventario!A2:E500",
  "majorDimension": "ROWS"
}
Documentación de Google: spreadsheets.values.get
Inserta una nota (comentario legacy de celda) en una celda (SetCellNote / peticiones en batchUpdate).Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId (number) — Pestaña.
  • row (number) — Fila (0-based).
  • column (number) — Columna (0-based).
  • note (string) — Texto de la nota.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetId": 0,
  "row": 3,
  "column": 1,
  "note": "Revisar con finanzas"
}
Documentación de Google: spreadsheets.batchUpdate
Inserta un comentario en el archivo (API de comentarios de Drive sobre el recurso del spreadsheet).Inputs:
  • fileId (string) — ID del libro (mismo que spreadsheetId).
  • content (string) — Texto del comentario.
  • anchor (opcional, objeto) — Anclaje si la tool lo expone.
Ejemplo:
{
  "fileId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "content": "Comentario general sobre el modelo"
}
Documentación de Google: comments.create (Drive)
Inserta filas o columnas vacías (InsertDimension).Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId (number) — Pestaña.
  • dimension (enum: ROWS | COLUMNS) — Tipo.
  • startIndex / endIndex (number) — Posición e intervalo.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetId": 0,
  "dimension": "ROWS",
  "startIndex": 2,
  "endIndex": 3
}
Documentación de Google: InsertDimensionRequest
Lista las pestañas de un libro (spreadsheets.getsheets[]).Inputs:
  • spreadsheetId (string) — ID del libro.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz"
}
Documentación de Google: spreadsheets.get
Fusiona un rango rectangular (MergeCells).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (objeto) — sheetId, startRowIndex, endRowIndex, startColumnIndex, endColumnIndex.
  • mergeType (opcional, enum) — Tipo de fusión.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": {
    "sheetId": 0,
    "startRowIndex": 0,
    "endRowIndex": 1,
    "startColumnIndex": 0,
    "endColumnIndex": 4
  },
  "mergeType": "MERGE_ALL"
}
Documentación de Google: MergeCellsRequest
Mueve un bloque de filas o columnas (MoveDimension).Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId (number) — Pestaña.
  • dimension (enum: ROWS | COLUMNS) — Tipo.
  • sourceIndex / destinationIndex (number) — Origen y destino según la API.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetId": 0,
  "dimension": "ROWS",
  "sourceIndex": 10,
  "destinationIndex": 2
}
Documentación de Google: MoveDimensionRequest
Añade validación de datos (listas, números, fechas, casillas) con SetDataValidation.Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (objeto) — Rango objetivo.
  • rule (objeto) — Regla (condition, showCustomUi, etc.).
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": { "sheetId": 0, "startRowIndex": 1, "endRowIndex": 100, "startColumnIndex": 2, "endColumnIndex": 3 },
  "rule": {
    "condition": { "type": "ONE_OF_LIST", "values": [{ "userEnteredValue": "Sí" }, { "userEnteredValue": "No" }] },
    "strict": true,
    "showCustomUi": true
  }
}
Documentación de Google: SetDataValidationRequest
Escribe el valor de una celda (values.update en rango de una celda).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Celda A1.
  • values (array 2D de 1×1) — Valor.
  • valueInputOption (opcional, enum) — USER_ENTERED por defecto.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Control!B1",
  "values": [["Actualizado"]],
  "valueInputOption": "USER_ENTERED"
}
Documentación de Google: spreadsheets.values.update
Modifica una regla de formato condicional existente (UpdateConditionalFormatRule).Inputs:
  • spreadsheetId (string) — ID del libro.
  • sheetId (number) — Pestaña.
  • index (number) — Índice de la regla.
  • rule (objeto) — Nueva definición.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "sheetId": 0,
  "index": 0,
  "rule": { "ranges": [], "booleanRule": {} }
}
Documentación de Google: UpdateConditionalFormatRuleRequest
Actualiza formato de celdas (fuente, colores, bordes, números) con RepeatCell / UpdateCells en batchUpdate.Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (objeto) — Rango.
  • format (objeto) — userEnteredFormat (texto, fondo, bordes).
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": { "sheetId": 0, "startRowIndex": 0, "endRowIndex": 1, "startColumnIndex": 0, "endColumnIndex": 5 },
  "format": {
    "userEnteredFormat": {
      "textFormat": { "bold": true },
      "backgroundColor": { "red": 0.9, "green": 0.9, "blue": 0.9 }
    }
  }
}
Documentación de Google: formato (ejemplos)
Actualiza un bloque de filas con values.update en un rango rectangular.Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Rango (p. ej. Hoja1!A2:D10).
  • values (array 2D) — Matriz de valores.
  • valueInputOption (opcional, enum) — USER_ENTERED.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Datos!A2:C5",
  "values": [["a", "b", "c"], ["d", "e", "f"]],
  "valueInputOption": "USER_ENTERED"
}
Documentación de Google: spreadsheets.values.update
Actualiza una fila concreta (un rango de una fila).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — P. ej. Hoja1!A5:Z5.
  • values (array 2D de una fila) — Valores.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "Pedidos!A10:E10",
  "values": [["PED-99", "Enviado", "2025-03-23", 0, "OK"]],
  "valueInputOption": "USER_ENTERED"
}
Documentación de Google: spreadsheets.values.update
Inserta una fila nueva o actualiza si ya existe según criterios (patrón append + lógica de negocio o update).Inputs:
  • spreadsheetId (string) — ID del libro.
  • range (string) — Tabla o rango.
  • values (array) — Fila de datos.
  • keyColumn (opcional, string) — Columna de clave para decidir upsert.
Ejemplo:
{
  "spreadsheetId": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
  "range": "CRM!A:D",
  "keyColumn": "A",
  "values": [["CLI-001", "Ana", "activo", "2025-03-23"]]
}
Documentación de Google: spreadsheets.values.append

Cómo usar en Brain

Una vez conectada, puedes usar Google Sheets en dos superficies:

En AI Agent

Ideal cuando el usuario quiere consultar, insertar o actualizar filas en lenguaje natural.
1

Abre el nodo AI Agent

En el Canvas, selecciona o añade el nodo AI Agent.
2

Abre Herramientas

En el panel derecho, entra a la pestaña Herramientas.
3

Agrega Google Sheets

Usa Agregar tool, busca Google Sheets y actívala.
4

Configura las tools

Elige integración completa o activa solo las acciones que necesites. Ajusta el prompt para confirmar libro, pestaña y rango antes de escribir y para pedir validación si una operación puede sobrescribir datos.
Google Sheets aparece en la lista de herramientas del agente y puedes abrir su configuración con el icono de ajustes.
El agente decidirá automáticamente cuándo leer o escribir en el libro según la conversación.

En Canvas

Ideal cuando necesitas control total del flujo (por ejemplo: buscar fila → validar → insertar o actualizar → siguiente paso).
1

Arrastra Google Sheets al Canvas

En el panel lateral, abre Marketplace y arrastra Google Sheets al flujo.
2

Selecciona la tool

Con el nodo seleccionado, en Tools elige la acción (por ejemplo Insertar o actualizar fila).
3

Configura el cuerpo y la memoria

Completa el JSON del cuerpo de la petición y, si aplica, Guardar respuesta en una variable de memoria.
4

Conecta el flujo

Enlaza las salidas Finalizó la tarea y Hubo un error con los nodos siguientes.
El nodo queda listo para ejecutarse en el orden definido por tu flujo.
Ejemplo de configuración: El editor del nodo muestra un cuerpo JSON alineado con la tool Insertar o actualizar fila. Ajusta spreadsheetId, range, keyColumn y values según tu libro y columnas.
{
  "spreadsheetId": "{{$memory.spreadsheet_id}}",
  "range": "Leads!A:D",
  "keyColumn": "A",
  "values": [["{{$memory.lead_id}}", "{{$memory.nombre}}", "{{$memory.estado}}", "{{$memory.fecha}}"]]
}

Casos de uso

Cada interacción comercial deja la hoja actualizada sin que nadie tenga que transcribir datos manualmente.Ejemplo concreto: un equipo de ventas inbound recibe consultas por WhatsApp. El flujo busca si el lead ya existe por teléfono. Si no existe, inserta una fila con nombre, empresa, canal y fecha. Si ya existe, actualiza la columna de “última interacción”. El equipo comercial abre la hoja y ve todos los leads del día, sin duplicados ni huecos.Ideal para: ventas inbound, SDRs y agencias con alto volumen de chat que no tienen CRM formal.
Una fila por cliente con columnas de estado que se actualizan desde los flujos: cita agendada, pago confirmado, documento enviado. El equipo solo actúa sobre las excepciones.Ejemplo concreto: una empresa de implementación usa una hoja con columnas de estado por etapa. Cuando el flujo agenda una cita en Google Calendar, actualiza la columna “Cita” a “Confirmada”. Cuando se envía un documento por Gmail, actualiza “Documento” a “Enviado”. El manager abre la hoja y ve de un vistazo quién está bloqueado y quién avanza.Ideal para: operaciones, implementación y servicios con SLA que necesitan visibilidad sin montar un dashboard complejo.
Sheets puede funcionar como una cola auditable donde cada fila es un caso pendiente. El flujo lee las filas con estado “pendiente”, ejecuta las acciones en otras integraciones y escribe el resultado de vuelta.Ejemplo concreto: una empresa de backoffice tiene una hoja con facturas por emitir. Cada fila tiene cliente, monto y estado. El flujo lee las filas pendientes, emite la factura en Alegra o Facturama, y actualiza la columna de estado a “Emitida” con el timestamp. El equipo no técnico puede revisar el avance sin tocar la automatización.Ideal para: automatización mid-market, backoffice con varias APIs y equipos que necesitan un proceso auditable sin montar infraestructura.

Integraciones que combinan bien con Google Sheets

Cuando el flujo sube o genera un archivo en Drive, puede registrar el fileId, el enlace y el estado del documento como columna en la hoja operativa. Todo queda trazado en un solo lugar.Flujo combinado: archivo subido a Drive → nueva columna en Sheets con enlace y fecha.Documentación de Google Drive
Cada correo enviado o recibido relevante puede quedar como fila en Sheets: destinatario, asunto, fecha y estado. Útil como log de comunicaciones o seguimiento comercial.Flujo combinado: correo enviado vía Gmail → fila en Sheets con destinatario, asunto y timestamp.Documentación de Gmail
El flujo puede sincronizar citas con columnas de estado en la hoja: cita agendada, confirmada, cancelada o completada, con la fecha y hora del evento.Flujo combinado: evento creado en Google Calendar → columna “Cita” actualizada en Sheets con fecha y estado.Documentación de Google Calendar
Para forecast, priorización o comités, el flujo puede exportar etapas del pipeline, leads recientes o tareas pendientes del CRM a una hoja compartida con management.Flujo combinado: consultar ofertas activas en HubSpot → actualizar hoja de forecast semanal en Sheets.Documentación de HubSpotDocumentación de Pipedrive

Artículos relacionados

Integraciones

Catálogo de integraciones disponibles en el Marketplace.

Cómo usar integraciones en Brain

Flujo general para instalar y usar integraciones en Brain Studio.