Skip to main content
Glama

Update repurposing workflow

update_repurposing_workflow
Destructive

Changes a Repurposing workflow's settings, or pauses it (enabled: false) and turns it back on (enabled: true). Pass any subset of the settings. The source account and kind can't be changed; create a new workflow instead. Pausing a scheduled ('existing') workflow takes stop_action for the posts it scheduled that haven't gone out yet. A new-posts workflow turned back on starts from now, so posts made while it was paused aren't reposted. Returns the updated workflow.

Input Schema

NameRequiredDescriptionDefault
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.
timezoneNoScheduled workflows: IANA time zone the slots are in, e.g. 'Europe/Helsinki'.
stop_actionNoScheduled workflows: what happens to posts it scheduled that haven't gone out yet. 'drafts' (default) keeps them in the library as drafts, 'remove' deletes them. Published posts always stay.
workflow_idYesThe workflow. Get it from list_repurposing_workflows.
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.
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.
target_connection_idsNoConnections 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. Changed2 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"
      +]
  2. 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."
  3. 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."
  4. Added

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: pause/resume semantics, what happens to scheduled posts via stop_action, that published posts remain, and that re-enabled new-posts workflows start from now without reposting missed posts. This is valuable disclosure for a destructive mutation.

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

Conciseness5/5

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

Front-loads the tool's job, then covers key caveats in a few dense sentences with no filler. Appropriate for a 15-parameter destructive update tool.

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?

With full schema coverage, annotations, and no output schema required, the description is complete enough. It also states the return value and the most important irreversible behaviors.

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

Parameters4/5

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

Schema descriptions already cover all parameters, so the baseline is 3. The description adds cross-parameter meaning: immutable source/kind fields, pause state transitions, and scheduled-vs-new-posts behavior for enabled and stop_action.

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?

Uses a specific verb and resource and immediately distinguishes the operation as changing settings or pausing/resuming an existing workflow. Its scope is clear against create/delete/list workflow siblings.

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

Usage Guidelines4/5

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

Explains that any subset of settings may be passed and that source account/kind cannot be changed, directing the user to create a new workflow instead. It does not explicitly compare against every adjacent tool, but the main alternative condition is stated.

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.