{
  "name": "Discover & analyze n8n workflows from GitHub with OpenAI and Google Sheets",
  "nodes": [
    {
      "id": "422d9d8c-60a6-4b05-b608-7180436c5085",
      "name": "Create a database page",
      "type": "n8n-nodes-base.notion",
      "position": [
        576,
        224
      ]
    },
    {
      "id": "7e30dccc-90f1-4d1f-beaf-53d80bff07b0",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1792,
        128
      ]
    },
    {
      "id": "3816aa60-8b5f-4bfb-8bf1-c6b409cc3cc5",
      "name": "Config1",
      "type": "n8n-nodes-base.set",
      "position": [
        -1568,
        128
      ]
    },
    {
      "id": "4a1a3eb6-1152-47c2-89ea-b803a5f8f4a0",
      "name": "GitHub Search1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1344,
        128
      ]
    },
    {
      "id": "427ec2cf-36fe-4ec7-b29b-1a3714b1b2f3",
      "name": "Split Results1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1120,
        128
      ]
    },
    {
      "id": "2f4c107f-bdbe-4dfd-8749-b03cf29cfca2",
      "name": "Fetch Workflow JSON1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -896,
        128
      ]
    },
    {
      "id": "9df2b0ad-e26c-4658-8241-94993149b904",
      "name": "Process Workflows1",
      "type": "n8n-nodes-base.code",
      "position": [
        -672,
        128
      ]
    },
    {
      "id": "ac6d2def-02c9-47e9-b5fb-a3a2cc7e597a",
      "name": "Aggregate All1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -448,
        128
      ]
    },
    {
      "id": "341aae78-be07-49e1-915c-f00aab142c06",
      "name": "Prepare AI Analysis1",
      "type": "n8n-nodes-base.code",
      "position": [
        -224,
        128
      ]
    },
    {
      "id": "9782df9b-1a17-4630-aa12-74cedb62fb1f",
      "name": "AI Analysis1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        0,
        128
      ]
    },
    {
      "id": "24386018-3b8b-4ac6-a80c-f3cee3c68356",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        16,
        352
      ]
    },
    {
      "id": "24ba95a3-73f5-44a1-82d4-7a4965b16a1d",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        144,
        352
      ]
    },
    {
      "id": "a8305a37-6dd2-4c74-9a0a-9a2a812cb237",
      "name": "Merge AI Results1",
      "type": "n8n-nodes-base.code",
      "position": [
        352,
        128
      ]
    },
    {
      "id": "90b1957e-816a-451a-a0ea-4b15de25dae9",
      "name": "Save to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        576,
        32
      ]
    },
    {
      "id": "797c78a7-d273-430b-9a36-9b3305a783b4",
      "name": "Sticky: Overview (yellow)",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2480,
        -496
      ],
      "parameters": {
        "width": 560,
        "height": 456,
        "content": "## Overview – GitHub n8n Workflow Analyzer\n\n**What this workflow does**  \n- Finds public n8n workflows on GitHub  \n- Analyzes them with AI to add a short description, use case, and difficulty  \n- Save"
      }
    },
    {
      "id": "68335719-9bc1-4a17-8704-e8f43747d310",
      "name": "Sticky: Step 1 — Fetch & Parse",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1696,
        -304
      ],
      "parameters": {
        "width": 672,
        "height": 304,
        "content": "## STEP 1 – Fetch & Parse Workflows\n\n**What happens here**  \n- `Schedule Trigger` runs this on a cadence (or via manual execute).  \n- `Config1` holds the search query, result limit, and spreadsheet se"
      }
    },
    {
      "id": "867f6b02-8731-4d0f-a1e9-abb12a38be41",
      "name": "Sticky: Step 2 — AI Analysis",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -752,
        -304
      ],
      "parameters": {
        "width": 592,
        "height": 352,
        "content": "## STEP 2 – AI Analysis\n\n**What happens here**  \n- `Aggregate All1` collects all parsed workflows.  \n- `Prepare AI Analysis1` builds a compact prompt from the top N workflows.  \n- `AI Analysis1` (LLM "
      }
    },
    {
      "id": "c5a9bf2a-ba46-4c6d-8878-869572c7cb7e",
      "name": "Sticky: Step 3 — Save & Share",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        -288
      ],
      "parameters": {
        "width": 752,
        "height": 272,
        "content": "## STEP 3 – Save & Share\n\n**What happens here**  \n- `Save to Google Sheets` appends or updates rows with the latest analysis.  \n- Each row includes stars, node count, AI flag, difficulty, and links.  "
      }
    },
    {
      "id": "4dce4b29-cbec-44b4-a18a-0e70f4a9dedc",
      "name": "Sticky: Setup Checklist",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2480,
        16
      ],
      "parameters": {
        "width": 592,
        "height": 476,
        "content": "## Setup checklist (3–5 minutes)\n\n1️⃣ **GitHub credentials**  \n- Add `Authorization: Bearer <token>` in both `GitHub Search1` and `Fetch Workflow JSON1`.  \n- Use a personal access token with `repo` an"
      }
    },
    {
      "id": "4112f328-b6f6-4b75-a327-c8a83d1e3a1f",
      "name": "Sticky: Troubleshooting1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2512,
        576
      ],
      "parameters": {
        "width": 668,
        "height": 372,
        "content": "## Troubleshooting\n\n- **401 / 403 from GitHub**  \n  → Check your token, scopes, and `Authorization` header in both GitHub nodes.\n\n- **Empty or “No workflows found”**  \n  → Relax the search query in `C"
      }
    }
  ],
  "connections": {
    "Config1": {
      "main": [
        [
          {
            "node": "GitHub Search1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Analysis1": {
      "main": [
        [
          {
            "node": "Merge AI Results1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate All1": {
      "main": [
        [
          {
            "node": "Prepare AI Analysis1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GitHub Search1": {
      "main": [
        [
          {
            "node": "Split Results1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Results1": {
      "main": [
        [
          {
            "node": "Fetch Workflow JSON1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Config1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge AI Results1": {
      "main": [
        [
          {
            "node": "Save to Google Sheets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create a database page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Analysis1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Process Workflows1": {
      "main": [
        [
          {
            "node": "Aggregate All1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Workflow JSON1": {
      "main": [
        [
          {
            "node": "Process Workflows1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare AI Analysis1": {
      "main": [
        [
          {
            "node": "AI Analysis1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "AI Analysis1",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}