> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryprofound.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Usar Google Drive en Agents

> Aprende a leer y escribir documentos de Google Docs, hojas de cálculo de Google Sheets y presentaciones de Google Slides con nodos de Agent

Después de [conectar tu cuenta de Google](/es/integrations/google-drive/connect-google-drive-to-profound), los siguientes nodos estarán disponibles en Profound Agents. Encuéntralos en el creador de Agents, en **Google Suite**: los grupos **Google Docs** y **Google Sheets**, y el nodo **Google Slides**.

Cada nodo se ejecuta como la cuenta de Google que selecciones en **Google Account**. Solo puede acceder a los archivos que agregaste mediante el selector de archivos de Google y a los archivos que creó Profound, así que [agrega los archivos](/es/integrations/google-drive/connect-google-drive-to-profound#step-3) antes de usarlos en tus Agents.

<Note>
  ¿Es tu primera vez con Agents? Consulta [Getting started with Agents](https://help.tryprofound.com/articles/2212787792-create-an-agent) en el Centro de ayuda de Profound.
</Note>

## Nodos disponibles

<Tabs>
  <Tab title="Create Document" icon="file-plus">
    ### Create Document

    Crea un documento de Google Docs.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Document Title**: el título del nuevo documento

    #### Entradas opcionales

    | Entrada | Valor predeterminado | Descripción |
    | - | - | - |
    | **Content format** | **Plain Text** | Cómo leer **Initial Content**: **Plain Text**, **Markdown** o **HTML**. Usa el formato del contenido que pegues o referencies. |
    | **Initial Content** | - | El contenido del nuevo documento. Google convierte Markdown y HTML en texto con formato. El HTML debe contener etiquetas, como `<p>...</p>`. |
    | **Destination folder** | **My Drive** | La carpeta de Drive en la que se crea el documento. Selecciona una carpeta que hayas agregado mediante el selector, o selecciona **Add a folder from Google Drive** para agregar una. La carpeta puede estar en una unidad compartida. Acepta una variable que contenga un ID de carpeta. |

    #### Salida

    Un objeto JSON con el `documentId`, el `document_url` y el `title` del nuevo documento.

    <Note>
      Si Profound no puede escribir el contenido en un documento que acaba de crear en una carpeta, mueve el documento vacío a la papelera para que la carpeta no acumule archivos en blanco.
    </Note>
  </Tab>

  <Tab title="Get Document" icon="file">
    ### Get Document

    Lee el contenido de un documento de Google Docs.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Document**: busca entre los documentos que agregaste y selecciona uno, o pega la URL del documento. También acepta un ID de documento o una variable de la salida de un nodo anterior

    #### Entradas opcionales

    * **Export format**: **Plain text** (predeterminado), **HTML**, **Markdown** o **Raw (Docs API JSON)**. Raw devuelve el JSON completo del documento de Google, incluidas todas las pestañas.

    #### Salida

    El contenido del documento en el formato seleccionado, como texto.

    Los documentos cuya exportación supera los 5 MB no se devuelven, y el nodo indica que el documento es demasiado grande.
  </Tab>

  <Tab title="Create Spreadsheet" icon="table">
    ### Create Spreadsheet

    Crea una hoja de cálculo y llena su primera hoja con filas, o agrega una nueva hoja con filas a una hoja de cálculo existente.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Title**: el título de la nueva hoja de cálculo, o de la nueva hoja cuando la agregas a una hoja de cálculo existente
    * **Rows**: los datos que se escribirán, en el formato seleccionado en **Input format**
    * **Input format**: **CSV** (seleccionado de forma predeterminada al agregar el nodo), **TSV (tab-separated)**, **Markdown table**, **HTML table** o **JSON**. JSON acepta un array de objetos, cuyas claves se convierten en la fila de encabezado, un objeto de arrays con claves por columna, o un array de arrays. Si el contenido está dentro de un bloque de código, el bloque se elimina antes del análisis

    #### Entradas opcionales

    | Entrada | Valor predeterminado | Descripción |
    | - | - | - |
    | **Add to Existing Spreadsheet** | - | Déjalo vacío para crear una nueva hoja de cálculo. Selecciona una hoja de cálculo existente, o pega su URL, para agregar en su lugar una nueva pestaña llamada como **Title**. |
    | **Value input option** (en la configuración avanzada) | **Formula / number (interpret as typed)** | Cómo lee Google los valores escritos. **Formula / number** interpreta las fórmulas y los números como si los escribieras en una celda, por ejemplo `=SUM(A1:B1)`. **Plain text (no parsing)** los almacena como texto. |

    #### Salida

    Para una nueva hoja de cálculo, un objeto JSON con `spreadsheetId`, `spreadsheet_url` y `title`. Para una nueva hoja, un objeto JSON con `spreadsheetId`, `spreadsheet_url`, `sheetId` y `sheet_title`.

    <Tip>
      Para copiar datos entre hojas, establece **Input format** en el **Output format** que usaste en [**Get Sheet Values**](#get-sheet-values). CSV, TSV, HTML, Markdown y las estructuras JSON se conservan en ambos sentidos.
    </Tip>
  </Tab>

  <Tab title="Get Row" icon="table-list">
    ### Get Row

    Lee una fila de una hoja.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Spreadsheet**: busca entre las hojas de cálculo que agregaste y selecciona una, o pega su URL
    * **Row selection**: **Specific row**, **First row** o **Last row**
    * **Row number**: la fila que se leerá cuando **Row selection** es **Specific row**. Coincide con los números de fila de la hoja de cálculo

    #### Entradas opcionales

    * **Sheet name**: la pestaña de la hoja que se leerá. Si se omite, se usa la primera hoja

    #### Salida

    Un objeto JSON con `row_number`, `values` (los valores de las celdas en orden) y `record`. `record` asigna los nombres de encabezado de la fila 1 a los valores de la fila, y es `null` cuando la fila que lees es la fila 1 o la hoja está vacía.
  </Tab>

  <Tab title="Get Sheet Values" icon="table-cells">
    ### Get Sheet Values

    Lee un rango de celdas.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Spreadsheet**: busca entre las hojas de cálculo que agregaste y selecciona una, o pega su URL

    #### Entradas opcionales

    | Entrada | Valor predeterminado | Descripción |
    | - | - | - |
    | **Sheet name** | Primera hoja | La pestaña de la hoja que se leerá. |
    | **Range** | Toda la hoja | Un rango A1 dentro de la hoja, por ejemplo `A1:D10`. |
    | **Value render option** (en la configuración avanzada) | **Formatted value** | **Formatted value** devuelve los valores tal como se muestran, **Unformatted value** devuelve los valores subyacentes y **Formula** devuelve las fórmulas en lugar de sus resultados. |
    | **Output format** (en la configuración avanzada) | **Rows (2D array)** | La estructura de la salida: **Rows (2D array)**, **Records (list of dicts)**, **Columns (dict of lists)**, **CSV (string)**, **TSV (tab-separated)**, **HTML table**, **Markdown table** o **Raw (full API response)**. Records, Columns, CSV, TSV, HTML y Markdown tratan la primera fila del rango como encabezado. |

    #### Salida

    Un objeto JSON con los datos en `values`, con la estructura seleccionada. **Raw** devuelve en su lugar la respuesta completa de Google, con `values` y `majorDimension`.

    <Note>
      **Records** y **Columns** necesitan nombres de encabezado únicos. Si dos columnas comparten nombre, cambia el nombre de una en la hoja de cálculo o elige otro formato.
    </Note>
  </Tab>

  <Tab title="Update Cell" icon="pen-to-square">
    ### Update Cell

    Escribe un valor en una celda.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Spreadsheet**: busca entre las hojas de cálculo que agregaste y selecciona una, o pega su URL
    * **Cell**: la celda en notación A1, por ejemplo `A1`
    * **Value**: el valor que se escribirá, como cadena, número o booleano

    #### Entradas opcionales

    * **Sheet name**: la pestaña de la hoja en la que se escribirá. Si se omite, se usa la primera hoja
    * **Value input option** (en la configuración avanzada): **Formula / number (interpret as typed)** (predeterminado) o **Plain text (no parsing)**

    #### Salida

    La respuesta de actualización de Google, incluido el rango actualizado.
  </Tab>

  <Tab title="Write Row" icon="plus">
    ### Write Row

    Agrega una fila al final de una hoja o sobrescribe una fila existente.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Spreadsheet**: busca entre las hojas de cálculo que agregaste y selecciona una, o pega su URL
    * **Values**: un array JSON de valores de celda que se asignan a las columnas en orden, por ejemplo `["Alice", "alice@example.com", 42, true]`
    * **Write mode**: **Append to end** (predeterminado) agrega la fila después de la última fila con datos. **Overwrite specific row** reemplaza la fila que indiques en **Row number**
    * **Row number**: la fila que se sobrescribirá cuando **Write mode** es **Overwrite specific row**

    #### Entradas opcionales

    * **Sheet name**: la pestaña de la hoja en la que se escribirá. Si se omite, se usa la primera hoja
    * **Value input option** (en la configuración avanzada): **Formula / number (interpret as typed)** (predeterminado) o **Plain text (no parsing)**
    * **Start column** (en la configuración avanzada): la letra de la columna en la que empieza la fila, por ejemplo `A` o `E`. Si está vacío, Google detecta dónde está la tabla al agregar filas, y la sobrescritura empieza en la columna `A`

    #### Salida

    Un objeto JSON con `updated_range` y el `row_number` que se escribió.
  </Tab>

  <Tab title="Write Rows" icon="list">
    ### Write Rows

    Agrega varias filas al final de una hoja, o actualiza varias filas existentes, en una sola ejecución.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Spreadsheet**: busca entre las hojas de cálculo que agregaste y selecciona una, o pega su URL
    * **Mode**: **Add rows** (predeterminado) agrega las filas después de la última fila con datos. **Update rows** sobrescribe las filas que indiques
    * **Row Data Format**: **Arrays** (predeterminado) o **JSON Objects**
    * **Row Data**: un array JSON con una entrada por fila. Su estructura depende de **Mode** y **Row Data Format**:

    | Modo | Arrays | JSON Objects |
    | - | - | - |
    | **Add rows** | Cada array interno es una fila, asignada a las columnas en orden: `[["Alice", "alice@example.com", 90], ["Bob", "bob@example.com", 85]]` | Las claves son letras de columna: `[{"A": "Alice", "B": "alice@example.com", "C": 90}]` |
    | **Update rows** | El primer elemento de cada fila es el número de fila que se actualizará: `[[1, "Alice", "alice@example.com", 95], [3, "Charlie", "charlie@example.com", 88]]` | Cada objeto incluye una clave `row_number`: `[{"row_number": 1, "A": "Alice", "B": "alice@example.com"}]` |

    #### Entradas opcionales

    * **Sheet name**: la pestaña de la hoja en la que se escribirá. Si se omite, se usa la primera hoja
    * **Value input option** (en la configuración avanzada): **Formula / number (interpret as typed)** (predeterminado) o **Plain text (no parsing)**
    * **Start column** (en la configuración avanzada): la letra de la columna en la que empiezan las filas, por ejemplo `A` o `E`. Si está vacío, Google detecta dónde está la tabla al agregar filas, y las actualizaciones empiezan en la columna `A`

    #### Salida

    Un objeto JSON con `rows_created`, `rows_updated` y `updated_range`.
  </Tab>

  <Tab title="Google Slides" icon="display">
    ### Google Slides

    Lee el contenido de texto de una presentación de Google Slides.

    #### Entradas obligatorias

    * **Google Account**: selecciona una cuenta conectada en el menú desplegable
    * **Presentation**: busca entre las presentaciones que agregaste y selecciona una, o pega su URL

    #### Salida

    El texto de la presentación como texto sin formato.

    Las presentaciones cuya exportación supera los 5 MB no se devuelven, y el nodo indica que la presentación supera el tamaño máximo.
  </Tab>
</Tabs>

***

## Conceptos clave

### Archivos a los que Profound puede acceder

Profound tiene el permiso `drive.file` de Google, que solo abarca los archivos que seleccionaste en el selector de archivos de Google y los archivos que creó Profound. Cada menú desplegable de archivos muestra esos archivos para la cuenta seleccionada, y la acción **Add files from Google Drive**, en la parte inferior del menú desplegable, abre el selector para que puedas agregar más.

Los archivos que Profound crea con **Create Document** y **Create Spreadsheet** están disponibles para los nodos posteriores sin necesidad de agregarlos.

### Seleccionar un archivo

Las entradas **Document**, **Spreadsheet** y **Presentation** aceptan:

* Un archivo seleccionado en el menú desplegable
* La URL del archivo, como `https://docs.google.com/document/d/<FILE_ID>/edit` o `https://drive.google.com/open?id=<FILE_ID>`
* El ID del archivo
* Una variable de la salida de un nodo anterior, por ejemplo el `documentId` que devuelve **Create Document**

Si el valor no es un ID ni una URL, Profound lo trata como el nombre del archivo y busca una coincidencia exacta, sin distinguir mayúsculas de minúsculas, entre los archivos a los que puede acceder. El nodo se detiene con un error si ningún archivo coincide o si coincide más de uno. En ese caso, usa el ID o la URL.

### Hojas, rangos y valores

* **Sheet name** es el nombre de una pestaña de la hoja de cálculo. Déjalo vacío para trabajar con la primera pestaña.
* **Range** y **Cell** usan la notación A1, por ejemplo `A1:D10` o `B2`. Deja **Range** vacío para leer toda la hoja.
* **Value input option** determina cómo almacena Google lo que escribes. **Formula / number (interpret as typed)** trata `=SUM(A1:B1)` como una fórmula y `42` como un número, como si los escribieras en la celda. **Plain text (no parsing)** los almacena como texto.

***

## Solución de problemas

<AccordionGroup>
  <Accordion title="El menú desplegable de archivos está deshabilitado o indica que aún no hay archivos concedidos">
    * Selecciona primero una **Google Account**. El menú desplegable permanece deshabilitado hasta que lo hagas.
    * Si el menú desplegable muestra **No files granted yet**, Profound aún no puede acceder a ningún archivo de esta cuenta. Selecciona **Add files from Google Drive** y elige los archivos en el selector de Google.
    * Cambiar la **Google Account** borra el archivo seleccionado, porque los archivos a los que puede acceder cada cuenta son distintos.
  </Accordion>

  <Accordion title="Un nodo indica que no se encuentra el documento, la hoja de cálculo o la presentación">
    Profound solo puede abrir los archivos que agregaste mediante el selector o los archivos que creó. Comprueba que el archivo sea uno de ellos y que siga existiendo en Drive. Si pegaste una URL o un ID, confirma que pertenezca a la misma cuenta de Google que seleccionaste.
  </Accordion>

  <Accordion title="Un nodo indica que ningún archivo, o más de uno, coincide con un nombre">
    El valor que introdujiste no es un ID ni una URL, así que Profound buscó por nombre. Selecciona el archivo en el menú desplegable o pega su URL o ID.
  </Accordion>

  <Accordion title="Un nodo de Sheets indica que no se encuentra una hoja">
    **Sheet name** debe coincidir exactamente con el nombre de la pestaña en la hoja de cálculo. Cópialo de la hoja de cálculo o deja el campo vacío para usar la primera pestaña.
  </Accordion>

  <Accordion title="Un nodo de Sheets indica que el rango está fuera de la hoja">
    El error te indica cuántas filas y columnas tiene la hoja. Usa un rango dentro de esos límites o agrega primero filas y columnas a la hoja.
  </Accordion>

  <Accordion title="Get Sheet Values indica que hay nombres de encabezado duplicados">
    Los formatos de salida **Records** y **Columns** usan la primera fila como claves, por lo que cada encabezado debe ser único. Cambia el nombre de las columnas duplicadas en la hoja de cálculo o cambia **Output format** a **Rows**, **CSV** u otro formato.
  </Accordion>

  <Accordion title="Create Spreadsheet indica que el contenido parece tener un formato distinto">
    **Input format** debe coincidir con los datos de **Rows**. Por ejemplo, se rechazan los datos JSON con **Input format** establecido en **CSV**. Cambia **Input format** al formato de tus datos.
  </Accordion>

  <Accordion title="Create Document indica que el contenido HTML no tiene etiquetas">
    Con **Content format** establecido en **HTML**, **Initial Content** debe contener etiquetas HTML, como `<p>...</p>`. Encierra el texto en etiquetas o cambia **Content format** a **Plain Text** o **Markdown**.
  </Accordion>

  <Accordion title="Create Document no puede encontrar la carpeta de destino o acceder a ella">
    * Si Profound no encuentra la carpeta, vuelve a seleccionarla mediante **Add a folder from Google Drive**.
    * Si Profound no tiene acceso a la carpeta, selecciona una carpeta en la que la cuenta de Google conectada pueda agregar archivos.
    * Para una carpeta de una unidad compartida, la cuenta conectada debe ser miembro de la unidad compartida, y las reglas de tu Google Workspace deben permitirle agregar archivos en ella.
    * Si la unidad o la carpeta están llenas, libera espacio o selecciona una carpeta de otra unidad.
  </Accordion>

  <Accordion title="Un nodo indica que el documento o la presentación es demasiado grande">
    Profound exporta hasta 5 MB por documento o presentación. Divide el archivo o lee un documento más pequeño.
  </Accordion>

  <Accordion title="Un nodo indica que no tienes permiso para editar">
    La cuenta de Google conectada tiene acceso de solo lectura al archivo. Pide al propietario del archivo acceso de Editor y vuelve a ejecutar el nodo.
  </Accordion>

  <Accordion title="Un nodo indica que se superó el límite de frecuencia o la cuota de Google">
    Google limita cuántas solicitudes acepta en un período de tiempo. Espera y vuelve a ejecutar el Agent. Si sigue ocurriendo, pide al administrador de tu Google Workspace que revise la cuota de la API.
  </Accordion>

  <Accordion title="Un nodo indica que es necesario volver a autorizar la integración">
    Google ya no acepta el token de Profound para la cuenta. En **Settings** > **Integrations** > **Google Drive**, revoca la conexión y [vuelve a conectar la cuenta](/es/integrations/google-drive/connect-google-drive-to-profound#step-2).
  </Accordion>
</AccordionGroup>
