Guides

How to automate social media posting with n8n or Zapier

Watch a Notion database or Google Sheet and auto-schedule posts with n8n or Zapier through one MCP endpoint. The token setup, the exact flow, and when a Claude agent beats a pipeline.

Dan Koe··8 min read

To automate social media posting with n8n or Zapier, point either tool at one MCP endpoint (https://mcp.eden.so/mcp), authenticate with a personal access token, and build a flow that watches your content source and calls a scheduling tool. The classic version watches a Notion database or Google Sheet and auto-schedules every row marked ready into your posting queue across X, LinkedIn, Threads, Instagram, TikTok, and Substack. This guide shows both builds, plus the honest question underneath: when do you want a fixed pipeline, and when do you want an agent?

Full disclosure: we make Eden, which is the scheduler these flows post into. The n8n and Zapier mechanics are standard MCP client setup and work the same way for any remote MCP server.

How the connection works

n8n and Zapier run on servers, so they cannot sign in through a browser the way Claude does. Instead they authenticate with a personal access token:

  1. In Eden, open Settings → Integrations → API access and generate a token. Name it after the tool, keep the scope on Read & write (a read-only token can only look, not schedule), and copy the eden_pat_ value immediately. It is shown once; Eden stores only a hash.
  2. Point your automation tool at https://mcp.eden.so/mcp with that token as a bearer credential.

That is the whole handshake. No client ID, no OAuth app, no webhook signing. Treat the token like a password: anyone holding it can read and post on your behalf, and revoking it (same settings card) cuts access instantly.

Once connected, the tool sees Eden's MCP tools. The two you will use most: eden_list_schedules reads your connected accounts, timezone, and next free queue slots, and eden_schedule_post queues a post (or stages a draft with draft: true).

The n8n build: watch Notion, auto-schedule

n8n is the pick if you want branching, loops, or an AI agent step in the middle. The flow has three parts, and the full n8n guide has screenshots for each:

  1. Trigger on your content source. Use the Notion Trigger (or Sheets, Airtable, a form) to fire when a row's status flips to something like "Ready to schedule."
  2. Add the MCP Client Tool node. Endpoint https://mcp.eden.so/mcp, transport HTTP Streamable, authentication Bearer with your eden_pat_ token. Save it and n8n lists Eden's tools.
  3. Call eden_schedule_post with the row's content. A minimal call:
{
  "text": "Your post text, line breaks preserved",
  "platforms": ["twitter", "linkedin"],
  "scheduledAtIso": "2026-08-25T14:00:00Z"
}

Map text from the Notion property and the time from a date field, or leave the time out and Eden drops the post into your next free queue slot. Add draft: true if you want every automated post to land as a draft a human approves before it gets a publish time.

One important guard: polling triggers can fire twice on the same row. Pass the Notion page id as idempotencyKey and Eden returns the same post for the same key and content instead of creating a duplicate.

The Zapier build: same idea, fewer moving parts

Zapier is the pick if you want the no-code version and your flow is a straight line. Using the MCP Client by Zapier app (currently a beta feature):

  1. Choose your trigger. New Notion item, new spreadsheet row, form submission, or a plain schedule.
  2. Add MCP Client by Zapier as the action. Connect a new remote MCP server: URL https://mcp.eden.so/mcp, transport HTTP streamable, and paste the token when asked for a bearer token.
  3. Pick eden_schedule_post as the tool and map your trigger's fields into the same JSON shape as above. The same idempotencyKey and draft: true options apply.

The Zapier guide walks it click by click, and there is a Make version too.

Scheduling is not the ceiling, either. Through the same connection a flow can create and append to notes (a running ideas log), save links onto boards, and edit or reschedule queued posts. The model-facing tool list is the same one Claude uses.

Pipelines vs agents: an honest framing

n8n and Zapier build fixed pipelines: the same steps run in the same order every time a trigger fires. Claude with the same MCP connection is a conversational agent: it decides which tools to use, in what order, based on what you asked. These are different jobs, and picking the wrong shape is the usual reason automations disappoint.

  • Choose a pipeline (n8n or Zapier) if the work is repetitive and the judgment already happened. You write and approve posts in Notion; the machine's only job is moving them into the queue reliably, every time, unattended. Pipelines are cheap to run, never get creative, and fail loudly.
  • Choose an agent (Claude plus the MCP) if the work needs judgment in the moment: research what is worth posting, draft in your voice, react to what overperformed last week. Agents handle "figure out what to do" but you are present in the conversation; they are not unattended.
  • The strongest setup uses both. A weekly Claude session does the thinking (research the niche, draft the week, fill the Notion database), then the pipeline does the shipping. Same Eden queue at the end of both roads, so everything stays reviewable in one place.

The one thing neither replaces is the research layer. A pipeline schedules what you fed it, and a bare LLM guesses. What makes the agent side actually useful is that Eden is a social research MCP: the same connection that schedules can tell Claude which posts broke out in your niche this month, with scores. Our MCP server comparison maps that landscape.

Gotchas that bite first-time builders

  • Time must be a real timestamp. scheduledAtIso wants ISO format (or scheduledFor wants epoch milliseconds), not "tomorrow at 9". Convert your date field in a step before the call.
  • Instagram and TikTok need hosted media. Text-only posts work for X, Threads, LinkedIn, and Substack Notes. For the visual platforms, your flow must pass a publicly reachable image or video URL, not a local file path.
  • Threads need segments. For an X or Threads thread, pass segments with one entry per post. Long text without segments gets auto-split to fit the platform limit.
  • A permission error means your token is read-only. Generate a Read & write token and swap it in.

Frequently asked questions

Do I need to know how to code?

No. Zapier's build is entirely point-and-click, and the n8n build is node configuration plus field mapping. The only code-shaped thing is the small JSON body, and both guides give you a working one to copy.

Should I use n8n or Zapier?

Zapier if you want the fastest setup and your flow is trigger-then-action. n8n if you want branching, loops, self-hosting, or an AI agent node inside the flow. Both reach the identical Eden tools, so you can switch later without redoing the Eden side.

Can the automation post without any human review?

Yes, and that is the default if you pass a time or let posts take the next queue slot. If that makes you nervous, add draft: true so every automated post waits in drafts for approval. Either way, everything the flow creates is visible in Eden's scheduler.

How do I stop it from double-posting?

Pass a stable id from your trigger (like the Notion page id) as idempotencyKey. Eden treats the same key plus the same content as the same post and will not create a duplicate on re-runs.

Is the access token safe to use in a cloud tool?

The token is scoped to your account, shows its last-used time in Settings → Integrations → API access, and revokes instantly. Keep it in the tool's credential store rather than pasted into workflow text, and rotate it if it ever leaks.

Set up the token, wire one trigger, and let the queue fill itself. Start free, no card, connect your accounts, and your first auto-scheduled post can be live in the queue within the hour.