Skip to content

Content Posts

Create, schedule, and publish LinkedIn content through its full lifecycle.

Full name: campaignstack_create_content_post

content:write

Creates a draft content post for a LinkedIn account. Returns the new post ID. Use campaignstack_get_content_post to retrieve the full post. postType is auto-inferred from media if not provided (no media = text, image/* = image, video/* = video, pdf/pptx = document). Optional tags array for categorization (system tags: ai-generated, weekly-suggestion, on-demand, competitor-inspired; or freeform user tags).

NameTypeRequiredDefaultDescription
workspaceIdstringYes(min length: 1)
authorAccountIdstringYes(min length: 1)
platformlinkedinYes
bodystringYes(min length: 1)
mediaIdsstring[]No[]
tagsstring[]No
postTypetext | image | video | documentNo

Full name: campaignstack_update_content_post

content:write Idempotent

Updates a draft content post. Only posts in ‘draft’ or ‘scheduled’ status can be edited. Pass only the fields you want to change. Supports updating tags (replaces entire array). Use campaignstack_get_content_post to check current status before updating.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)
bodystringNo(min length: 1)
mediaIdsstring[]No
tagsstring[]No
postTypetext | image | video | documentNo

Full name: campaignstack_list_content_posts

content:read Read-only Idempotent

Lists content posts for a workspace with optional filtering by status, platform, and tags. Tags filter uses OR logic (posts matching ANY of the provided tags are returned). Returns up to ‘limit’ posts (default 20, max 100) ordered by most recent first. Use campaignstack_get_content_post to retrieve full details including media URLs.

NameTypeRequiredDefaultDescription
workspaceIdstringYes(min length: 1)
statusdraft | pending_approval | scheduled | publishing | published | failed | archivedNo
platformlinkedinNo
tagsstring[]No
limitintegerNo20(min: 1, max: 100)

Full name: campaignstack_get_content_post

content:read Read-only Idempotent

Returns a single content post with its LinkedIn extension data and media URLs. Use campaignstack_list_content_posts to find valid post IDs.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)

Full name: campaignstack_delete_content_post

content:write Destructive

Deletes a content post. Only posts in ‘draft’ or ‘failed’ status can be deleted. Use campaignstack_get_content_post to check status before deleting.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)

Full name: campaignstack_duplicate_content_post

content:write

Duplicates an existing content post as a new draft, copying body, platform, author, and media. All lifecycle fields are cleared (no schedule, no approval). Returns the new post ID.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)

Full name: campaignstack_schedule_content_post

content:write Idempotent

Schedules a draft content post for publishing at a specific time (skips approval). scheduledAt is a Unix timestamp in milliseconds and must be in the future. Use campaignstack_get_content_post to verify the post is in ‘draft’ status first.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)
scheduledAtintegerYes

Full name: campaignstack_submit_content_for_approval

content:write Idempotent

Submits a draft content post for approval, moving it to ‘pending_approval’ status. The post body must not be empty. Use campaignstack_approve_content_post or campaignstack_reject_content_post to continue the workflow.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)

Full name: campaignstack_approve_content_post

content:write Idempotent

Approves a content post that is ‘pending_approval’ and schedules it for publishing. scheduledAt is a Unix timestamp in milliseconds. Use campaignstack_reject_content_post to send it back to draft instead.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)
scheduledAtintegerYes

Full name: campaignstack_reject_content_post

content:write

Rejects a ‘pending_approval’ content post back to ‘draft’ status with a reason. Increments the revision count (max 10 revisions). Use campaignstack_update_content_post to edit the post, then campaignstack_submit_content_for_approval to resubmit.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)
reasonstringYes(min length: 1)

Full name: campaignstack_unschedule_content_post

content:write Idempotent

Moves a ‘scheduled’ content post back to ‘draft’ status, clearing the scheduled time. Use campaignstack_schedule_content_post to reschedule it.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)

Full name: campaignstack_retry_content_post

content:write Idempotent

Moves a ‘failed’ content post back to ‘draft’ status, clearing the failure reason. Use campaignstack_get_content_post to check the failureReason before retrying. After retrying, edit the post if needed, then schedule or submit for approval again.

NameTypeRequiredDefaultDescription
contentPostIdstringYes(min length: 1)

Full name: campaignstack_get_workspace_voice

content:read Read-only Idempotent

Returns the brand voice & tone guide for a workspace, including the default account’s voice guide. Use this to understand the writing style before generating content drafts. Returns null contentVoice/defaultAccountVoice if not configured.

NameTypeRequiredDefaultDescription
workspaceIdstringYes(min length: 1)

Full name: campaignstack_update_brand_identity

content:write Idempotent

Updates the brand identity for a workspace’s default account voice. Supports updating voice guide text and visual identity (colors, font style, style descriptors). Pass only the fields you want to change. Use campaignstack_get_workspace_voice to check current values first.

NameTypeRequiredDefaultDescription
workspaceIdstringYes(min length: 1)
voiceGuidestringNo
primaryColorstringNo
secondaryColorstringNo
accentColorstringNo
fontStylestringNo
styleDescriptorsstringNo

Full name: campaignstack_get_content_analytics

content:read Read-only Idempotent

Get analytics for a workspace’s own published LinkedIn content. Returns engagement metrics (reactions, comments, reposts), trend vs previous period, and top-performing posts. Use fromMs/toMs as Unix timestamps (milliseconds) to define the date range.

NameTypeRequiredDefaultDescription
workspaceIdstringYes(min length: 1)
fromMsintegerYes
toMsintegerYes

Full name: campaignstack_list_content_calendar

content:read Read-only Idempotent

List content posts in a date range for calendar view. Returns posts that are scheduled or published within the given timeframe. Timestamps are Unix milliseconds. Use with campaignstack_get_content_post for full post details.

NameTypeRequiredDefaultDescription
workspaceIdstringYes(min length: 1)
startMsintegerYes
endMsintegerYes