Mit n8n API und E-Mail versendete wöchentliche Workflow-Analyseberichte erstellen

Experte

Dies ist ein DevOps-Bereich Automatisierungsworkflow mit 19 Nodes. Hauptsächlich werden N8n, Set, Code, Gmail, Merge und andere Nodes verwendet. Wöchentliche Arbeitsfluss-Analyseberichte mit n8n API und E-Mail generieren und versenden

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten

Kategorie

Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "meta": {
    "instanceId": "89249a8a187ba6e01e16112a0d334a3aa01d510ad8f88d223e12cc0a2a8beb6b"
  },
  "nodes": [
    {
      "id": "9c2f922e-2f23-417f-9e26-f2f91d719728",
      "name": "Zeitplan-Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        912,
        16
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "daysInterval": 7
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "ea56ce13-5b66-439c-8241-3c8eecb06eb8",
      "name": "Get all previous executions",
      "type": "n8n-nodes-base.n8n",
      "position": [
        1824,
        112
      ],
      "parameters": {
        "filters": {},
        "options": {},
        "resource": "execution",
        "returnAll": true,
        "requestOptions": {}
      },
      "notesInFlow": false,
      "typeVersion": 1
    },
    {
      "id": "22cefb90-bce7-402d-a996-6489bda7c136",
      "name": "Get all Workflows",
      "type": "n8n-nodes-base.n8n",
      "position": [
        1424,
        -160
      ],
      "parameters": {
        "filters": {},
        "requestOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "b6395b45-7c15-4ab4-9dc4-905ddf04d54b",
      "name": "Zusammenführen",
      "type": "n8n-nodes-base.merge",
      "position": [
        2496,
        0
      ],
      "parameters": {
        "mode": "combine",
        "options": {
          "clashHandling": {
            "values": {
              "resolveClash": "preferLast"
            }
          }
        },
        "advanced": true,
        "joinMode": "enrichInput2",
        "mergeByFields": {
          "values": [
            {
              "field1": "workflowId",
              "field2": "workflowId"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "8e131881-f7ab-46cf-9ebc-f006a819d66d",
      "name": "Edit Field ID to workflowId",
      "type": "n8n-nodes-base.set",
      "position": [
        2160,
        -160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "474e54af-e79e-4d58-8c11-dbd920f0511c",
              "name": "workflowId",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "12a17b24-b3c7-4d40-8a03-3b84c932521b",
      "name": "Filter executions last week",
      "type": "n8n-nodes-base.filter",
      "position": [
        2896,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "31745f1d-793a-4674-80ab-77afede449d6",
              "operator": {
                "type": "dateTime",
                "operation": "after"
              },
              "leftValue": "={{ $json.startedAt }}",
              "rightValue": "={{ DateTime.now().minus({ days: 7 }) }}"
            }
          ]
        }
      },
      "typeVersion": 2,
      "alwaysOutputData": false
    },
    {
      "id": "2e18c677-62ae-4228-9aeb-ba665f8d05c8",
      "name": "Prepare html report",
      "type": "n8n-nodes-base.code",
      "position": [
        3376,
        0
      ],
      "parameters": {
        "jsCode": "// Calculate the date range (7 days ago to now)\nconst now = new Date();\nconst sevenDaysAgo = new Date(now.getTime() - (7 * 24 * 60 * 60 * 1000));\n\n// Group executions by workflow\nconst workflowStats = {};\n\nfor (const item of $input.all()) {\n  const workflowId = item.json.workflowId;\n  const workflowName = item.json.name;\n  const status = item.json.status;\n  const startedAt = new Date(item.json.startedAt);\n  const stoppedAt = item.json.stoppedAt ? new Date(item.json.stoppedAt) : null;\n  \n  // Calculate runtime in seconds\n  let runtime = 0;\n  if (stoppedAt) {\n    runtime = (stoppedAt - startedAt) / 1000; // Convert to seconds\n  }\n  \n  // Initialize workflow stats if not exists\n  if (!workflowStats[workflowId]) {\n    workflowStats[workflowId] = {\n      name: workflowName,\n      id: workflowId,\n      error: { count: 0, totalRuntime: 0 },\n      success: { count: 0, totalRuntime: 0 },\n      waiting: { count: 0, totalRuntime: 0 }\n    };\n  }\n  \n  // Update counts and runtime based on status\n  if (status === 'error') {\n    workflowStats[workflowId].error.count++;\n    workflowStats[workflowId].error.totalRuntime += runtime;\n  } else if (status === 'success') {\n    workflowStats[workflowId].success.count++;\n    workflowStats[workflowId].success.totalRuntime += runtime;\n  } else if (status === 'waiting') {\n    workflowStats[workflowId].waiting.count++;\n    workflowStats[workflowId].waiting.totalRuntime += runtime;\n  }\n}\n\n// Helper function to format date (without time)\nfunction formatDate(date) {\n  const options = { \n    year: 'numeric', \n    month: 'long', \n    day: 'numeric'\n  };\n  return date.toLocaleDateString('en-US', options);\n}\n\n// Helper function to format runtime\nfunction formatRuntime(seconds) {\n  if (seconds < 60) {\n    return `${seconds.toFixed(2)}s`;\n  } else if (seconds < 3600) {\n    const minutes = Math.floor(seconds / 60);\n    const remainingSeconds = (seconds % 60).toFixed(0);\n    return `${minutes}m ${remainingSeconds}s`;\n  } else {\n    const hours = Math.floor(seconds / 3600);\n    const minutes = Math.floor((seconds % 3600) / 60);\n    return `${hours}h ${minutes}m`;\n  }\n}\n\n// Format date range for header and subject (7 days ago to now)\nconst fromDate = formatDate(sevenDaysAgo);\nconst toDate = formatDate(now);\nconst dateRangeText = `${fromDate} - ${toDate}`;\nconst subject = `n8n Execution Report ${fromDate} - ${toDate}`;\n\n// Build HTML report\nlet html = `\n<!DOCTYPE html>\n<html>\n<head>\n  <style>\n    body {\n      font-family: Arial, sans-serif;\n      margin: 20px;\n      background-color: #f5f5f5;\n    }\n    .header {\n      background-color: white;\n      padding: 20px;\n      margin-bottom: 20px;\n      border-radius: 8px;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n    }\n    h1 {\n      color: #333;\n      margin: 0 0 10px 0;\n    }\n    .date-range {\n      color: #666;\n      font-size: 1.1em;\n      margin: 10px 0;\n    }\n    .summary {\n      display: flex;\n      gap: 20px;\n      margin-top: 15px;\n    }\n    .summary-item {\n      padding: 10px 15px;\n      border-radius: 4px;\n      font-weight: bold;\n    }\n    .summary-error {\n      background-color: #ffebee;\n      color: #c62828;\n    }\n    .summary-success {\n      background-color: #e8f5e9;\n      color: #2e7d32;\n    }\n    .summary-waiting {\n      background-color: #fff3e0;\n      color: #ef6c00;\n    }\n    table {\n      width: 100%;\n      border-collapse: collapse;\n      background-color: white;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n      border-radius: 8px;\n      overflow: hidden;\n    }\n    th {\n      background-color: #4CAF50;\n      color: white;\n      padding: 12px;\n      text-align: left;\n      font-weight: bold;\n    }\n    td {\n      padding: 10px 12px;\n      border-bottom: 1px solid #ddd;\n    }\n    tr:hover {\n      background-color: #f5f5f5;\n    }\n    .workflow-name {\n      font-weight: bold;\n      color: #333;\n    }\n    .workflow-id {\n      color: #666;\n      font-size: 0.9em;\n      display: block;\n      margin-top: 4px;\n    }\n    .status-cell {\n      text-align: center;\n    }\n    .status-badge {\n      display: inline-block;\n      padding: 4px 8px;\n      border-radius: 4px;\n      font-size: 0.85em;\n      font-weight: bold;\n      margin-bottom: 4px;\n    }\n    .error { background-color: #ffebee; color: #c62828; }\n    .success { background-color: #e8f5e9; color: #2e7d32; }\n    .waiting { background-color: #fff3e0; color: #ef6c00; }\n    .runtime {\n      font-size: 0.8em;\n      color: #666;\n      display: block;\n      margin-top: 2px;\n    }\n    .no-data {\n      color: #999;\n      font-style: italic;\n    }\n  </style>\n</head>\n<body>\n  <div class=\"header\">\n    <h1>n8n Execution Report</h1>\n    <div class=\"date-range\">\n      <strong>Period:</strong> ${dateRangeText}\n    </div>\n`;\n\n// Calculate totals for summary\nlet totalError = 0;\nlet totalSuccess = 0;\nlet totalWaiting = 0;\n\nfor (const workflowId in workflowStats) {\n  const stats = workflowStats[workflowId];\n  totalError += stats.error.count;\n  totalSuccess += stats.success.count;\n  totalWaiting += stats.waiting.count;\n}\n\nhtml += `\n    <div class=\"summary\">\n      <div class=\"summary-item summary-error\">\n        ✗ ${totalError} Errors\n      </div>\n      <div class=\"summary-item summary-success\">\n        ✓ ${totalSuccess} Success\n      </div>\n      <div class=\"summary-item summary-waiting\">\n        ⏳ ${totalWaiting} Waiting\n      </div>\n    </div>\n  </div>\n  \n  <table>\n    <thead>\n      <tr>\n        <th>Workflow</th>\n        <th class=\"status-cell\">Error</th>\n        <th class=\"status-cell\">Success</th>\n        <th class=\"status-cell\">Waiting</th>\n      </tr>\n    </thead>\n    <tbody>\n`;\n\n// Add rows for each workflow\nfor (const workflowId in workflowStats) {\n  const stats = workflowStats[workflowId];\n  \n  html += `\n      <tr>\n        <td>\n          <span class=\"workflow-name\">${stats.name}</span>\n          <span class=\"workflow-id\">${stats.id}</span>\n        </td>\n  `;\n  \n  // Error column\n  html += '<td class=\"status-cell\">';\n  if (stats.error.count > 0) {\n    const avgRuntime = stats.error.totalRuntime / stats.error.count;\n    html += `\n      <span class=\"status-badge error\">✗ ${stats.error.count}</span>\n      <span class=\"runtime\">Avg: ${formatRuntime(avgRuntime)}</span>\n      <span class=\"runtime\">Total: ${formatRuntime(stats.error.totalRuntime)}</span>\n    `;\n  } else {\n    html += '<span class=\"no-data\">-</span>';\n  }\n  html += '</td>';\n  \n  // Success column\n  html += '<td class=\"status-cell\">';\n  if (stats.success.count > 0) {\n    const avgRuntime = stats.success.totalRuntime / stats.success.count;\n    html += `\n      <span class=\"status-badge success\">✓ ${stats.success.count}</span>\n      <span class=\"runtime\">Avg: ${formatRuntime(avgRuntime)}</span>\n      <span class=\"runtime\">Total: ${formatRuntime(stats.success.totalRuntime)}</span>\n    `;\n  } else {\n    html += '<span class=\"no-data\">-</span>';\n  }\n  html += '</td>';\n  \n  // Waiting column\n  html += '<td class=\"status-cell\">';\n  if (stats.waiting.count > 0) {\n    const avgRuntime = stats.waiting.totalRuntime / stats.waiting.count;\n    html += `\n      <span class=\"status-badge waiting\">⏳ ${stats.waiting.count}</span>\n      <span class=\"runtime\">Avg: ${formatRuntime(avgRuntime)}</span>\n      <span class=\"runtime\">Total: ${formatRuntime(stats.waiting.totalRuntime)}</span>\n    `;\n  } else {\n    html += '<span class=\"no-data\">-</span>';\n  }\n  html += '</td>';\n  \n  html += '</tr>';\n}\n\nhtml += `\n    </tbody>\n  </table>\n</body>\n</html>\n`;\n\nreturn [{ json: { html: html, subject: subject } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "4b1154e2-76bc-4b8c-a2b6-f4338a3c3f10",
      "name": "Send a message gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3792,
        -176
      ],
      "webhookId": "c0581cd3-0b50-4ed9-844d-2e4c7af1b30a",
      "parameters": {
        "message": "={{ $json.html }}",
        "options": {},
        "subject": "={{ $json.subject }}"
      },
      "typeVersion": 2.1
    },
    {
      "id": "2946c6b2-f93f-4e31-bca1-14995de72e7d",
      "name": "Send a message outlook",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        3792,
        96
      ],
      "webhookId": "87fa1111-29bb-471d-b68f-ae35f785dc6f",
      "parameters": {
        "subject": "={{ $json.subject }}",
        "bodyContent": "={{ $json.html }}",
        "additionalFields": {
          "bodyContentType": "html"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "0faa8265-c32e-479f-873d-c603722afe12",
      "name": "Haftnotiz - Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        -160
      ],
      "parameters": {
        "color": 3,
        "width": 600,
        "height": 1020,
        "content": "## Workflow Overview for Documenting n8n Executions\n\n### Goal:\nThis workflow automates the process of documenting all previous workflow executions within n8n. By fetching data on past executions and workflows, it generates a comprehensive report that can be sent via email. This helps users keep track of their automation tasks and assess performance efficiently.\n\n### How it works:\n- 🕑 **Schedule Trigger**: Initiates the workflow at defined intervals.\n- 🔄 **Get All Previous Executions**: Fetches logs of past executions from n8n.\n- 📄 **Get All Workflows**: Retrieves current workflows set up in the environment.\n- 🔗 **Merge**: Combines data from previous executions and workflows for comprehensive analysis.\n- 🏷️ **Edit Field ID to workflowId**: Updates specific identifiers to ensure correct mapping.\n- 🔎 **Filter Executions Last Week**: Filters data to only include executions from the last week.\n- 📝 **Prepare HTML Report**: Formats the filtered data into a structured HTML report.\n- 📧 **Send a Message via Gmail & Outlook**: Delivers the report to users' email accounts for easy access.\n\n### Parameters to configure:\n- 🕑 **Schedule settings**: Specify the frequency of the trigger.\n- ✉️ **Email configurations**: Set Gmail and Outlook authentication details for message delivery.\n\n### Limitations / Gotchas:\n- 📅 Ensure the schedule does not overlap with high load times.\n- 🔒 Check permissions for accessing previous executions data.\n\n### Expected result:\nUsers receive an HTML report in their inbox summarizing workflow executions from the past week, facilitating performance tracking and documentation.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "595171e1-c6b0-48b8-bf86-86ffb155e118",
      "name": "Haftnotiz - Send a message gmail",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3664,
        -1056
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 860,
        "content": "## 📧 Send a message Gmail \n\n### Purpose\nSend an email using Gmail service with specified subject and message content.\n\n### Inputs / Outputs\n- **Inputs:** \n  - Subject: The title of the email.\n  - Message: The main body content of the email in HTML format.\n- **Outputs:** \n  - Confirmation of the email sent or error details if the process fails.\n\n### Key Fields to Configure\n- **Subject:** \n  - Set using the expression `={{ $json.subject }}`, allowing dynamic subject lines based on input data.\n- **Message:** \n  - Set using the expression `={{ $json.html }}`, allowing HTML formatted content for the email body.\n  \n### Tip / Validation\n- Ensure that Gmail OAuth2 credentials are correctly configured and authorized for sending emails.\n- Check the formatting of the HTML content to ensure proper rendering in the recipient's email client.\n- This node is currently **disabled**; enable it for functionality.\n- Remember to handle potential API errors and response codes from Gmail when sending messages."
      },
      "typeVersion": 1
    },
    {
      "id": "7a12b760-b67c-47ff-995c-6ac53194a036",
      "name": "Haftnotiz - Send a message outlook",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3680,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 1020,
        "content": "## 📩 Send a message outlook \n\n### Purpose\nSend an email through Microsoft Outlook to specified recipients, integrating with workflows for communication purposes.\n\n### Inputs / Outputs\n- **Inputs:** \n  - Recipients' email address (e.g., `wessel@bulte.org`).\n  - Email subject and body content (HTML format).\n- **Outputs:**\n  - Confirmation that the message was sent successfully.\n\n### Key Fields to Configure\n- **toRecipients:** \n  - Email addresses of the recipients. \n- **subject:** \n  - Subject line of the email. Can use dynamic values (e.g., `\"={{ $json.subject }}\"`).\n- **bodyContent:** \n  - Main content of the email, formatted as HTML (e.g., `\"={{ $json.html }}\"`).\n- **bodyContentType:** \n  - Default is set to `\"html\"` to ensure proper formatting.\n\n### Tip / Validation\n- Verify that the email address provided in `toRecipients` is valid to avoid delivery failures.\n- Ensure the subject and body contain meaningful content for better communication.\n- Check that the OAuth credentials for Microsoft Outlook are correctly configured to avoid authentication errors."
      },
      "typeVersion": 1
    },
    {
      "id": "a85a215d-c1ef-4695-b965-9d3a56cfd9b1",
      "name": "Haftnotiz - Prepare html report",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3248,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 1020,
        "content": "## 📁 Prepare HTML Report \n\n### Purpose\nGenerate an HTML report summarizing workflow execution statistics over the past 7 days, including counts of errors, successes, and waiting workflows.\n\n### Inputs / Outputs\n- **Inputs:** \n  - Data from previous nodes containing execution records with fields like `workflowId`, `name`, `status`, `startedAt`, and `stoppedAt`.\n- **Outputs:** \n  - An HTML string containing the formatted report and an email subject line for reference.\n\n### Key Operations\n- **Date Range Calculation:**\n  - Retrieves execution data from the last 7 days.\n  \n- **Statistics Grouping:**\n  - Aggregates execution counts and total runtimes by workflow status (error, success, waiting).\n\n- **HTML Report Construction:**\n  - Builds a styled HTML document that visually represents workflow execution statistics, including a summary and detailed table format."
      },
      "typeVersion": 1
    },
    {
      "id": "d134b4f0-1fbc-404c-9edc-9f2884824226",
      "name": "Sticky Note - Filter executions last week",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2848,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 1020,
        "content": "## Filter Executions Last Week\n\n### Purpose\nFilter out executions that were started in the last week, allowing for targeted analysis and documentation of recent workflow activities.\n\n### Inputs / Outputs\n- **Inputs:** \n  - Workflow execution data including start date (`startedAt`).\n- **Outputs:** \n  - Filtered data of executions that occurred within the past week.\n\n### Key Fields to Configure\n- **Conditions:** \n  - Uses a single condition to check if the `startedAt` date is after the date that was exactly 7 days prior to the current date.\n  - **Operator:** \n    - Type: `dateTime`\n    - Operation: `after`\n  - **Left Value:** \n    - `={{ $json.startedAt }}`\n  - **Right Value:**\n    - `={{ DateTime.now().minus({ days: 7 }) }}`\n\n### Tip / Validation\n- Ensure the `startedAt` date formatted correctly (ISO 8601 is recommended) for accurate filtering.\n- Remember that the comparison is case-sensitive due to the option `caseSensitive: true`. Adjust if necessary for your context.\n- This node does not always output data; ensure downstream nodes handle the absence of expected data gracefully."
      },
      "typeVersion": 1
    },
    {
      "id": "d6d8301c-b2f7-4e8b-b3ed-f32edd84c92b",
      "name": "Sticky Note - Zusammenführen",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2448,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 1020,
        "content": "## Merge \n\n### Purpose\nCombine two data sets based on specified fields to enrich the input with additional information.\n\n### Inputs / Outputs\n- **Inputs:** \n  - Two data sets to be merged, identified by the `workflowId` field.\n- **Outputs:** \n  - A single data set that merges the attributes of both inputs according to the defined merging strategy.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "95f22f9d-86fa-4cc3-aeba-38d90320ca29",
      "name": "Haftnotiz - Edit Field ID to workflowId",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 1020,
        "content": "## Edit Field ID to workflowId \n\n### Purpose\nThis node updates the field ID in the provided JSON data to a new key named `workflowId`, streamlining the data structure for easier identification and reference.\n\n### Inputs / Outputs\n- **Inputs:** \n  - JSON data containing an `id` field to be transformed into `workflowId`.\n- **Outputs:** \n  - Modified JSON data with the `workflowId` field instead of the original `id`.\n\n### Key Fields to Configure\n- **Assignments:**\n  - **ID:** Unique identifier for the newly created field.\n  - **Name:** Set to `workflowId` to reflect the new key.\n  - **Value:** Expression `={{ $json.id }}` to extract the original `id` value.\n\n### Tip / Validation\n- Ensure the original JSON contains the `id` field for successful transformation; otherwise, the output may not reflect the desired structure.\n- Use the `includeOtherFields` option to retain additional fields during the transformation process."
      },
      "typeVersion": 1
    },
    {
      "id": "9be4bac7-d68a-47d8-87c5-99df34830f13",
      "name": "Haftnotiz - Get all previous executions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 1020,
        "content": "## Get All Previous Executions \n\n### Purpose\nRetrieve all previous executions of a specified resource, enabling users to track and document the history of actions performed in workflows.\n\n### Inputs / Outputs\n- **Inputs:** \n  - None required; the node automatically fetches all previous executions.\n- **Outputs:** \n  - A list of previous execution records, which can be used for analysis or logging purposes.\n\n### Key Fields to Configure\n- **Resource:**\n  - Set to `execution` to specify that the node is fetching execution records.\n- **Return All:**\n  - Set to `true` to ensure all previous executions are retrieved.\n- **Filters:** \n  - Can be customized to narrow down results based on specific criteria (currently empty).\n- **Options & Request Options:** \n  - Additional configurations can be added if necessary (currently empty).\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9946f889-e6c4-46e0-bd6e-b5fe41a6e991",
      "name": "Haftnotiz - Get all Workflows",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1264,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 1020,
        "content": "## Get all Workflows \n\n### Purpose\nFetch all workflows stored in n8n to facilitate documentation and management of automation processes.\n\n### Inputs / Outputs\n- **Inputs:** \n  - None (The node retrieves all workflows without needing specific parameters).\n- **Outputs:** \n  - A list of all available workflows, including their metadata (IDs, names, etc.).\n\n### Key Fields to Configure\n- **Filters:** \n  - Currently configured as empty (no specific filters are set).\n- **Request Options:** \n  - Also currently empty, allowing for default request behavior.\n\n### Tip / Validation\n- Make sure you have the appropriate permissions set in your n8n account to access workflow data.\n- This node may return a large dataset if numerous workflows exist, so consider handling the response efficiently to avoid performance issues."
      },
      "typeVersion": 1
    },
    {
      "id": "27a53d26-b49c-41f9-9cde-49c81e3a5454",
      "name": "Sticky Note - Zeitplan-Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        864,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 1020,
        "content": "## 🗓️ Schedule Trigger \n\n### Purpose\nThis node initiates a scheduled trigger, allowing workflows to run at specified intervals."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "12a17b24-b3c7-4d40-8a03-3b84c932521b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "ea56ce13-5b66-439c-8241-3c8eecb06eb8",
            "type": "main",
            "index": 0
          },
          {
            "node": "22cefb90-bce7-402d-a996-6489bda7c136",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "22cefb90-bce7-402d-a996-6489bda7c136": {
      "main": [
        [
          {
            "node": "8e131881-f7ab-46cf-9ebc-f006a819d66d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2e18c677-62ae-4228-9aeb-ba665f8d05c8": {
      "main": [
        [
          {
            "node": "2946c6b2-f93f-4e31-bca1-14995de72e7d",
            "type": "main",
            "index": 0
          },
          {
            "node": "4b1154e2-76bc-4b8c-a2b6-f4338a3c3f10",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8e131881-f7ab-46cf-9ebc-f006a819d66d": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "12a17b24-b3c7-4d40-8a03-3b84c932521b": {
      "main": [
        [
          {
            "node": "2e18c677-62ae-4228-9aeb-ba665f8d05c8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ea56ce13-5b66-439c-8241-3c8eecb06eb8": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - DevOps

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes19
Kategorie1
Node-Typen9
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
Wessel Bulte

Wessel Bulte

@uuessel

Cybersecurity and automation consultant specializing in n8n workflows for GDPR compliance, process optimization, and business integration. Helping teams streamline operations with secure, scalable automation solutions.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34