Import Content and Schedule It
postnitro_import_and_scheduleConvenience tool: creates a post from YOUR OWN content (import), waits for it to finish, then creates a scheduled post that attaches the resulting design. May take 15-60 seconds.
Set postType to 'CAROUSEL' (default) or 'VIDEO' and provide a 'slides' ARRAY, or 'IMAGE' and provide a single 'slide' OBJECT — this mirrors postnitro_import_carousel / postnitro_import_video / postnitro_import_image.
IMPORTANT: Call postnitro_get_import_template FIRST to see the exact slide structure and rules.
templateId, brandId, and responseType are optional if saved via postnitro_set_defaults.
The design attached is the imported design's ID (result.designId), resolved automatically. Pass designId only to attach a pre-existing design instead of the freshly imported one.
If scheduling fails after the design was already created (e.g. an invalid platform-settings combination), this tool returns the created designId so you can fix the inputs and retry with postnitro_create_scheduled_post — WITHOUT re-importing.
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 |
|---|---|---|---|
| slide | No | For postType 'IMAGE': a SINGLE slide object (not an array). Only 'heading' is required. Ignored for CAROUSEL. | |
| slides | No | For postType 'CAROUSEL' or 'VIDEO': an array of 3+ typed slides (exactly 1 starting_slide, ≥1 body_slide, exactly 1 ending_slide). For VIDEO each slide is a scene. Ignored for IMAGE. | |
| 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 imported one. Leave unset to use the imported design. | |
| postType | No | 'CAROUSEL' (default) imports a multi-slide carousel — provide 'slides' (an array). 'IMAGE' imports a single-image post — provide 'slide' (a single object). 'VIDEO' imports a video whose slides are its scenes — provide 'slides' (an array), plus videoSettings when rendering to MP4. | CAROUSEL |
| 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. | |
| 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 |