> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Post

> Low-level LinkedIn post update

Low-level LinkedIn post update. Forwards a raw Posts API partial-update body as-is. This is how an ad's editable content is changed: resolve the ad's post URN via linkedin\_ads\_get\_ad, then patch commentary (intro text), contentLandingPage (destination URL), contentCallToActionLabel, or adContext.dscName/dscStatus. Headline and attached media are never editable (LinkedIn limitation; create a new ad instead). Requires the connected user to have an admin or DSC-poster role on the authoring Company Page.

|                       |                            |
| --------------------- | -------------------------- |
| **App**               | LinkedIn Ads               |
| **Operation ID**      | `linkedin_ads_update_post` |
| **Type**              | Action                     |
| **Connection**        | `linkedin_ads` (required)  |
| **Credits per run**   | 1                          |
| **Agent / MCP tool**  | Yes                        |
| **Requires approval** | Yes (write operation)      |

## Inputs

| Field            | Type                 | Required | Default | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ---------------- | -------------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `post`           | string or SelectItem | Yes      | -       | The post to update, as a full URN (urn:li:ugcPost:123 or urn:li:share:123). An ad's content lives on its referenced post: get the URN from linkedin\_ads\_get\_ad (creative.content.reference).                                                                                                                                                                                                                                                                                                                          |
| `update_payload` | object or string     | Yes      | -       | Raw LinkedIn post partial-update body, sent to LinkedIn as-is. Use LinkedIn's documented shape: \{"patch": \{"$set": \{...}}}. LinkedIn only allows updating: commentary (intro text), contentLandingPage (destination URL), contentCallToActionLabel, lifecycleState, and the sponsored name/status via a nested patch: \{"patch": \{"adContext": \{"$set": \{"dscName": "..."}}}}. Headline and attached media cannot be updated (LinkedIn limitation; create a new ad instead). Accepts a JSON object or JSON string. |
| `dry_run`        | boolean              | No       | `False` | When true, return the resolved update body without calling LinkedIn.                                                                                                                                                                                                                                                                                                                                                                                                                                                     |

### SelectItem

| Field   | Type   | Required | Default | Description                                                                                          |
| ------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------- |
| `value` | string | Yes      | -       | The value of the selectable item.                                                                    |
| `label` | string | Yes      | -       | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

## Output

**Type**: `Dict`

Returns the post URN, the forwarded payload, and LinkedIn's response (successful post updates return no body, HTTP 204).

**Fields**: `post`, `payload`, `dry_run`, `response`
