Recolector de informes de cumplimiento

Intermedio

Este es unFile Management, Multimodal AIflujo de automatización del dominio deautomatización que contiene 8 nodos.Utiliza principalmente nodos como Set, Merge, MySql, Function, GoogleDrive. 基于 Google 表单 → Drive + MySQL de合规informe收集器

Requisitos previos
  • Información de conexión de la base de datos MySQL
  • Credenciales de API de Google Drive
  • Credenciales de API de Google Sheets
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "Un9KXLeARM23XTIQ",
  "meta": {
    "instanceId": "14e4c77104722ab186539dfea5182e419aecc83d85963fe13f6de862c875ebfa",
    "templateCredsSetupCompleted": true
  },
  "name": "Compliance Report Collector",
  "tags": [],
  "nodes": [
    {
      "id": "c1d13027-17a3-485a-b43b-e7fece0612c6",
      "name": "Activador de formulario de Sheets Google",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -440,
        60
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "url",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1U4MfFW06VMW0gW3fAkGFDvDnomb1j_0E-0lbEkPlli0",
          "cachedResultUrl": "",
          "cachedResultName": "compliance_report_sheet(Responses)"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "id": "WF8FtUtPeBSlrlAC",
          "name": "Google Sheets Trigger account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "038c1dae-f38c-4a98-ae1d-5376d81e3332",
      "name": "Registrar en MySQL",
      "type": "n8n-nodes-base.mySql",
      "position": [
        660,
        60
      ],
      "parameters": {
        "table": {
          "__rl": true,
          "mode": "name",
          "value": "report_logs"
        },
        "options": {}
      },
      "credentials": {
        "mySql": {
          "id": "YqKBp66liP3vXdbi",
          "name": "MySQL account 4"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d644afd6-ad2e-4931-ba17-42c1d635c3fc",
      "name": "Renombrar Campos",
      "type": "n8n-nodes-base.set",
      "position": [
        440,
        60
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "=\n{\n  \"reporter\": \"{{$json.reporter}}\",\n  \"category\": \"{{$json.category}}\",\n  \"timestamp\": \"{{$json.timestamp}}\",\n  \"folder_id\": \"{{$json.folder_id}}\",\n  \"file_name\": \"{{$binary.data.fileName}}\",\n  \"mime_type\": \"{{$binary.data.mimeType}}\",\n  \"email\": \"{{$json.email}}\",\n  \"description\": \"{{$json.description}}\"\n}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "ba6a2d4c-f548-446f-ab24-20c518e06f86",
      "name": "Extraer datos de googlesheet",
      "type": "n8n-nodes-base.function",
      "notes": "Extract metadata for logging",
      "position": [
        -220,
        60
      ],
      "parameters": {
        "functionCode": "// Input: rows from Google Sheets Trigger\nconst rows = $input.all();\nconst out = [];\n\nfor (const item of rows) {\n  const j = item.json;\n\n  const url = j['Upload Report File'] || '';\n  // supports both ?id=... and /d/.../view URLs\n  const m =\n    url.match(/[?&]id=([^&]+)/) ||\n    url.match(/\\/d\\/([a-zA-Z0-9_-]+)/);\n\n  out.push({\n    json: {\n      reporter: j['Reporter Name'] || null,\n      category: j['Report Category'] || null,\n      timestamp: new Date(j['Timestamp']).toISOString(),\n      folder_id: m ? m[1] : null,\n      email: j['Email Address'] || null,\n      description: j['Description'] || null,\n    },\n  });\n}\n\nreturn out;\n"
      },
      "typeVersion": 1
    },
    {
      "id": "efa9cce4-db44-4296-8c76-9bf12ca68d52",
      "name": "Obtener metadatos de archivo subido",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        0,
        60
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.folder_id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "dkusrOXTExpMxEAe",
          "name": "Google Drive account 7"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "6abc9f56-0b24-4e47-840f-72ac8421d90c",
      "name": "Combinar datos de sheet y archivo",
      "type": "n8n-nodes-base.merge",
      "position": [
        220,
        60
      ],
      "parameters": {
        "mode": "combine",
        "options": {
          "includeUnpaired": true
        },
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2,
      "alwaysOutputData": true
    },
    {
      "id": "779477a4-ecac-4cd5-8b5f-e385da6c64fc",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -540,
        -100
      ],
      "parameters": {
        "width": 1400,
        "height": 420,
        "content": "## Compliance Report Collector (Google Form → Drive + MySQL)\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "071841f7-f553-4637-806a-0db0d27e8de4",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -540,
        380
      ],
      "parameters": {
        "width": 1420,
        "height": 1240,
        "content": "## Description\n\n### 1. Google Sheets form Trigger\n- Watches the linked Google Sheet for new rows (submitted via Google Form). When a new row is added, it triggers the workflow and passes the form data to the next node.\n\n---\n\n### 2. Extract googlesheet data\n- Parses the Google Sheet row data.  \n- Extracts the Google Drive file ID from the **\"Upload Report File\"** URL.  \n- Keeps key form fields:\n `reporter`\n `category`\n `timestamp`\n `email`\n `description`\n `folder_id`\n\n---\n\n### 3. Get file uploaded metadata\n- Uses the Google Drive node to fetch metadata for the uploaded file by its `folder_id`.  \n- Downloads the binary temporarily so we can extract:\n `fileName`\n `mimeType`\n\n---\n\n### 4. Merge sheet & file data\nCombines:\n- Google Sheet form data\n- Google Drive file metadata  \ninto a single JSON object per submission.  \nEnsures both sets of information are available for insertion into MySQL.\n\n---\n\n### 5. Rename Fields\nNormalizes and renames merged fields to match MySQL column names:\n- `fileName` → `file_name`\n- `mimeType` → `mime_type`\n\nRemoves unnecessary fields so only required columns remain.\n\n---\n\n### 6. Log to MySQL\nInserts the cleaned and normalized data into the `report_logs` table in MySQL, storing:\n- Form submission details\n- Uploaded file’s name\n- MIME type\n\n---\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7f30bbf3-aa3d-462b-b69e-7bf403e3c880",
  "connections": {
    "d644afd6-ad2e-4931-ba17-42c1d635c3fc": {
      "main": [
        [
          {
            "node": "038c1dae-f38c-4a98-ae1d-5376d81e3332",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6abc9f56-0b24-4e47-840f-72ac8421d90c": {
      "main": [
        [
          {
            "node": "d644afd6-ad2e-4931-ba17-42c1d635c3fc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ba6a2d4c-f548-446f-ab24-20c518e06f86": {
      "main": [
        [
          {
            "node": "efa9cce4-db44-4296-8c76-9bf12ca68d52",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "efa9cce4-db44-4296-8c76-9bf12ca68d52": {
      "main": [
        [
          {
            "node": "6abc9f56-0b24-4e47-840f-72ac8421d90c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c1d13027-17a3-485a-b43b-e7fece0612c6": {
      "main": [
        [
          {
            "node": "ba6a2d4c-f548-446f-ab24-20c518e06f86",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Gestión de archivos, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Flujos de trabajo relacionados recomendados

💥 Automatización de la creación y publicación de videos de IA multiplataforma con Veo 3.1 y Blotato - Video
Usar GPT-4, Veo 3.1 y Blotato para automatizar la creación de videos de IA y su publicación en múltiples plataformas
Set
Code
Merge
+
Set
Code
Merge
25 NodosDr. Firas
Creación de contenido
Sistema RAG de multi-agente para una escritura más inteligente de BRD (Documento de requisitos del negocio)
Usar GPT multiagente y Google Workspace para generar documentos de requisitos de negocio
Set
Code
Merge
+
Set
Code
Merge
37 NodosTrung Tran
RAG de IA
Descargar automáticamente memes de Reddit a Google Drive, con detección de duplicados y notificación de Telegram
Descargar automáticamente memes de Reddit a Google Drive, con detección de duplicados y recordatorios de Telegram
If
Set
Code
+
If
Set
Code
20 NodosVitorio Magalhães
Gestión de archivos
Verificación de vencimiento y recordatorios de actualización para publicaciones de empleos desde Google Sheets usando HTTP Last-Modified
Automatización de recordatorios de publicación de empleos vencidos con Google Sheets, verificaciones HTTP y Gmail
If
Set
Code
+
If
Set
Code
19 NodosWeblineIndia
Recursos Humanos
Automatización de carga de video → Miniatura automática → Google Drive
Automatizar la subida de videos y generación de miniaturas con FFmpeg y Google Drive
If
Webhook
Google Drive
+
If
Webhook
Google Drive
9 NodosWeblineIndia
Creación de contenido
Captura y almacenamiento de capturas de pantalla del sitio web desde Google Sheets con Dumpling AI
Captura de capturas de pantalla de sitios web desde Google Sheets con Dumpling AI y almacenamiento en la nube
Google Drive
Http Request
Google Sheets Trigger
+
Google Drive
Http Request
Google Sheets Trigger
5 NodosYang
Gestión de archivos
Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos8
Categoría2
Tipos de nodos7
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
WeblineIndia

WeblineIndia

@weblineindia

A Leading Software Engineering, Consulting & Outsourcing Services Company in USA & India serving Clients Globally since 1999.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34