Write

Update LinkedIn Post Draft

Edit a saved post in 'draft' or 'archived' status. Text, notes, audience, attachments, status, and stored enhanced metadata remain editable. Company-page, mention, and link-preview metadata must be removed before publishing. Returns an error if the draft is missing or already published.

update_draftPATCH/api/v1/content/drafts/{draft_id}
crispy — bash

Example prompt: Update draft a1b2c3d4 with the new opening line and put https://crispy.sh in the post text

{
  "draft_id": "a1b2c3d4-0000-4f00-8a00-111122223333",
  "status": "draft",
  "text": "New opening line...",
  "updated_at": "2026-06-16T09:10:00Z"
}
Permission scope
core
Access
Write
Category
Content

What you can build

Refine a draft's copy and tone across several rounds before it goes live
Swap or clear attachments and include shared URLs directly in the text
Archive a draft to hide it from your default list without deleting it
Add private notes and a target audience to keep your content pipeline organized

Parameters

Inputs accepted by update_draft.

NameTypeDescription
draft_idstringUUID of the draft to update (from save_draft or list_drafts)
textstringNew post text (max 3000 chars)
notesstringPrivate notes about this draft
target_audiencestringWho this post is intended for
attachmentsobject[]Replace attachments (pass empty array to clear)
as_organizationstringNOT PUBLISHABLE. Remove this field before calling publish_draft.
mentionsobject[]Replace stored mention metadata. Remove mentions before calling publish_draft.
external_linkstringReplace stored link-preview metadata. Remove it before calling publish_draft.
status"draft" | "archived"Move draft to 'archived' to hide from default list, or back to 'draft'

Run LinkedIn workflows from the AI client you already use.

Create your account, connect LinkedIn, create an API key, then add Crispy to your client. Review the docs for supported workflows and safety controls.