# Post to TikTok from n8n with an AI agent

Source: https://postgale.com/guides/n8n/tiktok

Yes, an n8n workflow can post to TikTok through Postgale. Attach an MCP Client Tool node pointed at https://postgale.com/mcp to an n8n AI Agent node (or call the REST API from an HTTP Request node) with a Postgale API key, connect your TikTok account in Postgale once, and the agent can video and photo posts with creator settings, plus video analytics. A person can be required to approve every post, reply and message before it goes out.

## Can n8n post to TikTok?

Postgale is the secure layer for AI agents on social media. MCP (Model Context Protocol) is the open standard that lets AI assistants such as Claude and Cursor use outside tools. An MCP server is what they connect to. n8n does not reach TikTok on its own; with Postgale connected it gets tools for the TikTok accounts you connected and nothing else.

| Task | What Postgale does |
| --- | --- |
| Publish video | Direct Post from a URL with title (up to 2,200 characters), privacy level, comment / duet / stitch toggles and the branded-content disclosures TikTok requires. |
| Publish photos | 1 to 35 photos with a title (90 characters), description (4,000) and cover photo. |
| Creator settings | Reads the creator’s allowed privacy levels and interaction defaults before every publish, so the agent only offers valid options. |
| Status | Polls TikTok until the post is live or failed and reports the TikTok video id and share URL. |
| Analytics | The account’s public videos with views, likes, comments and shares; profile information. |

## What do you need?

- A TikTok account; the creator signs in once with TikTok and grants video publishing.
- A Postgale workspace, and a sign-in or an API key for the agent.
- A video (MP4) or 1 to 35 photos on a public HTTPS URL that TikTok accepts (TikTok verifies the media domain).
- n8n, set up as below (Workflows with the HTTP Request or MCP Client Tool node).

## Step 1: connect your TikTok account

1. Create a Postgale workspace and open Dashboard → Accounts.
2. Choose Connect TikTok and sign in with the account you own, on the platform’s own page. Postgale stores the tokens encrypted and refreshes them.

## Step 2: connect n8n to Postgale

| Use | Node | When |
| --- | --- | --- |
| Fixed steps | HTTP Request | Your workflow knows what to post (a new blog post, a product update, a form submission). Call `POST /api/v1/posts` with the content and the account ids. |
| An agent decides | MCP Client Tool attached to an AI Agent node | The model reads the input (an inbox, a brief, a trigger) and chooses among Postgale’s tools: list accounts, upload media, create or schedule posts, read and reply to comments and messages. |

## How do I set up the MCP Client Tool node?

1. In Postgale, open Dashboard → API keys, create a key and copy it (it starts with `sk_` and is shown once). Connect the social accounts the agent may use under Dashboard → Accounts.
2. Add an AI Agent node with your model, and attach an MCP Client Tool node to it.
3. In the MCP Client Tool node set the endpoint to `https://postgale.com/mcp`, the transport to HTTP streamable, and authentication to a Bearer or Header Auth credential carrying `Authorization: Bearer sk_…`.
4. Leave the tool list on “all” to start, or select only the read-only tools until you trust the workflow.
5. Give the agent a system prompt that states the account ids it may use and whether it must save drafts or may schedule.

> Ask your agent: “You manage the Northline accounts in Postgale (ids in the context). For each new blog post in the input, draft one Instagram caption with the cover image and one Threads post, save them as drafts, and reply with the Postgale post ids.”

## How do I set up the HTTP Request node?

1. In Postgale, open Dashboard → API keys, create a key and copy it (it starts with `sk_` and is shown once). Connect the social accounts the agent may use under Dashboard → Accounts.
2. In n8n create a credential of type Header Auth with name `Authorization` and value `Bearer sk_…` (your key).
3. Add an HTTP Request node: method POST, URL `https://postgale.com/api/v1/posts`, authentication Header Auth with that credential, body type JSON:

HTTP Request body (JSON):
```json
{
  "content": "{{ $json.caption }}",
  "scheduledFor": "{{ $json.publishAt }}",
  "platforms": [
    {
      "accountId": "acc_instagram",
      "platformSpecificData": {
        "mediaUrl": "{{ $json.imageUrl }}"
      }
    },
    {
      "accountId": "acc_threads"
    }
  ]
}
```

