{
  "name": "n8n Security Advisory Triage",
  "nodes": [
    {
      "parameters": {
        "content": "## 🛡️ N8N SECURITY ADVISORY TRIAGE\n**What it does:** Every morning the workflow pulls the latest n8n security advisories from the GitHub Advisory Database → dedupes against your Google Sheet → an AI agent checks whether YOUR n8n version falls in the vulnerable range → sends urgent Telegram alerts for high/critical CVEs affecting you → posts a daily digest.\n\n**Context:** In October 2026 GitHub published the largest single batch of n8n security advisories to date — 10 High + 4 Medium GHSA items, fixed in n8n 2.41.4 / 2.42.1. Self-hosters who miss these stay exposed. This workflow makes sure you know within hours whether you're affected.\n\n**You'll need:**\n- OpenAI API key (platform.openai.com)\n- Google Sheets OAuth2 credential (n8n Credentials → Google Sheets OAuth2)\n- Telegram bot token + your chat ID (@BotFather → /newbot; @userinfobot for your chat ID)\n- Your n8n version (in n8n: Settings → About)\n\n**Status flow in Sheets:** `NEW` → `ASSESSED` → `NOTIFIED_URGENT`",
        "height": 300,
        "width": 4840,
        "color": 5
      },
      "id": "805aed0d-1f7d-4122-aa8b-663dae580343",
      "name": "STICKY — Title",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -240,
        -160
      ]
    },
    {
      "parameters": {
        "content": "## STEP 1 — Daily trigger + fetch GitHub advisories\nDaily 7 AM schedule trigger → pull the latest n8n advisories from the GitHub Advisory Database (npm ecosystem). No auth needed.",
        "height": 420,
        "width": 1300,
        "color": 4
      },
      "id": "1518b781-b14c-4a2f-9e7f-efbb386befce",
      "name": "STICKY — STEP 1",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -240,
        180
      ]
    },
    {
      "parameters": {
        "content": "## STEP 2 — Dedupe vs seen IDs + log NEW\nCompare fetched advisories against the GHSA IDs already in your sheet → keep only fresh ones → append rows with status `NEW`. If nothing is new, you get a short all-clear message.",
        "height": 420,
        "width": 860,
        "color": 4
      },
      "id": "6f156b9e-e991-428a-80e7-06d30d5d8fb8",
      "name": "STICKY — STEP 2",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        1060,
        180
      ]
    },
    {
      "parameters": {
        "content": "## STEP 3 — AI impact assessment vs YOUR version\nAI Agent compares each advisory's vulnerable version range against your n8n version with a Structured Output Parser (severity, is_my_version_affected, patch_action) → sheet flips to `ASSESSED`.",
        "height": 420,
        "width": 960,
        "color": 4
      },
      "id": "5a10af8b-c873-415d-b0e5-06f6fdd371aa",
      "name": "STICKY — STEP 3",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        1920,
        180
      ]
    },
    {
      "parameters": {
        "content": "## STEP 4 — Urgent alerts + daily digest\nAdvisories that affect your version AND are high/critical severity → instant 🚨 Telegram alert, sheet flips to `NOTIFIED_URGENT`. Everything merges into one daily digest on Telegram.",
        "height": 420,
        "width": 1720,
        "color": 4
      },
      "id": "50298826-c5e9-4a9e-9ebe-a3d22aa6ee07",
      "name": "STICKY — STEP 4",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        2880,
        180
      ]
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 24,
              "triggerAtHour": 7,
              "triggerAtMinute": 0
            }
          ]
        }
      },
      "id": "c13ae378-0fdd-4b99-87ac-0c189ecfcfcc",
      "name": "Daily 7AM Advisory Check",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        0,
        300
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "036c7ed7-e712-4c43-9402-d23a9010a355",
              "name": "n8n_version",
              "type": "string",
              "value": "PASTE_YOUR_N8N_VERSION (e.g. 2.41.6 — find it in n8n under Settings → About)"
            },
            {
              "id": "e44b0573-27dc-4a3d-b478-78f922d7e766",
              "name": "github_token",
              "type": "string",
              "value": "PASTE_YOUR_GITHUB_TOKEN_OR_EMPTY (optional; only add if you hit rate limits)"
            }
          ]
        },
        "options": {}
      },
      "id": "2089a552-2890-4b0a-8236-e686d3289f42",
      "name": "CONFIG — Instance",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "b464f8fc-4db0-4adc-91a1-f203f7e355ca",
              "name": "spreadsheet_id",
              "type": "string",
              "value": "PASTE_YOUR_SPREADSHEET_ID"
            },
            {
              "id": "fc78b8e7-6c45-469b-98c6-3b4e2283e9e8",
              "name": "sheet_name",
              "type": "string",
              "value": "Advisories"
            }
          ]
        },
        "options": {}
      },
      "id": "83fda169-ab1a-4323-a5d1-71f598921d30",
      "name": "CONFIG — Google Sheets",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        480,
        300
      ]
    },
    {
      "parameters": {
        "operation": "read",
        "resource": "sheetWithinDocument",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Advisories"
        },
        "options": {}
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": "Google Sheets API"
        }
      },
      "id": "e43ce194-5e85-4549-8989-79a11e3c281a",
      "name": "Read Seen Advisory IDs",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        720,
        300
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "https://api.github.com/advisories?ecosystem=npm&affects=n8n",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/vnd.github+json"
            },
            {
              "name": "X-GitHub-Api-Version",
              "value": "2022-11-28"
            }
          ]
        },
        "options": {}
      },
      "id": "8333e8eb-5425-45b0-a4b1-adae975c67ab",
      "name": "Fetch n8n Advisories",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        960,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "// Keep only advisories whose GHSA ID is not already in the sheet\nconst seen = new Set(\n  $('Read Seen Advisory IDs').all().map(i => (i.json['GHSA ID'] || '').trim()).filter(Boolean)\n);\nconst raw = $('Fetch n8n Advisories').first().json;\nconst advisories = Array.isArray(raw) ? raw : [raw];\nconst fresh = advisories.filter(a => a && a.ghsa_id && !seen.has(a.ghsa_id.trim()));\nreturn fresh.map(a => ({ json: {\n  ghsa_id: a.ghsa_id,\n  summary: a.summary || '',\n  severity: a.severity || '',\n  published_at: (a.published_at || '').slice(0, 10),\n  html_url: a.html_url || '',\n  vulnerable_version_range: a.vulnerable_version_range\n    || (a.vulnerabilities && a.vulnerabilities[0] && a.vulnerabilities[0].vulnerable_version_range)\n    || '',\n}}));",
        "mode": "runOnceForAllItems"
      },
      "id": "a3bddb92-0eaf-4ce3-80a1-f25408f711eb",
      "name": "Filter New Advisories",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1200,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "combinator": "and",
          "conditions": [
            {
              "id": "if-new",
              "leftValue": "={{ $input.all().length }}",
              "rightValue": "0",
              "operator": {
                "type": "number",
                "operation": "largerThan",
                "name": "filter.operator.number.largerThan"
              }
            }
          ],
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          }
        },
        "options": {}
      },
      "id": "c135c7ea-617f-46a0-977f-349acfd0ccf9",
      "name": "IF — New Advisories?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        1440,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{ $('CONFIG — Notifications').first().json.telegram_chat_id }}",
        "text": "✅ *n8n Security Watch* — no new advisories today.\nYour version {{ $('CONFIG — Instance').first().json.n8n_version }} has nothing new to patch against.",
        "additionalFields": {
          "parse_mode": "Markdown"
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "",
          "name": "Telegram Bot API"
        }
      },
      "id": "0a636564-1028-4e56-bf97-7e977e976ed9",
      "name": "Telegram — All Clear",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        1680,
        540
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "resource": "sheetWithinDocument",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Advisories"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "schema": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false,
          "value": {
            "GHSA ID": "={{ $json.ghsa_id }}",
            "Published": "={{ $json.published_at }}",
            "Severity": "={{ $json.severity }}",
            "Affected Versions": "={{ $json.vulnerable_version_range }}",
            "My Version Affected": "",
            "Patch Action": "",
            "Status": "NEW"
          }
        },
        "options": {}
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": "Google Sheets API"
        }
      },
      "id": "b244f558-b45a-4ab8-a16a-086172087958",
      "name": "Log Advisory — NEW",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1680,
        300
      ]
    },
    {
      "parameters": {
        "options": {
          "systemMessage": "=You are a security analyst specializing in self-hosted n8n. Decide whether the security advisory below affects the user's n8n instance.\n\nMy n8n version is {{ $('CONFIG — Instance').first().json.n8n_version }}. Compare it carefully against the vulnerable version range (semver ranges like '>= 1.0.0, < 2.41.4'). If you are unsure whether the version falls inside the range, err on the side of affected = true.\n\nOutput ONLY via the structured output parser."
        },
        "text": "=GHSA ID: {{ $json.ghsa_id }}\nSeverity: {{ $json.severity }}\nPublished: {{ $json.published_at }}\nVulnerable version range: {{ $json.vulnerable_version_range }}\n\nSummary:\n{{ $json.summary }}\n\nAdvisory URL: {{ $json.html_url }}"
      },
      "id": "46874828-5782-4ffa-a69c-a3d089c4b554",
      "name": "AI Agent — Assess Impact on My Version",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        1920,
        300
      ]
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "",
          "name": "OpenAI API"
        }
      },
      "id": "a4cc40b6-6469-4e0d-867d-255c51a2dd49",
      "name": "OpenAI Chat Model — Assessment",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        1920,
        560
      ]
    },
    {
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"ghsa_id\": \"GHSA-xxxx-xxxx-xxxx\",\n  \"severity\": \"low / moderate / high / critical\",\n  \"affected_versions\": \"vulnerable version range string\",\n  \"is_my_version_affected\": false,\n  \"patch_action\": \"e.g. upgrade to 2.41.4 or later\",\n  \"one_line_summary\": \"plain-English description of the risk\"\n}"
      },
      "id": "1a447dc3-97c9-420a-8ff0-0569cd391792",
      "name": "Structured Output Parser — Impact",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.2,
      "position": [
        2160,
        560
      ]
    },
    {
      "parameters": {
        "jsCode": "// Flag advisories that affect my version AND are high/critical severity\nconst j = $input.item.json;\nconst o = j.output || {};\nconst sev = String(o.severity || '').toLowerCase();\nconst urgent = o.is_my_version_affected === true && ['high', 'critical'].includes(sev);\nreturn [{ json: { ...j, urgent } }];",
        "mode": "runOnceForEachItem"
      },
      "id": "a3fc49ec-7091-4d6f-80c9-7aef49e2b023",
      "name": "Compute Urgency",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        2160,
        300
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "resource": "sheetWithinDocument",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Advisories"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "GHSA ID"
          ],
          "schema": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false,
          "value": {
            "GHSA ID": "={{ $json.ghsa_id }}",
            "Severity": "={{ $json.output.severity }}",
            "Affected Versions": "={{ $json.output.affected_versions }}",
            "My Version Affected": "={{ $json.output.is_my_version_affected ? 'YES' : 'NO' }}",
            "Patch Action": "={{ $json.output.patch_action }}",
            "Status": "ASSESSED"
          }
        },
        "options": {}
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": "Google Sheets API"
        }
      },
      "id": "d3b566f7-a81a-45ed-b004-120263f45afb",
      "name": "Update Sheet — ASSESSED",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        2400,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "combinator": "and",
          "conditions": [
            {
              "id": "if-urgent",
              "leftValue": "={{ $json.urgent }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "name": "filter.operator.boolean.true",
                "singleValue": true
              }
            }
          ],
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          }
        },
        "options": {}
      },
      "id": "f6136bd0-04f4-4831-bfea-729835035981",
      "name": "IF — Urgent?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        2640,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{ $('CONFIG — Notifications').first().json.telegram_chat_id }}",
        "text": "=🚨 *n8n SECURITY ALERT — {{ $json.output.severity }}*\n\n*{{ $json.ghsa_id }}* affects YOUR n8n version ({{ $('CONFIG — Instance').first().json.n8n_version }})\n{{ $json.output.one_line_summary }}\n\n🔧 Patch action: {{ $json.output.patch_action }}\n🔗 {{ $json.html_url }}",
        "additionalFields": {
          "parse_mode": "Markdown"
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "",
          "name": "Telegram Bot API"
        }
      },
      "id": "6fa4ee7d-a8ed-4f39-b2a7-4fbfac557dcb",
      "name": "Telegram — URGENT Security Alert",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        2880,
        140
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "resource": "sheetWithinDocument",
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Advisories"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "GHSA ID"
          ],
          "schema": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false,
          "value": {
            "GHSA ID": "={{ $json.ghsa_id }}",
            "Status": "NOTIFIED_URGENT"
          }
        },
        "options": {}
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": "Google Sheets API"
        }
      },
      "id": "80c502e7-785d-47ae-8caa-15a0aeea7bd4",
      "name": "Update Sheet — NOTIFIED_URGENT",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        3120,
        140
      ]
    },
    {
      "parameters": {
        "mode": "append",
        "options": {}
      },
      "id": "f739dcc7-24c6-4f8a-9f68-554d616be586",
      "name": "Merge — Combine Branches",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        3360,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "// One Telegram digest: how many new advisories, how many are urgent\nconst items = $input.all().map(i => i.json);\nconst urgentItems = items.filter(i => i.urgent === true);\nconst date = new Date().toISOString().slice(0, 10);\nlet lines = [`🛡️ *n8n Security Digest — ${date}*`, ``, `📋 ${items.length} new advisories triaged`];\nif (urgentItems.length) {\n  lines.push(`🚨 ${urgentItems.length} URGENT (affect your version, high/critical):`, ``);\n  for (const u of urgentItems.slice(0, 10)) {\n    const o = u.output || {};\n    lines.push(`• *${u.ghsa_id}* (${o.severity}) — ${o.one_line_summary || ''} [details](${u.html_url})`);\n  }\n} else {\n  lines.push(`✅ None affect your version. Sheet is up to date.`);\n}\nreturn [{ json: { digest: lines.join('\\n'), new_count: items.length, urgent_count: urgentItems.length } }];",
        "mode": "runOnceForAllItems"
      },
      "id": "31d0cc8a-a402-4667-aaa9-02ddd690c38b",
      "name": "Build Daily Digest",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        3600,
        300
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "4b4bac11-b421-4085-a96f-88e5d087a722",
              "name": "telegram_chat_id",
              "type": "string",
              "value": "PASTE_YOUR_TELEGRAM_CHAT_ID"
            }
          ]
        },
        "options": {}
      },
      "id": "f9156019-6dfd-4aef-bde7-b97cda9dfa6b",
      "name": "CONFIG — Notifications",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        3840,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{ $('CONFIG — Notifications').first().json.telegram_chat_id }}",
        "text": "={{ $json.digest }}",
        "additionalFields": {
          "parse_mode": "Markdown"
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "",
          "name": "Telegram Bot API"
        }
      },
      "id": "1f590187-ae11-4132-a9dd-16db12da413f",
      "name": "Telegram — Send Digest",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        4080,
        300
      ]
    }
  ],
  "connections": {
    "Daily 7AM Advisory Check": {
      "main": [
        [
          {
            "node": "CONFIG — Instance",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CONFIG — Instance": {
      "main": [
        [
          {
            "node": "CONFIG — Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CONFIG — Google Sheets": {
      "main": [
        [
          {
            "node": "Read Seen Advisory IDs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Seen Advisory IDs": {
      "main": [
        [
          {
            "node": "Fetch n8n Advisories",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch n8n Advisories": {
      "main": [
        [
          {
            "node": "Filter New Advisories",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter New Advisories": {
      "main": [
        [
          {
            "node": "IF — New Advisories?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF — New Advisories?": {
      "main": [
        [
          {
            "node": "Log Advisory — NEW",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Telegram — All Clear",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Log Advisory — NEW": {
      "main": [
        [
          {
            "node": "AI Agent — Assess Impact on My Version",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent — Assess Impact on My Version": {
      "main": [
        [
          {
            "node": "Compute Urgency",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compute Urgency": {
      "main": [
        [
          {
            "node": "Update Sheet — ASSESSED",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheet — ASSESSED": {
      "main": [
        [
          {
            "node": "IF — Urgent?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF — Urgent?": {
      "main": [
        [
          {
            "node": "Telegram — URGENT Security Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Merge — Combine Branches",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Telegram — URGENT Security Alert": {
      "main": [
        [
          {
            "node": "Update Sheet — NOTIFIED_URGENT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheet — NOTIFIED_URGENT": {
      "main": [
        [
          {
            "node": "Merge — Combine Branches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge — Combine Branches": {
      "main": [
        [
          {
            "node": "Build Daily Digest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Daily Digest": {
      "main": [
        [
          {
            "node": "CONFIG — Notifications",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CONFIG — Notifications": {
      "main": [
        [
          {
            "node": "Telegram — Send Digest",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model — Assessment": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent — Assess Impact on My Version",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser — Impact": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent — Assess Impact on My Version",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": false,
    "instanceId": ""
  }
}