Generate post
generate_postGenerate one social media post (a single image, a carousel, or a short video) from the workspace's brand plan, and save it as a design with a draft post. Nothing is published.
Inputs: workspace_key; optional topic, channel (default instagram_post), content_type (image, carousel, or video; default image), slide_count (carousels only: 2 to 10 slides, default 4; passing it implies a carousel), brand_plan_schedule_id (a campaign id from create_campaign or list_campaigns; omit for a standalone post), and post_at (ISO 8601; default one day from now).
Carousels: set the number of slides with slide_count, not in the topic. The carousel has exactly that many slides, or generation fails with the reason. Story channels and campaigns under strict brand control can't make carousels.
Video: the instagram_reel, tiktok_post, and youtube_short channels always produce a video, whatever content_type is given. A video is a vertical (9:16) clip of about 8 to 12 seconds. It is either an animated clip (one generated image turned into a single clip of about 8 seconds, with no audio) or a scripted video (three short shots joined together, about 12 seconds, which may include a voiceover and captions when the workspace has them turned on). Which of the two is made is set by the campaign's content strategy; it cannot be chosen here.
Generation runs in the background, and videos take longer than images. The tool returns a content id at once; pass it to get_generated_post to get the result, which for a video includes the MP4 link. Requires an active brand plan.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"workspace_key": "<workspace_key>"
},
"name": "generate_post"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional. What the post should be about (the brief / subject). If omitted, a topic is drawn from the schedule. | |
| channel | No | Target channel. Defaults to 'instagram_post'. | |
| post_at | No | Optional ISO 8601 datetime to schedule the draft for. | |
| slide_count | No | Carousels only: how many slides (2-10, default 4). Implies content_type carousel. | |
| content_type | No | Format to generate. Defaults to 'image'. 'video' produces a short vertical video. Ignored for instagram_reel, tiktok_post, and youtube_short, which always produce video. | |
| workspace_key | Yes | Key of the workspace to act in. Call list_workspaces to see the workspaces you have access to and their keys. | |
| brand_plan_schedule_id | No | Optional campaign (schedule) id to attach this post to. Omit for a standalone post. |