{
  "name": "Generate AI songs from text prompts with Suno, OpenAI, Google Drive and Slack",
  "nodes": [
    {
      "id": "7ce6840b-f4d2-48b1-957c-72ef2cc6c76d",
      "name": "Overview & Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        -144
      ],
      "parameters": {
        "width": 1140,
        "height": 956,
        "content": "## 🎵 n8n Suno Music Automation\n### Generate Custom AI Songs from Text Prompts\n\nBuild a fully automated music generation workflow in n8n using Suno to create and store AI-generated songs.\n\n### What's t"
      }
    },
    {
      "id": "6f8087b3-7fc1-457d-85f7-f3b9413791f0",
      "name": "1. Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -36
      ],
      "parameters": {
        "width": 432,
        "height": 740,
        "content": "## 1. Trigger & Prompt Input\nWebhook or schedule → receive and prepare the music prompt"
      }
    },
    {
      "id": "55521757-9241-4014-a9c5-f0a502a5f96a",
      "name": "2. Enrichment Phase",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -16
      ],
      "parameters": {
        "width": 200,
        "height": 720,
        "content": "## 2. Prompt Enrichment\nUse AI to enhance prompt with genre, mood & style tags for best Suno output"
      }
    },
    {
      "id": "102f7f37-dc19-4330-a8ca-43401780d440",
      "name": "3. Suno Phase",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        0
      ],
      "parameters": {
        "width": 1104,
        "height": 700,
        "content": "## 3. Suno Generation & Polling\nSubmit to Suno API → poll until song is ready"
      }
    },
    {
      "id": "0c909a7e-4f80-4466-8bfc-a7da4053ddec",
      "name": "4. Storage & Output",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2816,
        0
      ],
      "parameters": {
        "width": 680,
        "height": 696,
        "content": "## 4. Store, Log & Notify\nDownload audio → Cloud Storage → Log → Slack alert"
      }
    },
    {
      "id": "442802db-9904-40a0-b1a6-4daa1e8f50e0",
      "name": "Webhook: Receive Prompt",
      "type": "n8n-nodes-base.webhook",
      "position": [
        1040,
        352
      ]
    },
    {
      "id": "aae08c5c-0e38-41ed-baac-0a5dd6128b70",
      "name": "Daily Batch (fallback)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1040,
        544
      ]
    },
    {
      "id": "f5080e4a-10bc-4b0a-b5d0-becc41126dd2",
      "name": "Set Music Config",
      "type": "n8n-nodes-base.set",
      "position": [
        1264,
        448
      ]
    },
    {
      "id": "ccaf90de-c02c-468b-b2a4-57a057b11d39",
      "name": "Suno: Submit Generation Job",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1712,
        448
      ]
    },
    {
      "id": "1949fb9d-c581-4e8c-9b81-11454fbac54c",
      "name": "Wait 30s (Polling Delay)",
      "type": "n8n-nodes-base.wait",
      "position": [
        1936,
        448
      ]
    },
    {
      "id": "125ffb37-c45b-49f9-8bd6-1b8200b9707b",
      "name": "Suno: Poll Song Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2160,
        448
      ]
    },
    {
      "id": "8a5ad676-94a1-47a4-bd05-53ffc8d2e971",
      "name": "Song Ready?",
      "type": "n8n-nodes-base.if",
      "position": [
        2384,
        448
      ]
    },
    {
      "id": "21ce21ad-68af-44f2-8124-141aecc3ec11",
      "name": "Download Audio File",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2608,
        352
      ]
    },
    {
      "id": "a6bf6e4c-963d-491e-8cd4-33cf922ffdfb",
      "name": "Google Drive: Save Song",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2832,
        352
      ]
    },
    {
      "id": "b298b099-4b19-4124-aada-9b2b6b005f69",
      "name": "Google Sheets: Log Song",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3056,
        352
      ]
    },
    {
      "id": "d061b43c-3efc-4b95-8c45-8e0fd5abb8cc",
      "name": "Notify Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        3280,
        352
      ]
    },
    {
      "id": "cfcc044e-1acd-4d89-a9cc-831cdddb718e",
      "name": "Notify Failure",
      "type": "n8n-nodes-base.slack",
      "position": [
        2608,
        544
      ]
    },
    {
      "id": "fca14269-5014-4cba-b5c1-6d5a66398e9a",
      "name": "OpenAI: Enrich Prompt",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1488,
        448
      ]
    }
  ],
  "connections": {
    "Song Ready?": {
      "main": [
        [
          {
            "node": "Download Audio File",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify Failure",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Music Config": {
      "main": [
        [
          {
            "node": "OpenAI: Enrich Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Audio File": {
      "main": [
        [
          {
            "node": "Google Drive: Save Song",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI: Enrich Prompt": {
      "main": [
        [
          {
            "node": "Suno: Submit Generation Job",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Batch (fallback)": {
      "main": [
        [
          {
            "node": "Set Music Config",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Suno: Poll Song Status": {
      "main": [
        [
          {
            "node": "Song Ready?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive: Save Song": {
      "main": [
        [
          {
            "node": "Google Sheets: Log Song",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets: Log Song": {
      "main": [
        [
          {
            "node": "Notify Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook: Receive Prompt": {
      "main": [
        [
          {
            "node": "Set Music Config",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 30s (Polling Delay)": {
      "main": [
        [
          {
            "node": "Suno: Poll Song Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Suno: Submit Generation Job": {
      "main": [
        [
          {
            "node": "Wait 30s (Polling Delay)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}