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

# Google Workspace

> Conecte Gmail, Google Docs, Sheets, Drive, Calendar y Meet

## Descripción General

Seis servicios de Google están disponibles a través de un flujo OAuth compartido. Conéctese una vez con su cuenta de Google — y sus agentes de IA obtienen acceso a correo electrónico, documentos, hojas de cálculo, archivos, calendario y videoconferencias.

## Servicios Compatibles

| Servicio            | Herramientas | Descripción                                                                                    |
| ------------------- | ------------ | ---------------------------------------------------------------------------------------------- |
| **Gmail**           | 6            | Enviar correos, leer bandeja de entrada, buscar, responder, crear borradores, obtener adjuntos |
| **Google Docs**     | 5            | Crear, leer, agregar contenido, buscar y exportar documentos                                   |
| **Google Sheets**   | 7            | Leer/escribir rangos, agregar filas, buscar, crear hojas de cálculo                            |
| **Google Drive**    | 8            | Listar, buscar, subir, descargar, compartir archivos y carpetas                                |
| **Google Calendar** | 6            | Crear eventos, verificar disponibilidad, encontrar horarios libres                             |
| **Google Meet**     | 1            | Crear enlaces de videollamada                                                                  |

## Autenticación

Todas las integraciones de Google Workspace usan **OAuth 2.0** con acceso offline:

<Steps>
  <Step title="Agregar Integración">
    Vaya a **Integraciones** → **Agregar Integración** → seleccione cualquier servicio de Google (por ejemplo, Gmail).
  </Step>

  <Step title="Consentimiento OAuth">
    Haga clic en "Conectar con Google". Será redirigido a la pantalla de consentimiento de Google donde autoriza el acceso al servicio específico.
  </Step>

  <Step title="Almacenamiento de Tokens">
    Revol recibe un token de acceso y un token de actualización. Ambos se cifran y almacenan en la base de datos. El token de actualización proporciona acceso a largo plazo — Revol renueva automáticamente los tokens de acceso expirados.
  </Step>

  <Step title="Herramientas Provisionadas">
    Después del OAuth exitoso, las herramientas del agente se crean automáticamente basándose en el tipo de integración.
  </Step>
</Steps>

### Alcances OAuth

Cada servicio solicita solo los alcances que necesita:

| Servicio        | Alcance                                                          |
| --------------- | ---------------------------------------------------------------- |
| Gmail           | `gmail.modify`                                                   |
| Google Docs     | `documents`, `drive.file`                                        |
| Google Sheets   | `spreadsheets`, `drive.file`                                     |
| Google Drive    | `drive`                                                          |
| Google Calendar | `calendar`                                                       |
| Google Meet     | `calendar` (los enlaces de Meet se crean vía la API de Calendar) |

## Herramientas del Agente

