Skip to main content
Glama

Create repurposing workflow

create_repurposing_workflow

Creates a Repurposing workflow that reposts a source's posts to other connected accounts. The source is exactly one of source_connection_id (an Instagram or Facebook Page account) or source_integration 'twitch' (the user's connected Twitch channel, see Settings > Integrations: clips go out in the vertical version when Twitch has one, with the clip title as the caption; either kind, and kind 'existing' can use publish_order 'most_viewed') or source_integration 'rss' with feed_url (an Apple Podcasts link or any RSS/Atom feed, such as a podcast or blog; YouTube channels are not supported: each item is posted as its video when the feed has one, else its cover art, with the title as the caption and the item's link under it on X, Bluesky, Threads, Mastodon, LinkedIn, Facebook, Telegram, Discord, Tumblr and Reddit, as the pin link on Pinterest and as a Learn more button on Google Business Profile; Instagram, TikTok and Snapchat get the title only). kind 'new_posts' (default) reposts each new post: publish_mode 'immediate' publishes it right away, 'draft' (the API default) saves it to the library. kind 'existing' reposts older posts on a weekly timetable and needs schedule_slots and timezone; it schedules posts into the library up to 30 days ahead, where they can be edited or cancelled. Each repost counts as one upload on the plan. The original caption is used (first line as the title where a platform has one), Instagram and Facebook video covers are carried over, and ShortSync's own posts to the source are never reposted. Returns the created workflow.

Input Schema

NameRequiredDescriptionDefault
kindNo'new_posts' (default) for each new post as it's published; 'existing' to repost older posts on a timetable. Can't be changed later.
nameNoOptional name for the workflow (max 80 characters), e.g. 'Reels to TikTok'. null or empty shows the default label for its kind.
enabledNofalse pauses the workflow, true turns it back on.
feed_urlNoWith source_integration 'rss': an Apple Podcasts show link or an RSS/Atom feed URL. YouTube channel links are refused. Feeds are checked about every 15 minutes.
timezoneNoScheduled workflows: IANA time zone the slots are in, e.g. 'Europe/Helsinki'.
include_fromNoScheduled workflows: only repost source posts published on or after this date (ISO 8601).
publish_modeNoNew-posts workflows only: 'immediate' publishes each repost right away, 'draft' saves it to the library for review. Scheduled ('existing') workflows always schedule.
workspace_idYesWorkspace to create it in. Get one from list_workspaces.
content_typesNoWhich post types to repost. Default: all three.
include_untilNoScheduled workflows: only repost source posts published on or before this date (ISO 8601).
publish_orderNoScheduled workflows: work through the source's posts newest or oldest first, or (Twitch only) most viewed first. Default newest.
caption_suffixNoOptional text added to every repost's caption (max 500 characters). null clears it.
schedule_slotsNoScheduled ('existing') workflows: publishing times per weekday, keys '0' (Sunday) to '6' (Saturday), values 'HH:mm' lists, up to 5 a day. Example: { "1": ["10:00"], "3": ["10:00", "16:00"] }.
target_optionsNoPer-target options: { pinterest?: { board_id, board_name? }, reddit?: { subreddit }, discord?: { channel_ids: [] }, google_business?: { location_ids: [] }, caption_mode?: 'title_and_description' | 'split' | 'title', settings?: { <platform>: { ... } } }. Board ids come from list_pinterest_boards, channel ids from list_discord_channels. caption_mode: on YouTube, Pinterest, Reddit and Tumblr the title is the caption's first line; the description is the whole caption (title_and_description), the caption without its first line (split) or empty (title). settings: per-platform settings in the same camelCase shape as update_post's platform_settings (e.g. { youtube: { privacyStatus: 'unlisted', categoryId: '20' }, tiktok: { privacyLevel: 'SELF_ONLY' } }); anything unset uses the member's saved upload settings (YouTube defaults to public). Per-post fields (titles, alt text, subtitles, polls) are ignored.
idempotency_keyNoOptional client-generated key (e.g., a UUID) to make retries safe. Identical calls with the same key within 10 minutes return the original result instead of running the write twice.
source_integrationNo'twitch': repost clips from the user's connected Twitch channel (needs Twitch connected in Settings > Integrations). 'rss': post items from the feed in feed_url. Either way every new item (kind 'new_posts') or older items on a timetable (kind 'existing'). Can't be changed later.
source_connection_idNoThe Instagram or Facebook Page connection to repost from (list_platform_connections). Omit when source_integration is set. Can't be changed later.
target_connection_idsYesConnections to repost to (ids from list_platform_connections), not the source. Pinterest needs target_options.pinterest.board_id and Reddit needs target_options.reddit.subreddit.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / feed_url / description
      Previous value: -"With source_integration 'rss': a YouTube channel or playlist link (youtube.com/@name), an Apple Podcasts show link or an RSS/Atom feed URL. Not a single video. Feeds are checked about every 15 minutes."New value: +"With source_integration 'rss': an Apple Podcasts show link or an RSS/Atom feed URL. YouTube channel links are refused. Feeds are checked about every 15 minutes."
  2. Changed3 schema fields changed
    • addedInput schema / properties / feed_url
      Added value: +{
      +  "description": "With source_integration 'rss': a YouTube channel or playlist link (youtube.com/@name), an Apple Podcasts show link or an RSS/Atom feed URL. Not a single video. Feeds are checked about every 15 minutes.",
      +  "type": "string"
      +}
    • changedInput schema / properties / source_integration / description
      Previous value: -"Repost clips from the user's connected Twitch channel instead of a platform account: every new clip (kind 'new_posts') or older clips on a timetable (kind 'existing'). Needs Twitch connected in Settings > Integrations. Can't be changed later."New value: +"'twitch': repost clips from the user's connected Twitch channel (needs Twitch connected in Settings > Integrations). 'rss': post items from the feed in feed_url. Either way every new item (kind 'new_posts') or older items on a timetable (kind 'existing'). Can't be changed later."
    • changedInput schema / properties / source_integration / enum
      Previous value: -[
      -  "twitch"
      -]New value: +[
      +  "twitch",
      +  "rss"
      +]
  3. Changed3 schema fields changed
    • changedInput schema / properties / publish_order / description
      Previous value: -"Scheduled workflows: work through the source's posts newest or oldest first. Default newest."New value: +"Scheduled workflows: work through the source's posts newest or oldest first, or (Twitch only) most viewed first. Default newest."
    • changedInput schema / properties / publish_order / enum
      Previous value: -[
      -  "newest",
      -  "oldest"
      -]New value: +[
      +  "newest",
      +  "oldest",
      +  "most_viewed"
      +]
    • changedInput schema / properties / source_integration / description
      Previous value: -"Repost every new clip from the user's connected Twitch channel instead of a platform account. Needs Twitch connected in Settings > Integrations; kind must be 'new_posts'. Can't be changed later."New value: +"Repost clips from the user's connected Twitch channel instead of a platform account: every new clip (kind 'new_posts') or older clips on a timetable (kind 'existing'). Needs Twitch connected in Settings > Integrations. Can't be changed later."
  4. Changed3 schema fields changed
    • changedInput schema / properties / source_connection_id / description
      Previous value: -"The Instagram or Facebook Page connection to repost from (list_platform_connections). Can't be changed later."New value: +"The Instagram or Facebook Page connection to repost from (list_platform_connections). Omit when source_integration is set. Can't be changed later."
    • addedInput schema / properties / source_integration
      Added value: +{
      +  "description": "Repost every new clip from the user's connected Twitch channel instead of a platform account. Needs Twitch connected in Settings > Integrations; kind must be 'new_posts'. Can't be changed later.",
      +  "enum": [
      +    "twitch"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "workspace_id",
      -  "source_connection_id",
      -  "target_connection_ids"
      -]New value: +[
      +  "workspace_id",
      +  "target_connection_ids"
      +]
  5. Changed2 schema fields changed
    • addedInput schema / properties / name
      Added value: +{
      +  "description": "Optional name for the workflow (max 80 characters), e.g. 'Reels to TikTok'. null or empty shows the default label for its kind.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedInput schema / properties / target_options / description
      Previous value: -"Per-target options: { pinterest?: { board_id, board_name? }, reddit?: { subreddit }, discord?: { channel_ids: [] }, google_business?: { location_ids: [] }, caption_mode?: 'title_and_description' | 'title' | 'description', settings?: { <platform>: { ... } } }. Board ids come from list_pinterest_boards, channel ids from list_discord_channels. caption_mode: on YouTube, Pinterest, Reddit and Tumblr the title is the caption's first line and this says where the whole caption goes. settings: per-platform settings in the same camelCase shape as update_post's platform_settings (e.g. { youtube: { privacyStatus: 'unlisted', categoryId: '20' }, tiktok: { privacyLevel: 'SELF_ONLY' } }); anything unset uses the member's saved upload settings (YouTube defaults to public). Per-post fields (titles, alt text, subtitles, polls) are ignored."New value: +"Per-target options: { pinterest?: { board_id, board_name? }, reddit?: { subreddit }, discord?: { channel_ids: [] }, google_business?: { location_ids: [] }, caption_mode?: 'title_and_description' | 'split' | 'title', settings?: { <platform>: { ... } } }. Board ids come from list_pinterest_boards, channel ids from list_discord_channels. caption_mode: on YouTube, Pinterest, Reddit and Tumblr the title is the caption's first line; the description is the whole caption (title_and_description), the caption without its first line (split) or empty (title). settings: per-platform settings in the same camelCase shape as update_post's platform_settings (e.g. { youtube: { privacyStatus: 'unlisted', categoryId: '20' }, tiktok: { privacyLevel: 'SELF_ONLY' } }); anything unset uses the member's saved upload settings (YouTube defaults to public). Per-post fields (titles, alt text, subtitles, polls) are ignored."
  6. Changed1 schema field changed
    • changedInput schema / properties / target_options / description
      Previous value: -"Where reposts land on targets that need a destination: { pinterest?: { board_id, board_name? }, reddit?: { subreddit }, discord?: { channel_ids: [] }, google_business?: { location_ids: [] } }. Board ids come from list_pinterest_boards, channel ids from list_discord_channels."New value: +"Per-target options: { pinterest?: { board_id, board_name? }, reddit?: { subreddit }, discord?: { channel_ids: [] }, google_business?: { location_ids: [] }, caption_mode?: 'title_and_description' | 'title' | 'description', settings?: { <platform>: { ... } } }. Board ids come from list_pinterest_boards, channel ids from list_discord_channels. caption_mode: on YouTube, Pinterest, Reddit and Tumblr the title is the caption's first line and this says where the whole caption goes. settings: per-platform settings in the same camelCase shape as update_post's platform_settings (e.g. { youtube: { privacyStatus: 'unlisted', categoryId: '20' }, tiktok: { privacyLevel: 'SELF_ONLY' } }); anything unset uses the member's saved upload settings (YouTube defaults to public). Per-post fields (titles, alt text, subtitles, polls) are ignored."
  7. Added

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It reveals critical operational constraints not found in the schema or annotations, such as the limit of 'one upload per plan' and the policy that ShortSync's own posts to the source are never reposted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long, which is necessitated by the tool's complexity, but the information is highly dense and well-ordered, grouping logic by source and workflow type efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a multi-platform, multi-mode, scheduled, and constrained workflow creator, the description is exceptionally complete and addresses almost all edge cases and limitations an agent might encounter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema is 100% covered, the description provides crucial context for the function of specific parameters like caption generation rules (X vs Instagram) and the constraints of 'target_options' (e.g., 'list_platform_connections').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The purpose is clearly stated: to create a Repurposing workflow that repost source content to connected accounts. It immediately defines the core function and operational scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description acts as a decision tree, clearly outlining the constraints and necessary inputs based on source type (IG/FB, Twitch, RSS) and workflow kind (new_posts, existing). This prevents common configuration errors.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.