Why n8n for social media automation
Most social media scheduling tools charge per account, per platform, per seat. If you manage multiple brands or clients, costs add up fast. n8n is open-source and self-hostable, so you control the infrastructure. And instead of being locked into whatever features a SaaS tool offers, you build the exact workflow you need.
The missing piece is the social media layer. Connecting directly to each platform's API (TikTok's Content Posting API, Instagram Graph API, YouTube Data API) means handling separate OAuth flows, different upload formats, and platform-specific quirks. That is where Upload-Post's social media API comes in: one HTTP request posts to all ten platforms. In n8n, that is a single HTTP Request node.
If you prefer code over visual workflows, check our Python automation guide instead. For other no-code tools, see the Make.com guide or the Zapier guide.
Set up Upload-Post in n8n
1. Get your API key
Create a free account at app.upload-post.com, generate an API key from the API Keys page, and connect your social accounts (create a profile like "mybrand" and link your TikTok, Instagram, YouTube, and other accounts).
2. Create credentials in n8n
In n8n, go to Credentials and create a new Header Auth credential. Set the header name to Authorization and the value to Apikey your-api-key-here. You will reference this credential in every HTTP Request node.
3. Test with cURL first
Before building the workflow, verify your key works. This cURL uploads a video to TikTok and Instagram:
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "video=@/path/to/video.mp4" \
-F "title=My first automated post" \
-F "user=mybrand" \
-F "platform[]=tiktok" \
-F "platform[]=instagram"
In n8n, an HTTP Request node replicates this exactly. Set the method to POST, the URL to https://api.upload-post.com/api/upload, authentication to Header Auth with your credential, and body type to Multipart Form Data. Then add fields for video, title, user, and platform[].
For the full integration walkthrough, see the n8n integration guide.
Post a video to multiple platforms simultaneously
This is the core n8n social media workflow: take a video and publish it to multiple platforms in one step. The HTTP Request node sends the video to Upload-Post, which distributes it to TikTok, Instagram Reels, YouTube Shorts, and LinkedIn simultaneously.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "title=Check out our new feature" \
-F "user=mybrand" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "platform[]=youtube" \
-F "platform[]=linkedin" \
-F "privacy_level=PUBLIC_TO_EVERYONE" \
-F "media_type=REELS" \
-F "privacyStatus=public" \
-F "tags[]=product" \
-F "tags[]=demo"
In n8n, each -F flag becomes a field in the Multipart Form Data body. Set the video field type to "File" and reference a binary property from an upstream node (like Read Binary File or an HTTP download). The remaining fields are plain text strings.
You can customize captions per platform using tiktok_title, instagram_title, youtube_title, and linkedin_title fields. The title field acts as the default for any platform that does not have a specific override.
Want a ready-made version? Import the manual multi-platform publish template.
Schedule posts from a Google Sheet
One of the most popular n8n social media workflows: use a Google Sheet as your content calendar. Set up your spreadsheet with columns like video_url, title, platforms, scheduled_date, and status. Then build an n8n workflow that reads unprocessed rows and calls Upload-Post.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "title=Tuesday tip: automate your social media" \
-F "user=mybrand" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "scheduled_date=2025-07-22T09:00:00Z" \
-F "timezone=America/New_York"
The scheduled_date parameter accepts ISO-8601 format. Add a timezone to make sure it publishes at the right local time. In n8n, the Google Sheets node reads each row and the HTTP Request node maps the columns to these API parameters.
After the upload call, use a Google Sheets Update node to mark the row as "published" so it does not get posted again. For more on scheduling, see the scheduling guide. You can also queue posts using add_to_queue=true instead of a specific date.
Grab the ready-made template: Google Sheets scheduling template.
Auto-repurpose long videos into Shorts, Reels, and TikToks
This workflow takes a long-form video (like a YouTube video or webinar recording), uses AI to identify the best segments, splits them into short clips, and publishes each clip to short-form platforms. The n8n workflow connects Whisper (for transcription), Gemini (for identifying highlights), an FFmpeg node or the Upload-Post FFmpeg API (for cutting), and then the Upload-Post API for publishing.
The result: drop a 30-minute video into the workflow and get five optimized clips posted to TikTok, Instagram Reels, and YouTube Shorts automatically.
For a deep dive on the repurposing strategy, read how to repurpose YouTube videos into Shorts, Reels, and TikToks. For the ready-made n8n workflow, import the long videos to Shorts template.
Turn podcast episodes into social clips
Podcasters and media companies use this workflow to extract the most quotable moments from each episode, generate captions and vertical video, and post the clips to social. The n8n flow typically looks like this:
- Trigger on new episode (RSS feed or Google Drive upload)
- Transcribe with Whisper or Deepgram
- Send the transcript to Gemini or GPT-4 to pick 3 to 5 highlight segments
- Cut each segment with FFmpeg (or the Upload-Post FFmpeg API)
- Generate captions and hashtags with AI
- Post each clip to TikTok, Instagram Reels, and YouTube Shorts via Upload-Post
Two ready-made templates cover this exact flow:
Bulk publish from Google Drive
If your content team uploads videos to a shared Google Drive folder, this workflow watches that folder and auto-posts new files. In n8n, the Google Drive Trigger node fires when a new file appears. A Download File node fetches the binary, and the HTTP Request node sends it to Upload-Post.
This is ideal for agencies managing multiple clients or bulk uploading video content. Each subfolder can map to a different Upload-Post profile (client), so the workflow routes content to the right social accounts automatically.
You can also post photos and carousels from Drive using the /api/upload_photos endpoint, or text-only posts using /api/upload_text. The workflow structure stays the same, just change the HTTP Request URL and form fields. For posting to LinkedIn specifically, text posts work well for thought leadership content alongside your video clips.
Templates for this:
AI-generated captions and content
n8n has native OpenAI and Google Gemini nodes, which means you can generate captions, hashtags, and even full post copy before publishing. A common pattern:
- Upload a video or provide a topic
- An AI node generates platform-optimized captions (short and punchy for TikTok, professional for LinkedIn, SEO-rich for YouTube)
- The HTTP Request node posts the video with those AI-generated captions to each platform
# In n8n, the OpenAI node output feeds into the HTTP Request node.
# The equivalent API call with AI-generated captions looks like:
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: Apikey your-api-key-here" \
-F "[email protected]" \
-F "user=mybrand" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "platform[]=youtube" \
-F "platform[]=linkedin" \
-F "tiktok_title=POV: you automated your entire content pipeline #n8n #automation" \
-F "instagram_title=We built a workflow that posts for us. Here is how." \
-F "youtube_title=How We Automated Social Media Posting with n8n and Upload-Post" \
-F "youtube_description=Full walkthrough of our n8n automation workflow..." \
-F "linkedin_title=We replaced 3 SaaS tools with one n8n workflow. Here is the setup."
In n8n, you would use expressions like {{ $json.tiktok_caption }} to reference the output from the AI node in each field of the HTTP Request node.
Related templates:
- GPT-4 content generation with Telegram approval
- AI-powered news monitoring and social post generator
- YouTube content with Gemini AI
- Blog articles to social with Gemini
Ready-made n8n templates
You do not have to build from scratch. We maintain a library of n8n templates that you can import in one click. Here are the most relevant ones for social media automation:
| Template | Use case |
|---|---|
| Bulk auto-publish with AI | Batch upload multiple videos with AI-generated captions |
| Google Sheets scheduling | Content calendar in a spreadsheet, auto-publish on schedule |
| Google Drive to social | Watch a Drive folder, auto-post new videos |
| Long videos to Shorts | AI splits long videos into clips, posts to TikTok/Reels/Shorts |
| Podcasts to TikTok | Extract podcast highlights, generate clips, auto-post |
| GPT-4 + Telegram approval | AI generates posts, you approve via Telegram before publishing |
| AI video generation | Generate videos with AI and publish automatically |
| Agency automation | Multi-client social media management for agencies |
Browse the full collection at n8n templates.
Frequently asked questions
Is n8n free?
n8n is open-source and free to self-host. You can run it on your own server with Docker or install it via npm. They also offer a paid cloud version if you prefer not to manage infrastructure. Either way, you get the same workflow builder.
Can I self-host n8n?
Yes. That is one of the main advantages over tools like Zapier or Make.com. Self-hosting means your data stays on your infrastructure, there are no execution limits, and you have full control over the environment. A small VPS (2 GB RAM) is enough for most n8n social media workflows.
How many platforms can I post to?
Upload-Post supports 10 platforms: TikTok, Instagram, YouTube, Facebook, LinkedIn, X (Twitter), Threads, Pinterest, Reddit, and Bluesky. You can post to any combination in a single API call. See the individual platform guides for TikTok, Instagram, and YouTube.
Do I need coding skills?
No. n8n is a visual workflow builder. You drag and drop nodes, configure them in a UI, and connect them with lines. The HTTP Request node handles the Upload-Post API call without writing code. If you do know how to code, you can use n8n's Code node for advanced logic or use the Python SDK directly.
What are the API rate limits?
Rate limits depend on your social media posting API plan. The free tier includes 10 uploads per month. Paid plans scale up from there. If you hit the limit, the API returns a 429 status code with your current usage. In n8n, you can handle this with an IF node that checks the response status and retries after a delay.
Can I use n8n with Airtable instead of Google Sheets?
Absolutely. n8n has a native Airtable node. The workflow is the same: read records, call Upload-Post, update the record status. See the Airtable integration guide for details, or check the Drive + AI + Airtable template.
How does n8n compare to Make.com or Zapier for social media posting?
n8n is open-source and self-hostable, so there are no per-execution fees. Make.com and Zapier are cloud-only and charge based on how many operations you run. For high-volume social media workflows (posting dozens of videos per day), n8n on a $10/month VPS will cost a fraction of what Make or Zapier would charge. All three integrate with Upload-Post through HTTP Request nodes, so the API calls are identical.
What to build next
Once your first n8n social media workflow is running, consider expanding it:
- Add error handling with IF nodes that check for 429 (rate limit) or 401 (auth) responses and send Slack/email alerts
- Use the
async_upload=trueparameter for large files so your workflow does not time out waiting for the upload to finish - Chain multiple Upload-Post calls to post different content types: a video via
/api/upload, a carousel via/api/upload_photos, and a text post via/api/upload_text, all in one workflow run - Connect analytics tools downstream to track which posts perform best, then feed that data back into your AI caption generation prompts