n8n Node
Post to Instagram, TikTok, YouTube, X, Facebook and LinkedIn from any n8n workflow.
1. Install
In your n8n instance go to Settings → Community Nodes → Install and enter the package name:
n8n-nodes-chat33Requires n8n with community nodes enabled (self-hosted or n8n Cloud with verified community nodes).
2. Create the credential
- In Chat33, open Settings → API Keys and create a key (default scopes are enough: accounts:read, posts:read, posts:write, media:write).
- In n8n, add a Chat33 API credential: leave Base URL as https://chat33.io and paste the API key.
- Click Test. It verifies the key against GET /api/v1/accounts.
3. Resources & operations
| Resource | Operations | Notes |
|---|---|---|
| Account | Get Many | Lists your connected channels; also powers the account dropdowns |
| Post | Create, Validate, Get, Get Many, Delete, Duplicate, Get Logs | Create/Validate select accounts from a live dropdown; Validate is a dry run (nothing is published) |
| Media | Upload | Binary file from the workflow (up to 500MB) or public URL ingestion (videos up to 4GB for TikTok; YouTube 2GB, X 512MB, Instagram/Facebook 1GB, LinkedIn 200MB) |
Configure Platform Settings (node 0.2.0+): the account dropdown stores channel IDs, so the node can't tell which platforms you picked. Tick them here and only those collections appear. Every platform also takes a Caption that overrides the shared text for that network alone, so one node can send a different message to each.
YouTube Settings: tick YouTube on every YouTube post. Made for Kids is mandated by YouTube/FTC and the post is rejected without it. Privacy defaults to public — set it if you want unlisted or private. Also carries title, description, tags, category and subscriber notification. Scheduled posts ignore the privacy choice: they upload as private and YouTube flips them at the scheduled time.
TikTok Settings: leave TikTok unticked and the video lands in the account's drafts instead of publishing. Set Publish Mode to Direct Post to publish, which also requires a privacy level. Options you don't set are left alone, so comments, duets and stitches stay enabled unless you turn them off. Commercial disclosure and the AI-generated label map to TikTok's Content Posting API compliance fields for you.
Instagram Settings: First Comment is posted immediately after publishing — where hashtags usually go so they stay out of the caption.
X Settings: Post as Thread splits the text on a separator and chains each chunk as a reply, plus reply permissions.
LinkedIn Settings: visibility (anyone on LinkedIn, or connections only), an article URL to share as a link card, and media title/description. Posts go to the member's own profile. Company Pages aren't supported yet.
Every option the API accepts now has a typed field, so Additional Options → Platform Config (JSON) is only needed for anything added to the API after the node — schema in the OpenAPI explorer.
4. Example: publish a video from a webhook
Three nodes: Webhook → Chat33 (Media Upload) → Chat33 (Post Create).
- Webhook: method POST, receives JSON { "videoUrl": "...", "caption": "..." }.
- Chat33 → Media → Upload: Input Type URL, File URL ={{ $json.body.videoUrl }}. Returns a hosted media URL.
- Chat33 → Post → Create: pick accounts from the dropdown, Text ={{ $('Webhook').item.json.body.caption }}, Media URLs ={{ $json.url }}, Additional Options → Media Type video, plus TikTok/YouTube settings as needed.
Trigger it:
curl -X POST https://your-n8n.example.com/webhook/my-path \
-H "Content-Type: application/json" \
-d '{"videoUrl": "https://example.com/video.mp4", "caption": "Hello from n8n 🚀"}'The response contains the created post(s) with status QUEUED. Chat33 publishes within a minute. Add a Post → Get node or set a callbackUrl to track the final status.
Media limits
- Videos: up to 4GB via URL ingestion for TikTok (mp4, mov, webm); other platforms cap lower at publish time: YouTube 2GB, X 512MB, Instagram/Facebook 1GB, LinkedIn 200MB
- Files over 500MB destined for TikTok upload via chunked transfer automatically, with no URL/domain involvement, just a slower publish.
- Images: up to 20MB (jpeg, png, webp, gif). Instagram/Facebook cap at 8MB, LinkedIn at 10MB, X at 5MB
- Binary uploads from the workflow itself: up to 500MB (node 0.1.2+, which uploads straight to storage instead of through the API). Above that, host the file anywhere public (https) and use URL mode.
- Scheduled posts keep a copy. When you schedule a post whose media sits on your own host, Chat33 copies the file into its storage shortly after the post is created, so a post scheduled weeks out still publishes even if your original link expires or the file is deleted. Immediate posts skip this: they publish within about two minutes, so the link is fetched while it's certainly still there.
Troubleshooting
Insufficient scope: recreate the API key with default scopes, or add the missing scope in Settings → API Keys.
TikTok DIRECT_POST requires a privacy level: add TikTok Settings on the Post Create node and pick a privacy level the account allows.
File too large: see media limits above; compress the video or use URL mode.