Post to 9 Social Platforms in 1 Click โ n8n + Google Sheets + Blotato
One trigger, nine platforms. Build the workflow that publishes everywhere from a single Google Sheet row.
Lesson Notes
What You'll Build
An n8n workflow that reads one row from a Google Sheet, reformats the video URL for Blotato's API, uploads the media, and publishes to up to nine social platforms simultaneously: Instagram, Twitter/X, LinkedIn, YouTube, TikTok, Facebook, Pinterest, Threads, and more.
The workflow runs on a schedule. Every day at midnight (or whenever you set it), it picks the next pending video from your sheet and publishes everywhere. You never log into a social platform to post again.
What You Need
- n8n (cloud or Docker)
- Blotato paid account (free trial available โ API access requires a paid plan)
- Google Sheet with your content queue (template available in video description)
- Videos pre-uploaded to Google Drive (shared so the URL is accessible)
- Social media accounts connected in Blotato
Setting Up Your Google Sheet
Make a copy of the template from the video description. Key columns:
- ID โ Unique row identifier
- Title โ Post title (used for YouTube)
- Description โ Caption text for all platforms
- G Drive URL โ Direct link to your video in Google Drive
- Status โ
pending(not yet posted) orcomplete
Before adding a video: open the file in Google Drive, click Share, and set it to Anyone with the link can view. The Blotato API needs to fetch the video from this URL.
Workflow Step by Step
1. Schedule Trigger
Set to run daily at your preferred time. This kicks off the entire chain automatically.
2. Google Sheets โ Get Row
Connect to your content sheet. Set the resource to Sheets, operation to Get Rows, add a filter for status = pending, and under Options โ enable Return Only First Matching Row. This ensures only one video is processed per run.
3. Code Node โ Reformat URL
Google Drive share URLs use the format drive.google.com/file/d/FILE_ID/view. Blotato's API needs a direct download URL. The code node rewrites it to the correct format. The JavaScript is provided in the downloadable template โ paste it in and don't change it.
4. Set Node โ Prepare for Publish
Create a Set node in JSON mode with your Blotato configuration:
blotato_api_keyโ Your key from Blotato Settings โ API- Account IDs for each platform (Instagram ID, Twitter ID, LinkedIn ID, etc.) โ from Blotato Settings, each connected account has a Copy Account ID button
Rename this node Prepare for Publish. Keeping credentials here in one node means you only update them in one place.
5. HTTP POST โ Upload Media to Blotato
- Method: POST to Blotato's upload endpoint (from their API docs)
- Header:
blotato-api-keyโ drag from Prepare for Publish node - Body: JSON with
urlโ drag the rewritten URL from the Code node
This uploads your video to Blotato's servers and returns a hosted URL that Blotato uses when posting to each platform.
6. HTTP POST per Platform
Create one HTTP request node per platform. For each:
- Method: POST to the same Blotato create-post endpoint
- Header:
blotato-api-key - Body JSON:
accountId(platform-specific ID from step 4),text(drag description from Google Sheets),mediaUrls(the URL returned from the upload step)
For YouTube specifically, add a privacy field set to public. YouTube defaults to unlisted when posting via API โ you must explicitly set it to public.
7. Google Sheets โ Update Status
Add a Google Sheets node at the end. Operation: Update Row. Match on the ID column (drag ID from your original Sheets result). Update the status field to complete. This prevents the same video from being posted again tomorrow.
Connecting Your Social Accounts in Blotato
- Log into Blotato โ click the Settings icon (bottom left)
- For each platform, click Login with [Platform] and authorise access
- After authorising, each account shows a Copy Account ID button
- Copy all IDs at once into your notes, then paste them into the Set node
What to Do When You Want to Add Content
- Upload your video to Google Drive and copy the share link
- Add a new row to your Google Sheet: title, description, Drive URL, status = pending
- That's it โ the next scheduled run picks it up automatically
You don't need to use all nine platforms. In the n8n template, hover over any platform's HTTP request node and click the power icon to deactivate it. Deactivated nodes are skipped but stay in your workflow โ easy to re-enable when you're ready to expand.
Tools mentioned in this lesson: