n8n Social Media Automation: Schedule, Generate and Post Content
Plan posts in a spreadsheet, draft them with AI in your brand voice, approve them, and publish to X, LinkedIn, Facebook and more, on a schedule.
Most social media teams don’t struggle with ideas. They struggle with consistency: writing the same message four ways, remembering to post, and keeping a calendar that matches what actually went live.
n8n can run most of that routine for you. This guide shows a safe version: you plan, the workflow drafts and publishes, and a person approves every post.
Why automate social media with n8n
- One calendar, many platforms. Write once, publish everywhere, adapted to each platform.
- You choose the AI model and the rules. Your voice, your topics, your limits.
- It connects to what you already use. Google Sheets, Airtable, Notion, Slack, email.
- No per-post platform fees. You pay your AI provider for usage, plus your n8n hosting.
The trade-off: you own the setup and the guardrails. Automation that posts publicly deserves care.
What you’ll build
A workflow that:
- Reads your content calendar.
- Picks posts that are due and approved.
- Drafts a version for each platform in your brand voice.
- Sends the drafts to a person for a quick check.
- Publishes to your platforms.
- Records the result (link, time, status) back in the calendar.
How it works
Content calendar Schedule Draft per Human Publish Log result
(Google Sheets) → Trigger → platform (AI) → approval → X / LinkedIn / → back to the
status: approved picks due in brand voice (Slack/email) Facebook / ... calendar row
Step-by-step build
1. Build the content calendar
A spreadsheet is enough. One row per post, with these columns:
| Column | Purpose |
|---|---|
| Topic or idea | What the post is about |
| Key points | Facts, links, offers to include |
| Platforms | X, LinkedIn, Facebook… |
| Publish at | Date and time |
| Status | idea, approved, published, failed |
| Result link | Filled in by the workflow |
Only rows with status approved and a past publish time will be picked up. That one rule keeps you in control.
2. Add a Schedule Trigger
Run the workflow every 15 or 30 minutes. Each run reads the sheet, filters for approved rows that are due, and processes them one at a time. A frequent, short check beats one big daily run, because posts go out at the time you chose.
3. Write the brand brief
Draft quality depends on a clear brief. Store it once and send it with every request:
You write social media posts for ACME Store, a friendly online shop for home goods.
Voice: warm, simple, a little playful. No hype words. No emojis except one at most.
Always: mention one concrete benefit. Include the link when provided.
Never: make price promises, health claims or comparisons with competitors.
For each platform write one post:
- X: under 260 characters, one idea, no hashtags unless asked.
- LinkedIn: 3 short paragraphs, professional tone, a question at the end.
- Facebook: 2 to 3 sentences, conversational.
Return JSON with one field per platform.
The “Never” list is as important as the voice. Add anything your legal or brand team cares about.
4. Draft per platform with AI
Send the topic, key points and brand brief to your AI model, and ask for one version per platform. Asking for a separate version per platform, with its own length and tone, avoids the “same text everywhere” look that reads as automated.
Optionally generate an image with an image model, or attach one you already prepared. For anything with people, products or logos, use approved assets.
5. Add a human approval step
Send the drafts to Slack or email with the key details, and wait for approve or edit. This is the safety net for tone, facts and timing.
Once you trust the drafts, you can relax approval for low-risk content (for example, sharing your own blog posts), but keep it for anything promotional, sensitive or time-critical.
6. Publish
Use the platform nodes. Typical options include X, LinkedIn, Facebook Pages and Telegram, and Instagram business posts through Facebook. Connect each account with its own credentials, and publish the platform-specific version of the draft.
Some platforms require a business or page account and a developer app with specific permissions, and they enforce rate limits. Set these up before you test.
7. Log the result
After publishing, write back to the calendar row: status published, the time, and the post link. On failure, set the status to failed and send yourself a message with the reason. The calendar then always shows what really happened.
8. Handle failures on purpose
Expect occasional problems: expired tokens, rate limits, platform downtime. Add a failure branch that marks the row, alerts you, and doesn’t retry endlessly. A visible failed post beats a silent missing one, and a double post is worse than a late one.
Keeping it safe and on-brand
- Approve before publishing. Start with a human check on everything.
- Protect your accounts. Use a dedicated connection with only the permissions you need, and rotate tokens when people leave.
- Respect each platform’s rules. Read the automation and API policies, and follow any rules about disclosing AI-generated content where they apply.
- Don’t post what you can’t verify. AI can invent statistics and quotes. Only include facts you supplied.
- Vary your content. Mix formats and don’t repost identical text across platforms.
- Keep a kill switch. A single “pause” cell in the sheet that stops the workflow is worth the five minutes it takes.
Common problems and fixes
| Problem | Likely cause | Fix |
|---|---|---|
| Posts sound generic | Thin brand brief | Add real examples and a “never” list |
| The same post went out twice | Row not marked after publishing | Update the status right after a successful post |
| Nothing was published | Status or time filter too strict | Check the “approved” and “due” conditions |
| Publishing fails suddenly | Expired token or permissions changed | Reconnect the credential |
| Posts get cut off | Platform length limits | Ask for a character limit per platform |
| Images are missing | The image step failed | Make the image optional and post text only on failure |
When to use this approach, and when not to
Great for:
- A steady, planned content calendar.
- Repurposing blog posts and announcements across platforms.
- Small teams that need consistency without a full-time social manager.
Better done by hand or with a dedicated tool when:
- You need real-time community management and replies. Automation is for publishing, not conversation.
- You rely on advanced analytics and collaboration features that social scheduling tools provide.
- Your content is highly sensitive or regulated.
Next steps
- Create the content calendar with five real posts.
- Build steps 1 to 5 and send the drafts to Slack only (don’t publish yet).
- Review a week of drafts, refine the brand brief, then connect one platform.
Want a head start? Describe it in AI to Workflow and import the draft into your Nitro:
Every 15 minutes, read my Google Sheet content calendar and find rows with status
"approved" whose publish time has passed. For each, write an X post under 260
characters and a LinkedIn post in my brand voice with AI, send both drafts to #social
on Slack for approval, then publish to X and LinkedIn and update the row with status
"published" and the post link. If anything fails, set the status to "failed" and
message me.
You may also like our guide to building an AI chatbot with n8n.
If you don’t have an n8n instance yet, start a Nitro and have your first scheduled workflow running today.
Frequently asked questions
Can n8n post to social media automatically?
Yes. n8n has nodes for platforms such as X, LinkedIn, Facebook Pages and Telegram, and Instagram business posting works through Facebook. You need a connected account and API access on each platform.
Do I need API access or approval from each platform?
Usually yes. Each platform has its own developer app, permissions, rate limits and sometimes a review process. Check the current rules before you build.
Should AI posts be published without review?
No. Add an approval step, especially at first. AI drafts can be off-brand, repetitive or factually wrong, and a person should approve anything public.
How do I keep posts on-brand?
Put your voice, topics to avoid and a few real examples in the system message, and give the model the same brand brief on every run.
How often should I schedule posts?
As often as your calendar says. The workflow only publishes rows marked as approved and due, so frequency is controlled by your sheet, not by the automation.
Will posting identical text everywhere hurt reach?
It can look lazy. Adapt each post to the platform's length and tone, and vary the format instead of copy-pasting.