{
  "name": "Generate student course schedules based on prerequisites with GPT and Google Sheets",
  "nodes": [
    {
      "id": "5432b2ed-adde-4021-b6b3-e75e43bd102c",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1936,
        6608
      ]
    },
    {
      "id": "d25eca2c-90bb-4888-b474-8e433089ffb2",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1328,
        6880
      ]
    },
    {
      "id": "735096be-4698-4f16-9ba3-0f4e22d1b96e",
      "name": "Sticky Note66",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        6592
      ],
      "parameters": {
        "width": 224,
        "height": 400,
        "content": "### 3) Connect OpenAI (API Key)\n1. In **n8n → Credentials → New → OpenAI API**  \n2. Paste your **OpenAI API key**  \n3. In **OpenAI Chat Model**, select your credential and a **vision-capable** chat mo"
      }
    },
    {
      "id": "adc4b2bc-5927-409e-809f-bcaf9dd09ab5",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1008,
        6592
      ]
    },
    {
      "id": "6dc807d0-5f0d-4b88-8e37-3e05890b6f55",
      "name": "Sticky Note67",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1728,
        6160
      ],
      "parameters": {
        "width": 224,
        "height": 656,
        "content": "### 1) Connect Google Sheets (OAuth2)\n1. In **n8n → Credentials → New → Google Sheets (OAuth2)**  \n2. Sign in with your Google account and grant access  \n3. In each Google Sheets node, select your **S"
      }
    },
    {
      "id": "abb848f7-0819-423c-8e24-3541f469d5d0",
      "name": "Scheduling Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1168,
        6384
      ]
    },
    {
      "id": "7e482cae-9c94-4b19-a828-e067fa7cbb1b",
      "name": "Set Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -544,
        6384
      ]
    },
    {
      "id": "de5141a8-d7d2-4392-b516-d3b48f565e5e",
      "name": "Clear sheet1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -336,
        6384
      ]
    },
    {
      "id": "9ae9d8a6-680b-4df0-b41f-95aa314f0679",
      "name": "Sticky Note56",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2016,
        6016
      ],
      "parameters": {
        "width": 2144,
        "height": 1056,
        "content": "### 🎓 AI Course Scheduler from Completed Prereqs (Google Sheets + OpenAI)\n\nCreate a **Fall 2025 course schedule** for each student based on what they’ve already completed, catalog prerequisites, and t"
      }
    },
    {
      "id": "b55540c2-7e9d-4998-9c87-fa8ef37ff943",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2448,
        6016
      ],
      "parameters": {
        "width": 400,
        "height": 1056,
        "content": "### ⚙️ Setup (only 2 steps)\n\n#### 1) Connect Google Sheets (OAuth2)\n- In **n8n → Credentials → New → Google Sheets (OAuth2)**, sign in and grant access  \n- In the Google Sheets nodes, select your spre"
      }
    },
    {
      "id": "b23e80f6-a848-4fdc-989d-f500fae50f8d",
      "name": "Get Student Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1664,
        6672
      ]
    },
    {
      "id": "e8c4be35-a682-43af-806c-4a0908fad56f",
      "name": "Split Schedule",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -800,
        6384
      ]
    },
    {
      "id": "40109987-d4b5-48d5-aea6-1923956ad3e8",
      "name": "Append Schedule",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -128,
        6384
      ]
    }
  ],
  "connections": {
    "Set Fields": {
      "main": [
        [
          {
            "node": "Clear sheet1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clear sheet1": {
      "main": [
        [
          {
            "node": "Append Schedule",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Schedule": {
      "main": [
        [
          {
            "node": "Set Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Student Data": {
      "main": [
        [
          {
            "node": "Scheduling Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scheduling Agent": {
      "main": [
        [
          {
            "node": "Split Schedule",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Scheduling Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Scheduling Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Get Student Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}