Social publishing and reviews
1. Choose your destination
Call social_getSocialMediaAccounts in the intended teamspace. Select the returned account IDs for the channels you want to use. Platform names alone are not account identifiers.
Prepare a LinkedIn and Instagram version of our launch announcement for the connected Acme accounts. Keep both as drafts.
2. Prepare channel-specific content
Read the brand kit, write the copy, and prepare any required media. Use persistent asset IDs where the tool expects media references. Check the current tool schema for each platform’s supported content and options; do not assume one payload works unchanged across all channels.
For LinkedIn document carousels, supply the PDF URL in additional.linkedin.document.url and send media: []. Use a fresh file_url from a ready PDF asset. The document field takes a URL, not an asset UUID.
3. Create and verify a draft
Use social_createSocialMediaPost with action: "draft". For example, these tool arguments create a text-only draft after you replace the account placeholder with a discovered ID:
Include your resolved space_id as well when targeting a teamspace. Save the response identifiers and retrieve the result through social_getSocialMediaDrafts. Use social_updateSocialMediaDraft for revisions to an existing draft.
Tags help organize drafts and posts. Discover them with social_listSocialMediaTags; create a missing tag with social_createSocialMediaTag before applying its returned identifier.
4. Collect review
Use social_createSocialMediaReviewBundle to group selected drafts for review. If your connection exposes social_addDraftsToSocialMediaReviewBundle, you can add more drafts to an existing bundle. Keep the bundle identifier and returned review link.
Put these three drafts into one review bundle and give me its review link. Leave the drafts unpublished.
Creating a review bundle is not the same as publishing its drafts. Share the returned link with the intended reviewers through your normal review process.
5. Schedule or queue
social_createSocialMediaPost supports draft, schedule, and add_to_queue. Queueing uses the account’s publishing queue; it is not an explicit publish-now action.
For a scheduled post, provide the target accounts and date in YYYY-MM-DD HH:MM format. Confirm the effective scheduling timezone before submitting; the create schema has no separate timezone field. Updating an existing scheduled post supports separate date, time, and timezone fields through social_updateSocialMediaPost.
Verify the resulting status and scheduled time with social_getSocialMediaPosts.
A successful request does not by itself prove a platform has published the post. Report the returned state and any platform error, then recheck the post when necessary.
Manage existing content
Retrieve the resource before changing it. Use the draft update/delete tools for drafts and the post update/delete tools for posts. After a timeout, search existing drafts or posts before retrying creation to avoid duplicates.
