Content Posts
Create, schedule, and publish LinkedIn content through its full lifecycle.
Tools (17)
Section titled “Tools (17)”create_content_post
Section titled “create_content_post”Full name: campaignstack_create_content_post
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).
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
authorAccountId | string | Yes | — | (min length: 1) |
platform | linkedin | Yes | — | |
body | string | Yes | — | (min length: 1) |
mediaIds | string[] | No | [] | |
tags | string[] | No | — | |
postType | text | image | video | document | No | — | |
scheduledAt | integer | No | — | Schedule the post at this exact time after creating it. |
autoSchedule | boolean | No | — | Create the post and auto-place it into the next valid posting slot (respects the account’s daily LinkedIn limit). Use this to queue many posts without picking times. |
update_content_post
Section titled “update_content_post”Full name: campaignstack_update_content_post
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.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
body | string | No | — | (min length: 1) |
mediaIds | string[] | No | — | |
tags | string[] | No | — | |
postType | text | image | video | document | No | — |
list_content_posts
Section titled “list_content_posts”Full name: campaignstack_list_content_posts
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. Supports cursor-based pagination: pass the response’s nextCursor back as ‘cursor’ to fetch the next page. Use campaignstack_get_content_post to retrieve full details including media URLs.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
status | draft | pending_approval | scheduled | publishing | published | failed | archived | No | — | |
platform | linkedin | No | — | |
tags | string[] | No | — | |
limit | integer | No | 20 | (min: 1, max: 100) |
cursor | string | No | — | Opaque pagination cursor from a previous response’s nextCursor |
get_content_post
Section titled “get_content_post”Full name: campaignstack_get_content_post
Returns a single content post with its LinkedIn extension data and media URLs. Use campaignstack_list_content_posts to find valid post IDs.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
delete_content_post
Section titled “delete_content_post”Full name: campaignstack_delete_content_post
Deletes a content post. Only posts in ‘draft’ or ‘failed’ status can be deleted. Use campaignstack_get_content_post to check status before deleting.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
duplicate_content_post
Section titled “duplicate_content_post”Full name: campaignstack_duplicate_content_post
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.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
schedule_content_post
Section titled “schedule_content_post”Full name: campaignstack_schedule_content_post
Schedules a draft content post for publishing (skips approval). Pass scheduledAt (Unix ms, in the future) for an exact time, or set autoSchedule:true (or omit scheduledAt) to auto-place it into the next valid slot that respects the account’s daily LinkedIn posting limit. The response includes the resolved scheduledAt. Use campaignstack_get_content_post to verify the post is in ‘draft’ status first.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
scheduledAt | integer | No | — | Exact publish time. Omit (or set autoSchedule) for the next valid slot. |
autoSchedule | boolean | No | — | Auto-place into the next valid posting slot instead of an exact time. Default when scheduledAt is omitted. |
submit_content_for_approval
Section titled “submit_content_for_approval”Full name: campaignstack_submit_content_for_approval
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.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
approve_content_post
Section titled “approve_content_post”Full name: campaignstack_approve_content_post
Approves a content post that is ‘pending_approval’ and schedules it for publishing. Pass scheduledAt (Unix ms) for an exact time, or set autoSchedule:true (or omit scheduledAt) to auto-place it into the next valid slot. The response includes the resolved scheduledAt. Use campaignstack_reject_content_post to send it back to draft instead.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
scheduledAt | integer | No | — | Exact publish time. Omit (or set autoSchedule) for the next valid slot. |
autoSchedule | boolean | No | — | Auto-place into the next valid posting slot instead of an exact time. Default when scheduledAt is omitted. |
reject_content_post
Section titled “reject_content_post”Full name: campaignstack_reject_content_post
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.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
reason | string | Yes | — | (min length: 1) |
unschedule_content_post
Section titled “unschedule_content_post”Full name: campaignstack_unschedule_content_post
Moves a ‘scheduled’ content post back to ‘draft’ status, clearing the scheduled time. Use campaignstack_schedule_content_post to reschedule it.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
retry_content_post
Section titled “retry_content_post”Full name: campaignstack_retry_content_post
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.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
contentPostId | string | Yes | — | (min length: 1) |
get_workspace_voice
Section titled “get_workspace_voice”Full name: campaignstack_get_workspace_voice
Returns the brand voice & tone guide for a workspace’s default LinkedIn account. Use this to understand the writing style before generating content drafts. Returns null defaultAccountVoice if not configured.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
update_brand_identity
Section titled “update_brand_identity”Full name: campaignstack_update_brand_identity
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.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
voiceGuide | string | No | — | |
primaryColor | string | No | — | Primary brand color as hex (e.g. #1a2b3c) |
secondaryColor | string | No | — | Secondary brand color as hex (e.g. #4d5e6f) |
accentColor | string | No | — | Accent brand color as hex (e.g. #ff6b35) |
fontStyle | string | No | — | Font style description (e.g. bold sans-serif, geometric) |
styleDescriptors | string | No | — | Style keywords (e.g. clean, minimal, corporate) |
get_content_analytics
Section titled “get_content_analytics”Full name: campaignstack_get_content_analytics
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.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
fromMs | integer | Yes | — | |
toMs | integer | Yes | — |
list_content_calendar
Section titled “list_content_calendar”Full name: campaignstack_list_content_calendar
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.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |
startMs | integer | Yes | — | |
endMs | integer | Yes | — |
list_ai_suggestions
Section titled “list_ai_suggestions”Full name: campaignstack_list_ai_suggestions
List the latest AI-generated content post suggestions (draft posts tagged ‘ai-generated’) for a workspace. Returns up to 3 of the most recent AI drafts with author info and LinkedIn extension data. Use campaignstack_update_content_post to edit a suggestion, then campaignstack_schedule_content_post or campaignstack_submit_content_for_approval to publish it.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Defaults to the API key’s workspace |