<Tabs>
  <Tab title="Gmail">
    | Herramienta       | Descripción                                                                          |
    | ----------------- | ------------------------------------------------------------------------------------ |
    | `send_email`      | Componer y enviar un correo con asunto, cuerpo, CC/BCC opcionales                    |
    | `read_inbox`      | Listar correos recientes de la bandeja de entrada                                    |
    | `search_emails`   | Buscar correos por sintaxis de consulta de Gmail (de, asunto, fecha, palabras clave) |
    | `reply_to_email`  | Responder a un hilo de correo específico                                             |
    | `create_draft`    | Crear un borrador de correo sin enviar                                               |
    | `get_attachments` | Descargar o inspeccionar adjuntos de correos                                         |
  </Tab>

  <Tab title="Google Docs">
    | Herramienta          | Descripción                                       |
    | -------------------- | ------------------------------------------------- |
    | `create_document`    | Crear un nuevo Google Doc                         |
    | `read_document`      | Leer el contenido de un documento por ID          |
    | `append_to_document` | Agregar texto al final de un documento            |
    | `search_documents`   | Buscar documentos por título o contenido en Drive |
    | `export_document`    | Exportar documento a PDF, DOCX o texto plano      |
  </Tab>

  <Tab title="Google Sheets">
    | Herramienta          | Descripción                                                        |
    | -------------------- | ------------------------------------------------------------------ |
    | `read_range`         | Leer datos de un rango de celdas (por ejemplo, A1:D10)             |
    | `write_range`        | Escribir datos en un rango de celdas                               |
    | `append_rows`        | Agregar filas al final de una hoja                                 |
    | `search_rows`        | Buscar filas que coincidan con un valor de columna                 |
    | `create_spreadsheet` | Crear una nueva hoja de cálculo                                    |
    | `get_info`           | Obtener metadatos de la hoja de cálculo (hojas, cantidad de filas) |
    | `update_cells`       | Actualizar celdas específicas                                      |
  </Tab>

  <Tab title="Google Drive">
    | Herramienta     | Descripción                                                   |
    | --------------- | ------------------------------------------------------------- |
    | `list_files`    | Listar archivos en una carpeta                                |
    | `search_files`  | Buscar archivos por nombre, tipo o contenido                  |
    | `read_file`     | Descargar o leer contenido de archivo                         |
    | `create_file`   | Subir un nuevo archivo                                        |
    | `update_file`   | Actualizar contenido o metadatos de un archivo existente      |
    | `delete_file`   | Mover un archivo a la papelera                                |
    | `create_folder` | Crear una nueva carpeta                                       |
    | `share_file`    | Compartir un archivo con usuarios específicos o hacer público |
  </Tab>

  <Tab title="Calendar y Meet">
    **Google Calendar:**

    | Herramienta          | Descripción                                                  |
    | -------------------- | ------------------------------------------------------------ |
    | `create_event`       | Crear un evento de calendario con asistentes y recordatorios |
    | `list_events`        | Listar próximos eventos en un rango de fechas                |
    | `update_event`       | Actualizar detalles de un evento existente                   |
    | `delete_event`       | Cancelar/eliminar un evento del calendario                   |
    | `check_availability` | Verificar si un horario está libre u ocupado                 |
    | `find_free_slots`    | Encontrar horarios disponibles en un rango de fechas         |

    **Google Meet:**

    | Herramienta      | Descripción                                                                |
    | ---------------- | -------------------------------------------------------------------------- |
    | `create_meeting` | Crear un enlace de Google Meet (vía evento de Calendar con conferenceData) |
  </Tab>
</Tabs>

## Uso de Herramientas en Nodos del Workflow

Las herramientas de Google Workspace son especialmente poderosas en nodos del workflow donde el agente puede combinar múltiples herramientas en una sola conversación:

1. Conecte un servicio de Google y verifique vía OAuth
2. Las herramientas aparecen en la pestaña **Herramientas** del agente
3. Agréguelas a los **nodos personalizados** en el editor de workflow
4. El LLM las invoca automáticamente cuando es relevante

**Ejemplo de workflow:** Un cliente pide programar una demo →

* El agente invoca `check_availability` para encontrar horarios libres
* El cliente elige un horario → el agente invoca `create_event` para reservarlo
* El agente invoca `create_meeting` para generar un enlace de Google Meet
* El agente invoca `send_email` para enviar un correo de confirmación con el enlace

## Casos de Uso

<AccordionGroup>
  <Accordion title="Correos de seguimiento automatizados">
    El agente califica un lead vía chat → usa `send_email` para enviar un seguimiento con precios → registra la interacción en Google Sheets vía `append_rows`.
  </Accordion>

  <Accordion title="Reserva de citas">
    El cliente pide programar una reunión → el agente usa `check_availability` para encontrar horarios libres → `create_event` para reservarlo → `create_meeting` para generar un enlace de Meet → envía confirmación vía chat o correo.
  </Accordion>

  <Accordion title="Generación de documentos">
    El agente recopila información del cliente → usa `create_document` para generar una propuesta o informe → `share_file` para dar acceso al cliente.
  </Accordion>

  <Accordion title="Seguimiento de leads tipo CRM">
    Cada conversación que termina con un lead → el agente usa `append_rows` para agregar datos del lead a una Google Sheet → `send_email` para notificar al equipo de ventas.
  </Accordion>
</AccordionGroup>

## Renovación de Tokens

Los tokens de acceso de Google expiran después de 1 hora. Revol gestiona esto automáticamente:

1. Antes de cada llamada a la API, Revol verifica si el token está dentro de los 5 minutos de expiración
2. Si expiró, usa el token de actualización almacenado para obtener un nuevo token de acceso
3. El nuevo token se cifra y guarda en la base de datos
4. La llamada a la API procede con el token renovado

Si un token de actualización se invalida (el usuario revocó el acceso), la integración se marca como **desconectada** y necesita ser re-autorizada.
