Back to Docs
Promote Product Workflow

Make Content and Publish to Social

Generate multi-format social content (video, slideshow, carousel, single photo), wire it to the right sales channel, and publish to TikTok, Instagram, YouTube, and X.

Updated 2026-05-31

Goal

Once a listing is live, turn its product into per-channel social content and drive viewers to the right place to buy.

What's Inside Make Content

The Make Content surface (in-app: Dashboard → Promote → Make Content) generates four formats from a single listing. Every format lives on the same row — the format you pick at generation time decides what the worker produces and what gets billed.

FormatWhat it isCredits
VideoAI shoppable video — scene planning, voiceover, music, assembly40 (social_video)
SlideshowYour photos with Ken Burns motion + music. No AI generation12 (social_slideshow)
CarouselMulti-image swipeable post (no video)4 (social_carousel)
Single PhotoOne image post1 (social_single)

The in-app primary button is dynamic: it reads Make Video / Make Slideshow / Make Carousel / Make Single Photo based on the format you selected.

Format × Channel Support

Not every format makes sense on every social channel. Vaybel enforces these combinations at publish time:

FormatTikTokInstagramYouTubeX
Videoyesyesyesyes
Slideshowyesyesyesyes
Carouselyesyesyes
Single Photoyesyes

Asking the publisher to put a carousel on YouTube, or a single photo on TikTok, is a clean error — pick a different format or a different channel.

Sales-Channel-Aware CTAs

Every post is anchored to one sales channel — the destination viewers should buy from. Vaybel picks it automatically (you can override on a per-post basis):

  • TikTok posts drive to TikTok Shop when the product is live there. TikTok Shop is exclusive — when a TikTok post drives to TikTok Shop it cannot name any other destination.
  • Other channels (Instagram, YouTube, X) — and TikTok when there is no live TikTok Shop listing — drive to the best non-TikTok marketplace: Shopify if connected, otherwise Etsy.

You can preview the resolved destinations for a listing before generating posts via the MCP tool content.resolve_sales_channels, and inspect the CTA-language policy for any (social, sales) pair via content.get_cta_policy.

Per-channel publishers can't all carry a clickable link in the post body. Vaybel uses the right mechanic for each:

ChannelLink mechanic
XClickable link in the post itself
YouTubeLink in the video description
InstagramManual bio link
TikTokTikTok Seller Center product anchor (TikTok Shop), or manual bio link

content.get_cta_policy returns the active link_mechanic and an allow_caption_link flag so a caption-generation LLM never tries to paste a URL where the platform will silently strip it.

End-to-End Flow

Step

Pick a listing and a format

Start from a published listing. Open Make Content, pick Video / Slideshow / Carousel / Single Photo. For carousel / single, attach the source images. Submit — the worker dispatches and bills only on success.

Step

Wait for the asset

Video and slideshow produce an MP4 (5–15 minutes typical). Carousel and single resolve in seconds — they're pass-throughs of the source images.

Step

Generate per-channel posts

Pick the social channels you want — any subset of TikTok / Instagram / YouTube / X (subject to the format × channel matrix above). Vaybel writes one caption + hashtag set per channel, with the right CTA copy and link mechanic for the resolved sales channel.

Step

Edit captions if needed

Every per-channel post is editable while it's in PENDING or FAILED — caption text, hashtags, buy URL. Once a post is PUBLISHING or PUBLISHED it's frozen.

Step

Publish

Hand the post(s) to the per-channel publisher. TikTok takes optional posting settings (privacy level, comment / duet / stitch toggles); Instagram, YouTube, and X take the assembled payload as-is. Each publish call returns a publish_url and external_id per channel.

Driving This From An Agent (MCP)

The full surface is wrapped as MCP tools — every step above is callable from any MCP-capable client. See the Tool Reference for full signatures.

StepMCP toolScope
Generate the assetcontent.generatecontent:write
Poll statuscontent.get_status / content.waitcontent:read
Preview destinationscontent.resolve_sales_channelscontent:read
Read CTA policycontent.get_cta_policycontent:read
Generate per-channel captionscontent.generate_social_postssocial_post:write
List persisted postscontent.list_social_postssocial_post:read
Edit a post pre-publishcontent.update_social_postsocial_post:write
Publish to channelscontent.publish_social_postssocial_post:write

A PAT that needs the whole loop should carry content:read, content:write, social_post:read, and social_post:write. Tokens are pinned to one organization — agents can't reach into another org's content items or posts.

Next Read