{
  "name": "Music Producer Chatbot 🎵🎤 using Gemini + Suno (via Kei AI) & Google Drive Upload",
  "nodes": [
    {
      "id": "e559b261-3def-4d04-9cfc-22d9109465d7",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        2928,
        544
      ]
    },
    {
      "id": "ef1aac81-1861-4b1b-b42d-699964fce8f5",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1344,
        1408
      ]
    },
    {
      "id": "fd449974-c167-432f-bcff-2356a6594f48",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1568,
        1408
      ]
    },
    {
      "id": "d403377d-8282-4b61-8bc2-5a8a98bc467d",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        944,
        544
      ]
    },
    {
      "id": "88f039b5-ce10-4612-948f-590d4a353b02",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        2240,
        768
      ]
    },
    {
      "id": "4cfdc6cc-eb53-4681-b3fe-0fb02aece06d",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1200,
        976
      ]
    },
    {
      "id": "7d42ebed-713f-4b48-b2a5-a785afd24612",
      "name": "Google Gemini Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1504,
        976
      ]
    },
    {
      "id": "635dfa45-0c53-470a-b51a-92c9985e84bd",
      "name": "Search songs",
      "type": "n8n-nodes-gemini-search.geminiSearchToolTool",
      "position": [
        1296,
        768
      ]
    },
    {
      "id": "53456f2e-667b-4174-99b2-705871f26552",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2368,
        768
      ]
    },
    {
      "id": "a17555ce-3f2e-4b0e-891b-d4a719d2e07e",
      "name": "Songwriter",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        1424,
        768
      ]
    },
    {
      "id": "c72b7042-fc51-4b21-9355-5375c0b828ec",
      "name": "Music Producer Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1168,
        544
      ]
    },
    {
      "id": "71b1c3ec-b6b6-438a-8f53-e36f3fab842a",
      "name": "is Song?",
      "type": "n8n-nodes-base.if",
      "position": [
        1632,
        544
      ]
    },
    {
      "id": "93d5a3f7-6cd0-4848-94fe-60f33b177cac",
      "name": "Parser",
      "type": "n8n-nodes-base.code",
      "position": [
        1920,
        528
      ]
    },
    {
      "id": "cc8c15a6-a9c6-4505-8f38-7773589f6aac",
      "name": "Fix Json Structure",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2240,
        544
      ]
    },
    {
      "id": "a5ba81f7-09ce-42ea-ad5f-0f399cc260de",
      "name": "Create song",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2704,
        544
      ]
    },
    {
      "id": "a41087c5-264b-47dc-9fd1-e8128fd17843",
      "name": "Get response",
      "type": "n8n-nodes-base.set",
      "position": [
        1120,
        1408
      ]
    },
    {
      "id": "69cc17b5-7c4c-4751-8cbc-d0b41ae2158d",
      "name": "Get single song",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1792,
        1344
      ]
    },
    {
      "id": "4b006a4f-930d-4d11-95f2-3733e499b094",
      "name": "Get songs",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3184,
        544
      ]
    },
    {
      "id": "525bbc1a-8a10-47d6-88a7-4ce065148eea",
      "name": "Upload song",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2016,
        1408
      ]
    },
    {
      "id": "418ef426-743e-4766-a2de-b6349c3e292e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        -448
      ],
      "parameters": {
        "width": 736,
        "height": 784,
        "content": "## Music Producer Chatbot using Gemini + Suno (via Kei AI) with Google Drive Upload\nThis workflow creates an **AI-powered chatbot** that generates **custom songs** through an interactive conversation,"
      }
    },
    {
      "id": "59302be0-3a7b-4166-8e53-66273a0ebe46",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        368
      ],
      "parameters": {
        "width": 736,
        "height": 768,
        "content": "## STEP 1 - Chatbot\nA \"Music Producer Agent\" powered by Google Gemini engages with the user conversationally to gather all necessary song parameters."
      }
    },
    {
      "id": "0f2e9929-edf9-4ad9-bdf2-1072dc92c1b9",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1872,
        368
      ],
      "parameters": {
        "width": 672,
        "height": 768,
        "content": "## STEP2 - Validation & Formatting\nThe collected data passes through an IF condition checking for valid JSON format, then a Code node parses and cleans the JSON output. A \"Fix Json Structure\" node ens"
      }
    },
    {
      "id": "9cbb3d90-6a82-43eb-a0ff-de1fae61bcac",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2576,
        368
      ],
      "parameters": {
        "width": 784,
        "height": 768,
        "content": "## STEP 3 - Song Generation\nThe formatted data is sent to the [Kie.ai API](https://kie.ai?ref=188b79f5cb949c9e875357ac098e1ff5) (HTTP Request node) which generates the actual music track. The workflow"
      }
    },
    {
      "id": "13f80c20-bae4-4f93-bb1a-99cb6ec8fa8d",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        1200
      ],
      "parameters": {
        "width": 1120,
        "height": 560,
        "content": "## STEP 4 - Process Results\nThe response is split out, and a Loop Over Items node processes each generated song individually.Upload songs to Google Drive"
      }
    },
    {
      "id": "b68492f7-425f-487e-b634-0fb3603c6836",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1888,
        -400
      ],
      "parameters": {
        "width": 736,
        "height": 736,
        "content": "## MY NEW YOUTUBE CHANNEL\n👉 [Subscribe to my new **YouTube channel**](https://youtube.com/@n3witalia). Here I’ll share videos and Shorts with practical tutorials and **FREE templates for n8n**.\n\n[![im"
      }
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Get songs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parser": {
      "main": [
        [
          {
            "node": "Fix Json Structure",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "is Song?": {
      "main": [
        [
          {
            "node": "Parser",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get songs": {
      "main": [
        [
          {
            "node": "Get response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Songwriter": {
      "ai_tool": [
        [
          {
            "node": "Music Producer Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create song": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload song": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get response": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search songs": {
      "ai_tool": [
        [
          {
            "node": "Music Producer Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Music Producer Agent",
            "type": "ai_memory",
            "index": 0
          },
          {
            "node": "Songwriter",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Get single song": {
      "main": [
        [
          {
            "node": "Upload song",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Get single song",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fix Json Structure": {
      "main": [
        [
          {
            "node": "Create song",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Music Producer Agent": {
      "main": [
        [
          {
            "node": "is Song?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Music Producer Agent",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Fix Json Structure",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Fix Json Structure",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Songwriter",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Music Producer Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}