Google Sheets to Google Drive, AI music cataloged
Your music “library” starts out organized. Then reality hits. A few quick experiments turn into dozens of MP3s scattered across folders, weird filenames, and a spreadsheet that never quite matches what’s in Drive.
This Sheets Drive music automation hits content marketers and creative producers first, honestly. But agency owners shipping client assets feel it too. The outcome is simple: requests go in a Google Sheet, finished tracks land in Google Drive, and the shareable link writes itself back into the same row.
Below you’ll see exactly what this workflow does, what you need to run it, and how to think about customizing it for your own cataloging system.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Google Sheets to Google Drive, AI music cataloged
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Get tracks", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Compose music"]
n5@{ icon: "mdi:cog", form: "rounded", label: "Upload music", pos: "b", h: 48 }
n6@{ icon: "mdi:database", form: "rounded", label: "Update Link tracks", pos: "b", h: 48 }
n2 --> n1
n3 --> n1
n5 --> n6
n4 --> n5
n1 --> n4
n6 --> n2
n0 --> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n3,n6 database
class n4 api
classDef customIcon fill:none,stroke:none
class n4 customIcon
Why This Matters: Keeping AI Audio Organized
Generating AI music is the fun part. Managing it is the part that quietly steals your time. You create a track from a prompt, download it, rename it (maybe), upload it to Drive, then paste a link somewhere so you can find it later. Do that a few times and it’s fine. Do it for a campaign with 20 variations, and suddenly you’re playing detective: “Which version was the one with the warmer synth and shorter intro?” The mental load is real, and the mistakes (wrong file in the wrong folder, stale links, missing metadata) show up at the worst time.
It adds up fast. Here’s where it usually breaks down in day-to-day work.
- Track requests live in messages and sticky notes, so you lose the original prompt and can’t reproduce the sound later.
- Uploading and naming MP3s by hand takes about 10 minutes per track once you include “where did I put that file?” moments.
- Spreadsheet catalogs drift out of sync, which means teammates click dead links right when you need approvals.
- Batch-generating several tracks can trigger API rate limits if you push too hard and too fast.
What You’ll Build: A Google Sheet That Produces a Drive Music Library
This workflow turns one Google Sheet into a lightweight production pipeline. You list each track you want (title, prompt, duration) in rows. When you run the workflow in n8n, it pulls those rows, generates the audio through the ElevenLabs Music API, then uploads the finished MP3 into a specific Google Drive folder. Finally, it writes the URL back to the exact row that requested the track, so your spreadsheet becomes the catalog you share internally (or with clients). There’s also a deliberate pause between tracks to keep the process stable, so you can queue multiple generations without babysitting the run.
The workflow starts with a manual launch in n8n. From there, it loops through your sheet rows one-by-one, calls ElevenLabs to generate an MP3, and stores it in Drive. Once Drive returns the file link, the workflow writes it back into Google Sheets and moves to the next request.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you generate 15 background tracks in a week for ads, reels, and client edits. Manually, figure about 10 minutes per track to download, rename, upload to Drive, and paste the link back into your tracker, so roughly 2.5 hours of file chores. With this workflow, you spend about 10 minutes filling the sheet and kicking off the run, then you wait while it processes in the background (including the built-in one-minute delay per track). Your hands-on time drops to almost nothing, and your catalog stays clean.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for the track request spreadsheet.
- Google Drive to store MP3 files in one folder.
- ElevenLabs API key (get it from the ElevenLabs developer dashboard)
Skill level: Beginner. You’ll connect Google accounts, paste an API key, and edit a Sheet ID and Drive folder ID.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
Manual run from n8n. You click Execute in n8n when you’re ready to process new track requests. This is great when you want control and don’t want surprise API usage.
Track requests are pulled from Google Sheets. The workflow reads rows that contain the track title, the text prompt, and a duration value (in milliseconds). That sheet becomes your control center, and it stays the system of record.
Each row is processed in a loop with a built-in delay. n8n batches through your requests one-by-one, calls the ElevenLabs Music API using an HTTP Request node, then waits about a minute before moving on. That pause is there for reliability, not drama.
The MP3 is saved to Google Drive and the URL is written back. After the audio is generated, the workflow uploads the file to your Drive folder and updates the original row with a direct link, so anyone can listen without hunting around.
You can easily modify the spreadsheet columns to include things like “campaign name” or “mood,” then map those values into the filename or folder structure based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
Set the workflow’s entry point so you can manually run the music generation pipeline while testing.
- Add the Manual Launch Trigger node as the workflow trigger (this node has no required parameters).
- Connect Manual Launch Trigger to Retrieve Track Rows to match the execution flow.
Step 2: Connect Google Sheets
Pull prompts and durations from your spreadsheet and prepare the update destination for the generated audio URLs.
- Open Retrieve Track Rows and select your spreadsheet in Document with
[YOUR_ID], and set Sheet toFoglio1. - In Retrieve Track Rows, set a filter on URL so only rows missing URLs are fetched.
- Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Track Rows.
- Open Write Back URLs and set Operation to
update, Document to[YOUR_ID], and Sheet toFoglio1. - Map columns in Write Back URLs: set URL to
{{ $json.webViewLink }}and row_number to{{ $('Batch Iterator').item.json.row_number }}. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Write Back URLs.
[YOUR_ID], the workflow will read or write to the wrong sheet.Step 3: Set Up Batch Processing and Audio Generation
Process tracks one at a time, generate audio through the API, and control pacing with a delay loop.
- Connect Retrieve Track Rows to Batch Iterator to iterate rows one at a time.
- Connect the second output of Batch Iterator to Generate Audio Track to process each item in sequence.
- In Generate Audio Track, set URL to
https://api.elevenlabs.io/v1/musicand Method toPOST. - Set JSON Body to
{.
"respect_sections_durations": true,
"prompt": "{{ $json.PROMPT }}",
"music_length_ms": {{ $json['DURATION (ms)'] }},
"model_id": "music_v1"
} - Under Query Parameters, set output_format to
mp3_44100_128. - Credential Required: Connect your httpHeaderAuth credentials in Generate Audio Track.
- Configure Delay Interval with Unit
minutesand Amount1, then connect Write Back URLs to Delay Interval and Delay Interval back to Batch Iterator to loop.
Step 4: Configure Output Storage
Save the generated audio file to Google Drive and pass the link back to the sheet.
- Connect Generate Audio Track to Store Audio File.
- In Store Audio File, set Name to
song_{{$now.format('yyyyLLdd')}}.{{ $binary.data.fileExtension }}. - Set Drive to
My Driveand Folder to[YOUR_ID](e.g., then8nfolder). - Credential Required: Connect your googleDriveOAuth2Api credentials in Store Audio File.
- Connect Store Audio File to Write Back URLs to update the sheet with the file’s
webViewLink.
Step 5: Test and Activate Your Workflow
Run the workflow end-to-end to verify audio generation and sheet updates.
- Click Execute Workflow on Manual Launch Trigger to start a test run.
- Confirm that Generate Audio Track returns audio data and Store Audio File creates a file in Google Drive.
- Verify Write Back URLs updates the URL column with the Drive
webViewLink. - Once successful, toggle the workflow to Active for production use.
Troubleshooting Tips
- Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection in n8n’s Credentials area first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- ElevenLabs API calls can fail from missing Music access or an old API key. Regenerate the key in the ElevenLabs developer dashboard and confirm you’re sending it as the xi-api-key header.
Quick Answers
About 30 minutes if your accounts are ready.
No. You’ll connect accounts and paste an API key. The rest is matching a few fields from your Google Sheet.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in ElevenLabs Music API usage costs, which depend on how many tracks you generate and how long they are.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s usually just mapping changes. You can add columns like “mood,” “BPM,” or “campaign,” then use the Edit Fields (Set) step to build a richer filename or pick a Drive subfolder. If you’d rather trigger it automatically, you can swap the manual trigger for a Webhook trigger and only generate tracks when a row is marked “Ready.”
Most of the time it’s the API key or missing Music API access on your ElevenLabs account. Recreate the key in the ElevenLabs developer dashboard, then confirm n8n is sending it as the xi-api-key header in the HTTP Request node. If it fails only on bigger batches, you may be getting rate limited, so increase the wait time between requests.
Practically, it can handle large catalogs, but it runs sequentially by design because of the built-in one-minute delay per track.
Often, yes, if you’re generating lots of tracks or you need more control over looping and delays. n8n makes it straightforward to process rows one-by-one, wait between API calls, and only write back to Sheets when Drive upload succeeds. It’s also easier to self-host, which matters when you don’t want every track request counting as a paid task. Zapier or Make can be fine for simple “one row = one action” cases, but batching and error handling gets awkward. If you want a quick recommendation based on your volume and tools, Talk to an automation expert.
Once this is running, your spreadsheet stops being “notes” and starts being a real production queue. The workflow handles the repetitive file work so you can focus on the creative decisions that actually move the project forward.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.