Skip to main content
Glama

update_automation

Change a comment-to-DM automation: pause or resume it (status), new keywords or match, a new DM text or public replies, new limits, or move it to another post (post_id, instagram_media_id or facebook_post_id). Only the fields you pass change. The platform cannot change: to move to another channel (Instagram, the Facebook Page or X), create a new automation. Turning an X automation on (status 'active') needs X DMs on for the workspace, else 409 x_dms_off. A 'completed' automation starts again when its limits or trigger change.

Input Schema

NameRequiredDescriptionDefault
nameNoA label for the automations list, e.g. 'Free guide'.
matchNoword (default): the keyword stands on its own ('guide', 'Guide!' match; 'linkedin' does not match 'link'). contains: the keyword appears anywhere. any: every comment or message with text (ask the user before using it).
scopeNoFor the comment trigger (Instagram and Facebook; an X automation has no post): 'post' (default) = one post (pass post_id, instagram_media_id or facebook_post_id), 'next_post' = the next post the workspace publishes on this platform, 'any' = every post of the account or Page.
statusNo'paused' stops it without deleting it; 'active' resumes it (on X only while X DMs are on for the workspace).
dm_textNoThe DM sent to the person (max 1000 characters), once per person. On Facebook it lands in Messenger. On X, OmniSocials adds the line 'Reply STOP to stop automatic messages.' under it. Required on create. Confirm the text with the user before creating the automation: it goes out in the account's name.
post_idNoFor scope 'post' (Instagram and Facebook): the OmniSocials post id (from list_posts) that goes to the automation's platform. A scheduled post starts listening once it is live. One automation per post and platform: a post that goes to Instagram and Facebook can have one of each.
stop_atNoStop at this time (ISO 8601). null = no end.
keywordsNoKeywords that start the automation (up to 20, matched case-insensitively), e.g. ["guide", "link"]. Required unless match is 'any'.
platformNoWhere the automation runs: 'instagram' (default) = the connected Instagram account, 'facebook' = the connected Facebook Page (the DM lands in Messenger), 'x' = the connected X account (it answers DMs only; see create_automation). instagram_media_id implies 'instagram', facebook_post_id implies 'facebook'. It cannot change after create.
triggersNoWhat starts the automation. 'comment' (default on Instagram and Facebook) = a comment on an Instagram post or reel, or on a Facebook Page post; 'dm' = a keyword in a DM to the Instagram account, in a Messenger message to the Facebook Page, or in a DM to the X account; 'story_reply' = a keyword in a reply to an Instagram story (Instagram only: Facebook has no story replies). On X only 'dm' exists, and it is the default there. One automation can listen to several.
max_sendsNoStop after this many DMs (the automation becomes 'completed'). null = no limit.
automation_idYesThe automation id (from list_automations).
public_repliesNoOptional public replies posted under the comment (one is picked at random per comment), e.g. ["Sent you a DM!", "Check your inbox"]. Comment trigger only (Instagram and Facebook; X has none). An empty array turns the public reply off.
facebook_post_idNoFor scope 'post' on Facebook: the id of a Facebook Page post that was NOT published through OmniSocials ({page-id}_{post-id}, or the post id alone). OmniSocials reads it from Facebook to check it belongs to the connected Page. Implies platform 'facebook'. Pass only one of post_id, instagram_media_id or facebook_post_id.
instagram_media_idNoFor scope 'post' on Instagram: the numeric Instagram media id of a post or reel that was NOT published through OmniSocials. OmniSocials reads it from Instagram to check it belongs to the connected account. Pass only one of post_id, instagram_media_id or facebook_post_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / properties / stop_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / stop_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Changed8 schema fields changed
    • changedInput schema / properties / dm_text / description
      Previous value: -"The DM sent to the person (max 1000 characters), once per person. On Facebook it lands in Messenger. Required on create. Confirm the text with the user before creating the automation: it goes out in the account's name."New value: +"The DM sent to the person (max 1000 characters), once per person. On Facebook it lands in Messenger. On X, OmniSocials adds the line 'Reply STOP to stop automatic messages.' under it. Required on create. Confirm the text with the user before creating the automation: it goes out in the account's name."
    • changedInput schema / properties / platform / description
      Previous value: -"Where the automation runs: 'instagram' (default) = the connected Instagram account, 'facebook' = the connected Facebook Page (the DM lands in Messenger). instagram_media_id implies 'instagram', facebook_post_id implies 'facebook'. It cannot change after create."New value: +"Where the automation runs: 'instagram' (default) = the connected Instagram account, 'facebook' = the connected Facebook Page (the DM lands in Messenger), 'x' = the connected X account (it answers DMs only; see create_automation). instagram_media_id implies 'instagram', facebook_post_id implies 'facebook'. It cannot change after create."
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "instagram",
      -  "facebook"
      -]New value: +[
      +  "instagram",
      +  "facebook",
      +  "x"
      +]
    • changedInput schema / properties / post_id / description
      Previous value: -"For scope 'post': the OmniSocials post id (from list_posts) that goes to the automation's platform. A scheduled post starts listening once it is live. One automation per post and platform: a post that goes to Instagram and Facebook can have one of each."New value: +"For scope 'post' (Instagram and Facebook): the OmniSocials post id (from list_posts) that goes to the automation's platform. A scheduled post starts listening once it is live. One automation per post and platform: a post that goes to Instagram and Facebook can have one of each."
    • changedInput schema / properties / public_replies / description
      Previous value: -"Optional public replies posted under the comment (one is picked at random per comment), e.g. [\"Sent you a DM!\", \"Check your inbox\"]. Comment trigger only. An empty array turns the public reply off."New value: +"Optional public replies posted under the comment (one is picked at random per comment), e.g. [\"Sent you a DM!\", \"Check your inbox\"]. Comment trigger only (Instagram and Facebook; X has none). An empty array turns the public reply off."
    • changedInput schema / properties / scope / description
      Previous value: -"For the comment trigger: 'post' (default) = one post (pass post_id, instagram_media_id or facebook_post_id), 'next_post' = the next post the workspace publishes on this platform, 'any' = every post of the account or Page."New value: +"For the comment trigger (Instagram and Facebook; an X automation has no post): 'post' (default) = one post (pass post_id, instagram_media_id or facebook_post_id), 'next_post' = the next post the workspace publishes on this platform, 'any' = every post of the account or Page."
    • changedInput schema / properties / status / description
      Previous value: -"'paused' stops it without deleting it; 'active' resumes it."New value: +"'paused' stops it without deleting it; 'active' resumes it (on X only while X DMs are on for the workspace)."
    • changedInput schema / properties / triggers / description
      Previous value: -"What starts the automation. 'comment' (default) = a comment on an Instagram post or reel, or on a Facebook Page post; 'dm' = a keyword in a DM to the Instagram account, or in a Messenger message to the Facebook Page; 'story_reply' = a keyword in a reply to an Instagram story (Instagram only: Facebook has no story replies). One automation can listen to several."New value: +"What starts the automation. 'comment' (default on Instagram and Facebook) = a comment on an Instagram post or reel, or on a Facebook Page post; 'dm' = a keyword in a DM to the Instagram account, in a Messenger message to the Facebook Page, or in a DM to the X account; 'story_reply' = a keyword in a reply to an Instagram story (Instagram only: Facebook has no story replies). On X only 'dm' exists, and it is the default there. One automation can listen to several."
  3. Changed7 schema fields changed
    • changedInput schema / properties / dm_text / description
      Previous value: -"The DM sent to the person (max 1000 characters), once per person. Required on create. Confirm the text with the user before creating the automation: it goes out in the account's name."New value: +"The DM sent to the person (max 1000 characters), once per person. On Facebook it lands in Messenger. Required on create. Confirm the text with the user before creating the automation: it goes out in the account's name."
    • addedInput schema / properties / facebook_post_id
      Added value: +{
      +  "description": "For scope 'post' on Facebook: the id of a Facebook Page post that was NOT published through OmniSocials ({page-id}_{post-id}, or the post id alone). OmniSocials reads it from Facebook to check it belongs to the connected Page. Implies platform 'facebook'. Pass only one of post_id, instagram_media_id or facebook_post_id.",
      +  "type": "string"
      +}
    • changedInput schema / properties / instagram_media_id / description
      Previous value: -"For scope 'post': the numeric Instagram media id of a post or reel that was NOT published through OmniSocials. OmniSocials reads it from Instagram to check it belongs to the connected account. Pass post_id OR instagram_media_id."New value: +"For scope 'post' on Instagram: the numeric Instagram media id of a post or reel that was NOT published through OmniSocials. OmniSocials reads it from Instagram to check it belongs to the connected account. Pass only one of post_id, instagram_media_id or facebook_post_id."
    • addedInput schema / properties / platform
      Added value: +{
      +  "description": "Where the automation runs: 'instagram' (default) = the connected Instagram account, 'facebook' = the connected Facebook Page (the DM lands in Messenger). instagram_media_id implies 'instagram', facebook_post_id implies 'facebook'. It cannot change after create.",
      +  "enum": [
      +    "instagram",
      +    "facebook"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / post_id / description
      Previous value: -"For scope 'post': the OmniSocials post id (from list_posts) that goes to Instagram. A scheduled post starts listening once it is live. One automation per post."New value: +"For scope 'post': the OmniSocials post id (from list_posts) that goes to the automation's platform. A scheduled post starts listening once it is live. One automation per post and platform: a post that goes to Instagram and Facebook can have one of each."
    • changedInput schema / properties / scope / description
      Previous value: -"For the comment trigger: 'post' (default) = one post (pass post_id or instagram_media_id), 'next_post' = the next Instagram post the workspace publishes, 'any' = every post of the account."New value: +"For the comment trigger: 'post' (default) = one post (pass post_id, instagram_media_id or facebook_post_id), 'next_post' = the next post the workspace publishes on this platform, 'any' = every post of the account or Page."
    • changedInput schema / properties / triggers / description
      Previous value: -"What starts the automation. 'comment' (default) = a comment on an Instagram post or reel; 'dm' = a keyword in a DM to the account; 'story_reply' = a keyword in a reply to a story. One automation can listen to several."New value: +"What starts the automation. 'comment' (default) = a comment on an Instagram post or reel, or on a Facebook Page post; 'dm' = a keyword in a DM to the Instagram account, or in a Messenger message to the Facebook Page; 'story_reply' = a keyword in a reply to an Instagram story (Instagram only: Facebook has no story replies). One automation can listen to several."
  4. Added

TDQS

A4.5/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: partial-update semantics, the 409 x_dms_off failure mode, and the non-obvious state transition where a 'completed' automation restarts when limits or trigger change. Annotations only supply the readOnly/destructive/openWorld flags, so this extra context is genuinely additive, though it does not describe the response or how the DMs already sent are affected.

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?

Front-loaded with the updateable fields, then constraints, then the error/state caveats — no filler sentences. It is dense and somewhat long for a description, but each sentence (partial update, platform immutability, 409, completed restart) contributes distinct information.

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

Completeness4/5

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

For a 15-parameter mutation tool with no output schema, the description covers mutation semantics, a prerequisite failure, and a status edge case. It leaves unaddressed what the call returns and whether moving/max_sends changes affect an in-flight automation, which keeps it from a 5.

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 coverage is 100%, so the baseline is 3; the description still adds value by grouping post_id/instagram_media_id/facebook_post_id as the mutually exclusive 'move to another post' path and by framing status as pause/resume rather than a raw enum. It stops short of explaining the interaction between scope and those ids beyond a pointer.

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?

Opens with a concrete verb+resource ('Change a comment-to-DM automation') and immediately enumerates the changeable dimensions (status, keywords/match, dm_text, limits, target post). This clearly separates it from create_automation and delete_automation in the sibling list.

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?

States partial-update semantics ('Only the fields you pass change'), an explicit exclusion with a redirect ('The platform cannot change: to move to another channel ... create a new automation'), and a precondition for a specific use (status 'active' on X needs X DMs on, else 409 x_dms_off).

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.

Resources