manage_social_media
Manage social media comments, publishing and scheduling on Instagram (ds_id IGI, default), LinkedIn pages (ds_id LIP) and Google Business Profile (GMB); writes may return a link the user must approve; to analyse, query ds_id IGI (get media_id there), IGPD2 or LIP (update_id is the number in a share- or ugcPost- media_id; include today, e.g. last_7_days_inc, for new posts). LinkedIn media_id: share-, ugcPost- or the post URN; comment ids come from list_comments. GMB account_id is a location from accounts_discovery; reviews are its comments; an owner reply shares its review's id, and delete removes only the reply. Workflows: supermetrics_guide mode social_publishing. AI images: always generate them in creative_picker first so the user reviews them, then publish its upload_ref; send media_prompt(s) only if the user explicitly said they don't need to review. Actions and their parameters (all take ds_id): list_comments(account_id, media_id (omit on GMB); limit, cursor) | comment(account_id, message; media_id OR comment_id to reply) | moderate_comment(account_id, comment_id; hidden true/false (Instagram) OR delete true) | publish(account_id, content_type IMAGE/VIDEO/CAROUSEL/STORY on Instagram, TEXT/LINK/IMAGE/CAROUSEL on LinkedIn, TEXT/IMAGE on GMB; caption, alt_text, title, link_url; media_url OR upload_ref (creative_picker uploads, or AI-generates with preview; existing saved images: campaign_and_resource_get resource_type assets, ds_id IGI, without opening the picker) OR media_prompt (only if the user declined to review AI images), CAROUSEL: media_urls/media_prompts, STORY sequence: frames, on_failure; style, reference_image; platform_options (Instagram, GMB); publish_at, timezone, spacing_minutes; best Instagram time: IGI online_followers by hour; space one account's scheduled posts 5+ minutes apart, as Instagram throttles bursts) | update_post(account_id, media_id, comments_enabled OR scheduled_id with publish_at/timezone/caption/alt_text/platform_options) | cancel_scheduled(scheduled_id) | status(job_id [+wait_seconds] OR scheduled_id OR approval_ref OR quota+account_id (Instagram); none lists scheduled posts, on every platform without ds_id: account_id, state, limit, cursor). Scheduled posts, jobs and approvals are found by id, without ds_id. publish and scheduled update_post take validate_only; repeating the same publish or comment within 15 minutes returns the first result instead of writing twice. Follow each result's next_action.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "manage_social_media"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ds_id | No | IGI (Instagram, default), LIP (LinkedIn page) or GMB (Google Business Profile location) | |
| limit | No | 1-50 | |
| quota | No | status: publishing quota left (needs account_id) | |
| state | No | status listing filter; default scheduled. Lists posts made with publish_at only | |
| style | No | Shared look/subject for AI images | |
| title | No | Post title, where the platform has one | |
| action | Yes | ||
| cursor | No | next_cursor from the previous page | |
| delete | No | moderate_comment: true deletes the comment | |
| frames | No | STORY sequence, in order | |
| hidden | No | moderate_comment: hide (true) or unhide (false) | |
| job_id | No | ||
| caption | No | ||
| message | No | comment text | |
| alt_text | No | Screen-reader description; IMAGE posts (LinkedIn also CAROUSEL, on every image) | |
| link_url | No | LINK: the URL to share | |
| media_id | No | Published post id, as a string (LinkedIn: as returned, or update_id) | |
| timezone | No | IANA zone for a publish_at without offset; ask the user | |
| media_url | No | Public https URL | |
| account_id | No | Account id on the platform, as a string | |
| comment_id | No | Comment id, as a string | |
| media_urls | No | CAROUSEL | |
| on_failure | No | frames: if one fails; default stop | |
| publish_at | No | Omit on publish to post now; else 5 min to 75 days ahead, allowing for approval: e.g. 2026-11-20T09:00 with timezone, or with offset | |
| upload_ref | No | From creative_picker; comma-separated for CAROUSEL | |
| approval_ref | No | apr_… from an approval_required result | |
| content_type | No | Instagram: IMAGE, VIDEO (reel), CAROUSEL, STORY; LinkedIn: TEXT, LINK, IMAGE, CAROUSEL; GMB: TEXT, IMAGE | |
| media_prompt | No | AI image skipping review: only if the user explicitly declined review; else creative_picker | |
| scheduled_id | No | ||
| wait_seconds | No | status of a job: wait up to this for it | |
| media_prompts | No | CAROUSEL AI images; only if the user declined review, else creative_picker upload_refs | |
| validate_only | No | Run every check without creating anything | |
| reference_image | No | https URL or upload_ref of a subject AI images keep | |
| spacing_minutes | No | frames: minutes between scheduled frames | |
| comments_enabled | No | update_post on a published post | |
| platform_options | No | IGI IMAGE/VIDEO: user_tags (x, y: 0-1), collaborators, location_id; CAROUSEL: collaborators; STORY: user_tags; VIDEO only: the other IGI keys. GMB: topic_type, event (EVENT/OFFER), offer (OFFER), call_to_action (not OFFER) | |
| consistent_characters | No | frames: reuse frame 1 as reference (default on) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| error | No | ||
| notes | No | ||
| success | Yes | ||
| business_context | No |