Prompt
(AI Agent node system prompt) Write one TikTok caption for a short video. Use the filename and the description field. First line is a hook under 60 characters, then one sentence, then 4 hashtags. Output only the caption. How to do it
- Connect TikTok and mint a key In https://app.socialhandoff.com, open Connections, connect TikTok, then open TikTok settings on the account and choose visibility, comment/duet/stitch, and commercial disclosure. Then create an agent key named n8n scoped to TikTok with draft permission.
- Set up the trigger Start with a trigger such as a new file in a Google Drive or S3 folder, take the shared link to the file, and write the caption with an AI Agent node.
- Import media by URL Add an HTTP Request node: POST https://app.socialhandoff.com/v1/media/import with JSON {"url": public https link, "alt": description} for the video or up to 35 photos. No multipart needed. Keep the id it returns for the next step.
- Create the post Add an HTTP Request node: POST https://app.socialhandoff.com/v1/posts with a bearer header and JSON body {"body": caption, "networks": ["tiktok"], "mode": "submit", "mediaIds": [the uploaded ids]}. The post lands in the approval inbox.
- Approve with the consent text The approval screen shows the visibility and interaction settings chosen in Connections and TikTok's consent text. Approve, and it publishes; a video is sent to TikTok in chunks.
Example draft
This is what 1,000 orders look like on packing day. Friday afternoons, 4 of us, and a very loud tape gun. #smallbusiness #packingorders #behindthescenes #ecommerce [Video: MP4 from the watched folder, vertical, uploaded as binary by the HTTP Request node]
Gotchas
- Put the video link in the import request, not in the post body. A link pasted into the caption is just text; only ids from POST /v1/media/import attach the video.
- TikTok refuses text-only posts. The agent can draft the caption first, but approval and scheduling are refused until a video or photos are attached.
- The import URL must be public https. A cloud storage link that needs sign-in fails the import; use a shared link or a presigned URL in the expression.
- Until TikTok audits your developer app, every post is private (visible only to the account), the posting account must be private, and only 5 accounts can post per day.
- Media: Every post needs one video or up to 35 photos. Text-only posts are not possible.
- Video upload: Videos upload in chunks of 5 to 64 MB; smaller files go in one piece. Maximum duration depends on the creator account.
- Photo posts: Up to 35 JPEG or WebP images, a title up to 90 characters, and a description up to 4,000 characters.
- Required choices: TikTok requires a visibility setting with no default, comment/duet/stitch toggles, and a commercial content disclosure.
Frequently asked questions
Why are my TikTok posts private?
TikTok limits unaudited developer apps to private posts. Submit your app for TikTok's audit to lift the restriction; until then, posts are visible only to the account.
Can I use the MCP Client Tool instead of HTTP Request?
Yes. The MCP Client Tool exposes attach_media and draft_post to the AI Agent node. The HTTP Request node is simpler when the workflow, not the model, decides which file to attach.
Can I post photos instead of a video?
Yes. A TikTok photo post takes up to 35 images. The domain serving them must be verified in the TikTok developer portal.