Generate Carousel and Schedule It
postnitro_generate_and_scheduleConvenience tool: generates a post with AI (postType 'CAROUSEL' by default, 'IMAGE' for a single-image post, or 'VIDEO' for a video), waits for it to finish, then creates a scheduled post that attaches the resulting design. May take 30-180 seconds (longer for a rendered video).
templateId, brandId, presetId, and responseType are optional if saved via postnitro_set_defaults.
The design that gets attached is the completed carousel's design ID (result.designId from the generation output) — NOT the generation job ID. You normally don't set designId; it's resolved automatically. Pass designId only to attach a pre-existing design instead of the freshly generated one.
If scheduling fails after the carousel is already generated (e.g. an invalid platform-settings combination), this tool returns the generated designId so you can fix the inputs and retry with postnitro_create_scheduled_post — WITHOUT regenerating (which would burn credits again).
Provide the scheduling fields (status, scheduledAt, selectedAccounts, captions, and any required per-platform settings) just as you would for postnitro_create_scheduled_post.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | 'DRAFT' or 'SCHEDULED' | |
| brandId | No | Brand ID (optional if saved via postnitro_set_defaults) | |
| designId | No | Attach a pre-existing design instead of the freshly generated one. Leave unset to use the generated carousel's design. | |
| postType | No | 'CAROUSEL' (default) generates a multi-slide carousel; 'IMAGE' generates a single-image post; 'VIDEO' generates a video whose slides are its scenes. The rest of the request is identical, except VIDEO also accepts videoSettings and only supports responseType 'MP4' or 'DESIGN'. | CAROUSEL |
| presetId | No | AI preset ID (optional if saved via postnitro_set_defaults) | |
| templateId | No | Template ID (optional if saved via postnitro_set_defaults) | |
| postContent | No | Caption text keyed by platform. Required unless a designId is set; at least one key must be non-empty. Hashtags are extracted automatically. | |
| requestorId | No | Optional custom tracking ID | |
| scheduledAt | Yes | ISO-8601 datetime string. Must be in the future. | |
| aiGeneration | Yes | ||
| postSettings | No | Video render settings, used when any resolved postType is 'reel'. Optional: when omitted, the API fills each field from the videoSettings the attached design was generated with, falling back to 30 seconds with no audio. Same shape as a VIDEO post's videoSettings. | |
| responseType | No | Output format. 'DESIGN' (default) creates the design with no rendered file — fastest, and enough for scheduling/editing. Use 'PDF' or 'PNG' when you need a rendered file back, or 'MP4' for a rendered video (postType 'VIDEO' only). Optional if saved via postnitro_set_defaults. | |
| videoSettings | No | Video render settings — postType 'VIDEO' only. Required when responseType is 'MP4'. Scheduling a reel reuses these automatically, so you usually don't also need postSettings. | |
| generateImages | No | Optional AI image generation — include this object to enable it, omit it for no images. When included, `context` is required and you (the agent) must author it from the post. Best-effort: the post still COMPLETES if images fail or aren't permitted (free plan / exhausted AI-image quota); check the GENERATE_IMAGES step via postnitro_check_status. Requires a paid plan, consumes the org's AI-image quota (separate from post credits), and adds latency. | |
| selectedAccounts | No | Social-account IDs to publish to (from postnitro_list_social_accounts) | |
| tiktokPostSettings | No | Required when a TikTok account is selected AND a designId is set. When SCHEDULED: if isBrandedContent is true, at least one of isYourBrand/isThirdPartyBrand must be true, and isBrandedContent cannot be true with privacyLevel SELF_ONLY. | |
| threadsPostSettings | No | Required when a Threads account is selected AND a designId is set | |
| linkedinPostSettings | No | Required when a LinkedIn account is selected. A designId is required when status is SCHEDULED (text-only LinkedIn posts can only be drafts). | |
| instagramPostSettings | No | Required when an Instagram account is selected AND a designId is set |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| post | Yes | A scheduled post or draft | |
| message | Yes | Confirmation message | |
| success | Yes | ||
| designId | Yes | The design attached to the scheduled post | |
| warnings | No | Non-fatal issues worth surfacing to the user (e.g. AI image generation did not complete) | |
| embedPostId | Yes | The generation/import job ID | |
| scheduledPostId | Yes | ID of the created scheduled post |