1. Get the account ids once with a GET to `https://postgale.com/api/v1/accounts` using the same credential.
2. Optional: send an `x-request-id` header built from your trigger id, so a re-run of the workflow returns the same post instead of a duplicate.
3. To know when the post is live, add a Webhook node and register its URL in Postgale (Dashboard → Webhooks); Postgale sends post.published or post.failed, signed with HMAC-SHA256.

## What can I ask the agent to do on TikTok?

Check the connection first: “Which TikTok accounts are connected in Postgale?” Then, in plain language:

> Ask your agent: “Upload this video to TikTok with the caption “Behind the scenes of the fall shoot”. I’ll choose the privacy setting.”

> Ask your agent: “Write three caption options for this TikTok clip and save the best one as a draft.”

> Ask your agent: “How did our last five TikTok videos do? Show views and likes.”

POST /api/v1/posts (TikTok):
```json
{
  "content": "Three fabrics, one cut.",
  "platforms": [
    {
      "accountId": "acc_tiktok",
      "platformSpecificData": {
        "mediaUrl": "https://media.example.com/fall-drop.mp4",
        "privacyLevel": "PUBLIC_TO_EVERYONE",
        "disableComment": false,
        "disableDuet": true,
        "disableStitch": true
      }
    }
  ],
  "publishNow": true
}
```

## Which TikTok rules does Postgale enforce?

- Privacy level is mandatory and must be one of the levels TikTok returns for that creator. There is no default.
- Comment, duet and stitch are off unless the person turns them on, as TikTok’s guidelines require. Stitch stays off when the creator’s settings disable it.
- Branded content cannot be posted as private. Postgale rejects that combination before calling TikTok.
- Media must come from a URL prefix TikTok has verified for the app; unverified URLs are refused early with the reason.
- Until TikTok has audited the app, TikTok only allows private posts, to private accounts, for a limited number of creators per day. Postgale applies that rule and explains it instead of letting the post fail silently.
- Access tokens last 24 hours and refresh tokens rotate; Postgale refreshes before expiry and stores the rotated token.

## How do I keep a person in the loop?

- Approval: tick “Hold posts from this app for approval” when you sign in, or in the Postgale dashboard require approval for the API key the agent uses (or for the whole workspace, or one account). Posts then wait as pending approval; comment replies and moderation, direct messages, WhatsApp sends and edits to live posts wait in the same queue. A person approves, edits or rejects each one in Dashboard → Approvals; the agent’s own key or sign-in cannot approve.
- Tool annotations: every Postgale tool declares whether it only reads, writes, or publishes live, deletes or spends. Clients that honour annotations ask before destructive tools run.
- Audit log: every write the agent makes is recorded with the key or the connected app, the action and the time.
- Revoking: each sign-in appears under Dashboard → Connected apps and each key under Dashboard → API keys; either can be revoked at any time.

## What can’t an agent do on TikTok through Postgale?

- Read or reply to TikTok comments, or send TikTok messages. Postgale’s TikTok integration covers publishing and video analytics.
- Publish publicly from an app TikTok has not audited yet. That restriction is TikTok’s and applies to every tool.
- Post from a URL on a domain TikTok has not verified for the app.

## Questions

### Can an n8n AI agent post to TikTok?

Yes, an n8n workflow can post to TikTok through Postgale. Attach an MCP Client Tool node pointed at https://postgale.com/mcp to an n8n AI Agent node (or call the REST API from an HTTP Request node) with a Postgale API key, connect your TikTok account in Postgale once, and the agent can video and photo posts with creator settings, plus video analytics. A person can be required to approve every post, reply and message before it goes out.

### Does an n8n AI agent see my TikTok password or tokens?

No. The account owner signs in on the platform’s own page once, and Postgale stores the resulting tokens encrypted. An n8n AI agent only holds a Postgale API key or sign-in, which you can revoke at any time.

### Can I approve what an n8n AI agent sends to TikTok before it goes live?

Yes. Turn on approval for the API key it uses, the account or the whole workspace. Posts, replies and messages then wait in the Postgale dashboard until a person approves, edits or rejects them; an n8n AI agent’s own access cannot approve.

### Can an n8n AI agent schedule TikTok posts?

Yes. Ask for a date and time; Postgale stores the post as scheduled and publishes it then, and reports the result (post.published or post.failed) on your webhook and in get_post.

## Related

- [n8n guide](https://postgale.com/guides/n8n)
- [TikTok for AI agents](https://postgale.com/integrations/tiktok)
- [n8n and Instagram](https://postgale.com/guides/n8n/instagram)
- [n8n and Facebook](https://postgale.com/guides/n8n/facebook)
