AutomationFlowsData & Sheets › AI Music Generation with ElevenLabs, Google Sheets & Drive

AI Music Generation with ElevenLabs, Google Sheets & Drive

Original n8n title: Automated 🤖🎵 AI Music Generation with Elevenlabs, Google Sheets & Drive

ByDavide Boizza @n3witalia on n8n.io

🤖🎵 This workflow automates the creation, storage, and cataloging of AI-generated music using the Eleven Music API, Google Sheets, and Google Drive.

Event trigger★★★★☆ complexity12 nodesGoogle SheetsHTTP RequestGoogle Drive
Data & Sheets Trigger: Event Nodes: 12 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #11047 — we link there as the canonical source.

This workflow follows the Google Drive → Google Sheets recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "P2I09TDwHXkMSQ7Q",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated AI Music Generation with ElevenLabs",
  "tags": [],
  "nodes": [
    {
      "id": "a98ccb05-9771-48db-9968-95e485270f7f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        -480
      ],
      "parameters": {
        "width": 864,
        "height": 496,
        "content": "## Automated AI Music Generation with ElevenLabs & Google Drive\n\nThis workflow automates the creation, storage, and cataloging of AI-generated music using the ElevenLabs Music API, Google Sheets, and Google Drive.\n\nWith Eleven Music*, businesses, creators, artists, and every single one of our users can generate studio-grade music from natural language prompts. Please fill this form to register your interest in the [Eleven Music API](https://try.elevenlabs.io/ahkbf00hocnu). \n\nGenerated music has a minimum duration of 10 seconds and a maximum duration of 5 minutes.\n\n*Only paid plan\n\n## **How it works:**\nThe workflow reads music requests from Google Sheets, sends prompts to ElevenLabs Music API, uploads generated MP3s to Google Drive, and updates sheet URLs. It loops through each request with a 1-minute delay to avoid rate limits.\n\n## **Setup steps:**\nConnect ElevenLabs API, Google Sheets, and Google Drive in n8n. Add required columns and IDs, authenticate each service, then test and run the workflow to generate and store tracks automatically.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c42079f2-9717-4958-a8d5-39b25f8a0f3a",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -720,
        192
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "a827047c-52d4-4bd1-9e13-f730f7c7026b",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -192,
        192
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "e8493c6f-c6c7-4789-a941-33480ad9c6e4",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        800,
        208
      ],
      "parameters": {
        "unit": "minutes",
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "b113abe5-28a7-425c-835e-a20e627aeac1",
      "name": "Get tracks",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -448,
        192
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "URL"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10yDGf9Xyx2l-zdd5S1orxZaKbW3_vnONVgRBk_CLrpg/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "10yDGf9Xyx2l-zdd5S1orxZaKbW3_vnONVgRBk_CLrpg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10yDGf9Xyx2l-zdd5S1orxZaKbW3_vnONVgRBk_CLrpg/edit?usp=drivesdk",
          "cachedResultName": "My Music Tracks"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "3e27ab71-a906-4f5e-be2c-27ea15f2d3da",
      "name": "Compose music",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        128,
        208
      ],
      "parameters": {
        "url": "https://api.elevenlabs.io/v1/music",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"respect_sections_durations\": true,\n  \"prompt\": \"{{ $json.PROMPT }}\",\n  \"music_length_ms\": {{ $json['DURATION (ms)'] }},\n  \"model_id\": \"music_v1\"\n} ",
        "sendBody": true,
        "sendQuery": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "output_format",
              "value": "mp3_44100_128"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "beeb4fa4-bad8-403b-b441-44f7e7916910",
      "name": "Upload music",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        368,
        208
      ],
      "parameters": {
        "name": "=song_{{$now.format('yyyyLLdd')}}.{{ $binary.data.fileExtension }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1tkCr7xdraoZwsHqeLm7FZ4aRWY94oLbZ",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1tkCr7xdraoZwsHqeLm7FZ4aRWY94oLbZ",
          "cachedResultName": "n8n"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "794e79c0-6e08-4736-9799-ca64529ade3e",
      "name": "Update Link tracks",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        592,
        208
      ],
      "parameters": {
        "columns": {
          "value": {
            "URL": "={{ $json.webViewLink }}",
            "row_number": "={{ $('Loop Over Items').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "N.",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "N.",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "TITLE",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "TITLE",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "PROMPT",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "PROMPT",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "DURATION (ms)",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "DURATION (ms)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10yDGf9Xyx2l-zdd5S1orxZaKbW3_vnONVgRBk_CLrpg/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "10yDGf9Xyx2l-zdd5S1orxZaKbW3_vnONVgRBk_CLrpg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10yDGf9Xyx2l-zdd5S1orxZaKbW3_vnONVgRBk_CLrpg/edit?usp=drivesdk",
          "cachedResultName": "My Music Tracks"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "e68ee0dc-8d56-4501-8338-9181500b9a07",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 304,
        "content": "### Compose music with ElevenLabs\nGo to Developers, create API Key. Set Music Generation from \"No Access\" to \"Access\". Set Header Auth (Name: xi-api-key, Value: YOUR_API_KEY)"
      },
      "typeVersion": 1
    },
    {
      "id": "19fba490-199c-4ef6-8cdb-16cdef12dee3",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "height": 304,
        "content": "### Setup tracks\nPlease  clone [this sheet](https://docs.google.com/spreadsheets/d/10yDGf9Xyx2l-zdd5S1orxZaKbW3_vnONVgRBk_CLrpg/edit?usp=sharing) and fill the columns \"Title\", \"Prompt\" and \"Duration (ms)\""
      },
      "typeVersion": 1
    },
    {
      "id": "181588ea-1902-4905-9328-e394ed886395",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        64
      ],
      "parameters": {
        "color": 7,
        "width": 592,
        "height": 304,
        "content": "### Upload music and update Sheet\nUpload the music generated with ElevenLabs on Google Drive and update the Sheet with the URL of the MP3 track"
      },
      "typeVersion": 1
    },
    {
      "id": "3a3c26ef-e4d0-44d0-beba-bd59702db29f",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        -720
      ],
      "parameters": {
        "color": 7,
        "width": 736,
        "height": 736,
        "content": "## MY NEW YOUTUBE CHANNEL\n\ud83d\udc49 [Subscribe to my new **YouTube channel**](https://youtube.com/@n3witalia). Here I\u2019ll share videos and Shorts with practical tutorials and **FREE templates for n8n**.\n\n[![image](https://n3wstorage.b-cdn.net/n3witalia/youtube-n8n-cover.jpg)](https://youtube.com/@n3witalia)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "64f020e9-b4ca-45a7-b526-a2828f2f2575",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get tracks": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload music": {
      "main": [
        [
          {
            "node": "Update Link tracks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compose music": {
      "main": [
        [
          {
            "node": "Upload music",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Compose music",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Link tracks": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Get tracks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

🤖🎵 This workflow automates the creation, storage, and cataloging of AI-generated music using the Eleven Music API, Google Sheets, and Google Drive.

Source: https://n8n.io/workflows/11047/ — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

PCN. Uses googleSheets, httpRequest, @n-octo-n/n8n-nodes-json-database, itemLists. Event-driven trigger; 60 nodes.

Google Sheets, HTTP Request, @N Octo N/N8N Nodes Json Database +3
Data & Sheets

The workflow automates the process of gathering extensive keyword data for a "Main Keyword." It starts by reading initial parameters from a Google Sheets template, creates a new dedicated Google Sheet

Google Sheets, Google Drive, HTTP Request
Data & Sheets

🔥 March Sale – n8n Community Members Get ideoGener8r for Just $27! (Reg. $47) Use Coupon Code: (Valid until 3/31/2025 for n8n community members)

HTTP Request, Google Drive, Google Sheets
Data & Sheets

📄 Documentation: Notion Guide

Google Sheets, Google Drive, HTTP Request +2
Data & Sheets

Overview

Google Sheets, Google Drive, HTTP Request