{
  "name": "Monthly Spotify track archiving and playlist classification",
  "nodes": [
    {
      "id": "6325369f-5881-4e4e-b71b-510a64b236ef",
      "name": "Retrieve relevant info",
      "type": "n8n-nodes-base.set",
      "position": [
        1260,
        400
      ]
    },
    {
      "id": "2252fe16-6ee7-4fbe-b74e-d9bdcc7ad708",
      "name": "Batch preparation",
      "type": "n8n-nodes-base.code",
      "position": [
        1560,
        280
      ]
    },
    {
      "id": "83c181f8-ed18-41d7-8c7e-26b0dd320083",
      "name": "Get Track details",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1980,
        280
      ]
    },
    {
      "id": "6cf1afdd-7e62-4d76-a034-5e943e2db0ff",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2200,
        280
      ]
    },
    {
      "id": "fc3ab428-40f9-4439-83b6-8ecb125d510f",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        4180,
        1100
      ]
    },
    {
      "id": "e712d5c0-5045-4cd2-8324-5cde4fc37b2a",
      "name": "Get Playlist",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1080,
        -71
      ]
    },
    {
      "id": "5d9d2abe-c85f-41a9-bb99-28a1306a8685",
      "name": "Get Tracks",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1040,
        400
      ]
    },
    {
      "id": "9e5b30cb-db4c-445e-bd82-314740d6af64",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        4540,
        1100
      ]
    },
    {
      "id": "8ddc9606-d70a-4a94-8dff-9ed17cec378e",
      "name": "Playlists informations",
      "type": "n8n-nodes-base.set",
      "position": [
        1520,
        -71
      ]
    },
    {
      "id": "ec99ed3b-3cd9-4dc2-a7c6-5099eaeea93b",
      "name": "Filter my playlist",
      "type": "n8n-nodes-base.filter",
      "position": [
        1300,
        -71
      ]
    },
    {
      "id": "64e57339-2bf2-4dc7-bca7-3de7da80b6eb",
      "name": "Split Out1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        4700,
        880
      ]
    },
    {
      "id": "924f5b88-9dce-4acc-9ad6-0f25f804fcc5",
      "name": "Batch preparation1",
      "type": "n8n-nodes-base.code",
      "position": [
        5380,
        880
      ]
    },
    {
      "id": "980ef09e-557d-4748-b92a-ceec9dc54a6b",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        2400,
        380
      ]
    },
    {
      "id": "a6149a04-bd65-4e55-8c1b-5e18fd98c2e8",
      "name": "Simplify Tracks informations",
      "type": "n8n-nodes-base.set",
      "position": [
        2620,
        380
      ]
    },
    {
      "id": "96432403-f15f-4015-8024-72731e18b18d",
      "name": "Limit",
      "type": "n8n-nodes-base.limit",
      "position": [
        2860,
        240
      ]
    },
    {
      "id": "3efb9ee3-1955-40eb-9958-a5fb515f30c1",
      "name": "Get logged tracks",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3120,
        240
      ]
    },
    {
      "id": "58821bc3-254c-46d2-b882-d1995aaf3d46",
      "name": "Excluding logged tracks",
      "type": "n8n-nodes-base.merge",
      "position": [
        3380,
        360
      ]
    },
    {
      "id": "8a28cd62-9316-487e-a8f7-dd5ed3eab6c8",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        5120,
        880
      ]
    },
    {
      "id": "770a42f8-f4e5-44b8-a096-945db7c9f85e",
      "name": "Split Out2",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        5120,
        520
      ]
    },
    {
      "id": "da5c9b03-2ace-40af-9364-c9119eaef7b0",
      "name": "Manual Verification",
      "type": "n8n-nodes-base.merge",
      "position": [
        5380,
        480
      ]
    },
    {
      "id": "98b3fca5-5b14-42e4-8e5f-5506643a54bb",
      "name": "Spotify",
      "type": "n8n-nodes-base.spotify",
      "position": [
        5640,
        880
      ]
    },
    {
      "id": "536f7ed8-d3bf-4c95-8a7a-42f3a2f47e5c",
      "name": "Aggregate by 200 tracks",
      "type": "n8n-nodes-base.code",
      "position": [
        4080,
        880
      ]
    },
    {
      "id": "e590ef66-4fc1-4b4d-a56c-f93db389500e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1160,
        -280
      ],
      "parameters": {
        "width": 1055,
        "height": 1188.074539731524,
        "content": "# Monthly Spotify Track Archiving and Playlist Classification\n\nThis n8n workflow allows you to automatically archive your monthly Spotify liked tracks in a Google Sheet, along with playlist details an"
      }
    },
    {
      "id": "c6e33534-a923-4a1e-8d40-54c3d39f7352",
      "name": "Monthly Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        660,
        160
      ]
    },
    {
      "id": "a085a6af-ede4-4e3a-9bf4-4c29e821af35",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1000,
        -240
      ],
      "parameters": {
        "width": 1729.2548791395811,
        "height": 349.93537232723713,
        "content": "**Get & Log Playlists informations**"
      }
    },
    {
      "id": "ad33760b-7fa9-4246-806c-438fdf31247b",
      "name": "Get logged playlists",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2000,
        -171
      ]
    },
    {
      "id": "e2beb78f-227c-4ecf-bf90-377d49050646",
      "name": "Log new tracks",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3680,
        200
      ]
    },
    {
      "id": "e9d311c8-d39c-481d-99dc-c89d360f3217",
      "name": "Log new playlists",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2480,
        -91
      ]
    },
    {
      "id": "0e9dd47b-0bd3-4c8c-84c6-7ef566f41135",
      "name": "Excluding logged playlists",
      "type": "n8n-nodes-base.merge",
      "position": [
        2240,
        -91
      ]
    },
    {
      "id": "7e0f1d5b-d74b-474d-bde2-3966ab51e048",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1000,
        195.4666080114149
      ],
      "parameters": {
        "width": 2831.0439846349473,
        "height": 394.4687643158222,
        "content": "**Get & Log Playlists informations**"
      }
    },
    {
      "id": "b851790c-126a-43bd-a223-0a023d423309",
      "name": "Limit2",
      "type": "n8n-nodes-base.limit",
      "position": [
        1780,
        -171
      ]
    },
    {
      "id": "f0ec1751-116a-4d14-b815-39f4ba989e33",
      "name": "Classify new tracks",
      "type": "n8n-nodes-base.noOp",
      "position": [
        3880,
        460
      ]
    },
    {
      "id": "38df0ed5-697d-489d-8d0c-2b18c2e017a8",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3960,
        740
      ],
      "parameters": {
        "width": 726.2282986582347,
        "height": 562.9881279640259,
        "content": "**AI Classification**"
      }
    },
    {
      "id": "5649c3b6-dc55-488f-9afc-106ac410fae1",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5080,
        760
      ],
      "parameters": {
        "width": 858.3555537284071,
        "height": 309.3037982292949,
        "content": "**Update Spotify Playlists**"
      }
    },
    {
      "id": "8410fc7d-64e3-4abf-b035-667945e84d64",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5080,
        340
      ],
      "parameters": {
        "width": 578.2457729796415,
        "height": 309.3037982292949,
        "content": "**Manual Verification**\nWe performed this merge to include the track name, making it easier to verify the AI's output. Adding the track name directly in the machine learning response would double the "
      }
    },
    {
      "id": "d59c316a-22d4-46f0-b97c-789e8c196ab1",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1140,
        1040
      ],
      "parameters": {
        "width": 610.3407699712512,
        "height": 922.4081979777811,
        "content": "### Playlists' Description Examples\n\n\n| Playlist Name           | Playlist Description                                                                                                                  "
      }
    },
    {
      "id": "d43ce92b-3831-4fd5-a59c-f9dcd7f1b8ea",
      "name": "Basic LLM Chain - AI Classification",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        4280,
        880
      ]
    }
  ],
  "connections": {
    "Limit": {
      "main": [
        [
          {
            "node": "Get logged tracks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Simplify Tracks informations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Batch preparation1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit2": {
      "main": [
        [
          {
            "node": "Get logged playlists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Tracks": {
      "main": [
        [
          {
            "node": "Retrieve relevant info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Split Out2",
            "type": "main",
            "index": 0
          },
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out2": {
      "main": [
        [
          {
            "node": "Manual Verification",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Get Playlist": {
      "main": [
        [
          {
            "node": "Filter my playlist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monthly Trigger": {
      "main": [
        [
          {
            "node": "Get Playlist",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Tracks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Batch preparation": {
      "main": [
        [
          {
            "node": "Get Track details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Track details": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get logged tracks": {
      "main": [
        [
          {
            "node": "Excluding logged tracks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Batch preparation1": {
      "main": [
        [
          {
            "node": "Spotify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter my playlist": {
      "main": [
        [
          {
            "node": "Playlists informations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Classify new tracks": {
      "main": [
        [
          {
            "node": "Aggregate by 200 tracks",
            "type": "main",
            "index": 0
          },
          {
            "node": "Manual Verification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain - AI Classification",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get logged playlists": {
      "main": [
        [
          {
            "node": "Excluding logged playlists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Playlists informations": {
      "main": [
        [
          {
            "node": "Excluding logged playlists",
            "type": "main",
            "index": 1
          },
          {
            "node": "Limit2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve relevant info": {
      "main": [
        [
          {
            "node": "Batch preparation",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Aggregate by 200 tracks": {
      "main": [
        [
          {
            "node": "Basic LLM Chain - AI Classification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Excluding logged tracks": {
      "main": [
        [
          {
            "node": "Log new tracks",
            "type": "main",
            "index": 0
          },
          {
            "node": "Classify new tracks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Basic LLM Chain - AI Classification",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Excluding logged playlists": {
      "main": [
        [
          {
            "node": "Log new playlists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simplify Tracks informations": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          },
          {
            "node": "Excluding logged tracks",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Basic LLM Chain - AI Classification": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}