Gestión, envío y revisión de formularios
Se gestiona, envía y pone en revisión con los diferentes componentes Google un formulario
+2
graph TD
%%{init: {'theme': 'mc','layout': 'elk'}}%%
googlecalendarcomponent-0ev4s[Crear evento]
style googlecalendarcomponent-0ev4s stroke:#a170ff
GmailMesageComponent-m2hs5[<div><img alt="logo" src="/_astro/gmail.CLxyIGOu.svg" style="height: 20px !important;width: 20px !important"/></div>Enviar correo]
style GmailMesageComponent-m2hs5 stroke:#a170ff
GSheetCellComponent-5393p[Obtener datos para preguntas]
style GSheetCellComponent-5393p stroke:#a170ff
googleFormscomponent-pklic[Crear formulario]
style googleFormscomponent-pklic stroke:#a170ff
ParseData-sie7v[<div><img alt="logo" src="/_astro/braces.Djq0PW4_.svg" style="height: 20px !important;width: 20px !important"/></div>Datos del formulario creado]
style ParseData-sie7v stroke:#a170ff
Prompt-ednks[<div><img alt="logo" src="/_astro/square-terminal.BMOXc-nZ.svg" style="height: 20px !important;width: 20px !important"/></div>Consulta]
style Prompt-ednks stroke:#a170ff
TextInput-45j33[<div><img alt="logo" src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Email a enviar]
style TextInput-45j33 stroke:#a170ff
LanggraphReactAgent-5u7ua[Agent]
style LanggraphReactAgent-5u7ua stroke:#a170ff
ParseData-ezf3x[<div><img alt="logo" src="/_astro/braces.Djq0PW4_.svg" style="height: 20px !important;width: 20px !important"/></div>Extrae Título]
style ParseData-ezf3x stroke:#a170ff
Loop-0t41j[Loop]
style Loop-0t41j stroke:#a170ff
LoopEnd-tkma8[Loop End]
style LoopEnd-tkma8 stroke:#a170ff
ParseData-s1mj3[<div><img alt="logo" src="/_astro/braces.Djq0PW4_.svg" style="height: 20px !important;width: 20px !important"/></div>Extraer descripción]
style ParseData-s1mj3 stroke:#a170ff
googleFormsDatacomponent-lgi5n[pregunta1]
style googleFormsDatacomponent-lgi5n stroke:#a170ff
googleFormsDatacomponent-rr4s5[pregunta2]
style googleFormsDatacomponent-rr4s5 stroke:#a170ff
googleFormsDatacomponent-0ebmm[pregunta3]
style googleFormsDatacomponent-0ebmm stroke:#a170ff
ParseData-cxlb1[<div><img alt="logo" src="/_astro/braces.Djq0PW4_.svg" style="height: 20px !important;width: 20px !important"/></div>id del formulario]
style ParseData-cxlb1 stroke:#a170ff
GDriveFilesComponent-pqmsv[<div><img alt="logo" src="/_astro/google_drive.wKmDsV2c.svg" style="height: 20px !important;width: 20px !important"/></div>Mover a carpeta de formularios2]
style GDriveFilesComponent-pqmsv stroke:#a170ff
GoogleGenerativeAIModel-9eat4[Gemini]
style GoogleGenerativeAIModel-9eat4 stroke:#a170ff
CreateData-8pzaf[Create Data2]
style CreateData-8pzaf stroke:#a170ff
ParseData-7uply[<div><img alt="logo" src="/_astro/braces.Djq0PW4_.svg" style="height: 20px !important;width: 20px !important"/></div>End]
style ParseData-7uply stroke:#a170ff
GSheetCellComponent-ok2v8[pasar fila a formularios creados]
style GSheetCellComponent-ok2v8 stroke:#a170ff
GSheetCellComponent-wwd0a[eliminar fila de formularios pendientes]
style GSheetCellComponent-wwd0a stroke:#a170ff
googleFormscomponent-pklic -.- ParseData-sie7v
linkStyle 0 stroke:#a170ff
ParseData-sie7v -.- Prompt-ednks
linkStyle 1 stroke:#a170ff
TextInput-45j33 -.- Prompt-ednks
linkStyle 2 stroke:#a170ff
Prompt-ednks -.- LanggraphReactAgent-5u7ua
linkStyle 3 stroke:#a170ff
GmailMesageComponent-m2hs5 -.- LanggraphReactAgent-5u7ua
linkStyle 4 stroke:#a170ff
googlecalendarcomponent-0ev4s -.- LanggraphReactAgent-5u7ua
linkStyle 5 stroke:#a170ff
GSheetCellComponent-5393p -.- Loop-0t41j
linkStyle 6 stroke:#a170ff
Loop-0t41j -.- ParseData-ezf3x
linkStyle 7 stroke:#a170ff
Loop-0t41j -.- ParseData-s1mj3
linkStyle 8 stroke:#a170ff
Loop-0t41j -.- googleFormsDatacomponent-lgi5n
linkStyle 9 stroke:#a170ff
Loop-0t41j -.- googleFormsDatacomponent-rr4s5
linkStyle 10 stroke:#a170ff
Loop-0t41j -.- googleFormsDatacomponent-0ebmm
linkStyle 11 stroke:#a170ff
ParseData-ezf3x -.- googleFormscomponent-pklic
linkStyle 12 stroke:#a170ff
ParseData-s1mj3 -.- googleFormscomponent-pklic
linkStyle 13 stroke:#a170ff
googleFormscomponent-pklic -.- ParseData-cxlb1
linkStyle 14 stroke:#a170ff
ParseData-cxlb1 -.- GDriveFilesComponent-pqmsv
linkStyle 15 stroke:#a170ff
GoogleGenerativeAIModel-9eat4 -.- LanggraphReactAgent-5u7ua
linkStyle 16 stroke:#a170ff
LoopEnd-tkma8 -.- Loop-0t41j
linkStyle 17 stroke:#a170ff
CreateData-8pzaf -.- LoopEnd-tkma8
linkStyle 18 stroke:#a170ff
LanggraphReactAgent-5u7ua -.- CreateData-8pzaf
linkStyle 19 stroke:#a170ff
GDriveFilesComponent-pqmsv -.- CreateData-8pzaf
linkStyle 20 stroke:#a170ff
Loop-0t41j -.- ParseData-7uply
linkStyle 21 stroke:#a170ff
Loop-0t41j -.- GSheetCellComponent-ok2v8
linkStyle 22 stroke:#a170ff
Loop-0t41j -.- GSheetCellComponent-wwd0a
linkStyle 23 stroke:#a170ff
GSheetCellComponent-wwd0a -.- CreateData-8pzaf
linkStyle 24 stroke:#a170ff
GSheetCellComponent-ok2v8 -.- CreateData-8pzaf
linkStyle 25 stroke:#a170ff
🧩 Descripción general
El flujo automatiza la gestión completa de formularios en Google Sheets y Google Forms: desde la extracción de los formularios pendientes, la creación de las preguntas y el movimiento del archivo a la carpeta correspondiente, hasta la notificación por correo y la generación de un evento de revisión en Google Calendar para la persona responsable.
⚙️ Funcionalidades principales
- Extracción de formularios pendientes a partir de una hoja de cálculo.
- Construcción automática de preguntas en el formulario según los datos de la hoja.
- Movimentación de archivos en Google Drive para organizar los formularios.
- Creación de formularios en Google Forms con título, descripción y preguntas generadas.
- Generación de eventos de calendario y envío de correos de notificación.
- Registro de datos en una hoja de “formularios creados”.
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Obtener datos para preguntas | Recuperar la lista de formularios pendientes desde una hoja de Google Sheets. | URL de la hoja, hoja actual. | Lista de filas con datos de cada formulario pendiente. |
| Loop | Iterar sobre cada fila de la lista. | Lista de datos de formularios. | Cada ítem individual (datos de un formulario). |
| Extrae Título | Obtener el título del formulario de la fila. | Datos de la fila. | Título del formulario. |
| Extraer descripción | Obtener la descripción del formulario. | Datos de la fila. | Descripción del formulario. |
| id del formulario | Extraer el identificador del formulario. | Datos de la fila. | ID del formulario. |
| Mover a carpeta de formularios | Mover el archivo del formulario a la carpeta dedicada. | ID del archivo, ID de la carpeta destino. | Confirmación de movimiento. |
| Crear pregunta 1 | Construir la primera pregunta (texto o elección). | Texto de la pregunta, tipo y opciones. | Objeto de pregunta 1. |
| Crear pregunta 2 | Construir la segunda pregunta. | Texto, tipo y opciones. | Objeto de pregunta 2. |
| Crear pregunta 3 | Construir la tercera pregunta. | Texto, tipo y opciones. | Objeto de pregunta 3. |
| pasar fila a formularios creados | Añadir la fila del formulario completado a la hoja “formularios creados”. | Datos del formulario (título, descripción, ID). | Confirmación de agregado. |
| eliminar fila de formularios pendientes | Eliminar la fila original de la hoja de formularios pendientes. | Número de fila. | Confirmación de eliminación. |
| Loop End | Concluir la iteración y pasar al siguiente ítem. | — | — |
| Crear formulario | Crear el formulario en Google Forms con título, descripción y las preguntas generadas. | Título, descripción, objeto de cada pregunta. | Datos del formulario creado (ID, URL, URI de respuesta). |
| Datos del formulario creado | Formatear los datos del formulario para el agente. | Datos del formulario. | Texto con título, ID, URL, URI de respuesta. |
| Consulta | Construir el prompt del agente con el texto del formulario y el correo de la persona responsable. | Texto del formulario, correo electrónico. | Prompt de agente. |
| Agent | Ejecutar el modelo Gemini con las herramientas de Gmail y Calendar. | Prompt, modelo, herramientas. | Respuesta del agente (mensaje), datos de agente. |
| Enviar correo | Enviar el correo de revisión al responsable. | Destinatario, asunto, cuerpo. | Confirmación de envío. |
| Crear evento | Crear el evento de revisión en Google Calendar. | Título, descripción, fecha, asistentes. | Confirmación de evento. |
| Crear Data2 | Generar registro estructurado con la respuesta del agente y los datos de la operación. | Datos de agente, campos definidos. | Registro de datos estructurado. |
🧠 Notas
- El flujo asume que las hojas de Google Sheets están debidamente configuradas con las columnas
titulo,descripción,pregunta1,pregunta2ypregunta3. - Se requiere una credencial de Google con permisos de lectura y escritura en Forms, Sheets y Drive.
- El agente utiliza el modelo Gemini 2.5‑Flash por defecto; se pueden ajustar parámetros como temperatura o tokens máximos según la necesidad.
- La herramienta de Gmail envía el correo en modo “Send Message” y la herramienta de Calendar crea eventos de “Create” con la fecha fijada al día siguiente a la ejecución.
- Los pasos de movimiento de archivos y actualización de hojas se realizan en modo batch cuando
Mapping Modeestá activado, lo que mejora el rendimiento con grandes volúmenes de formularios. - El registro final (
Crear Data2) permite persistir la información de cada ciclo de creación, facilitando auditoría y trazabilidad.