Skip to main content
Records that a content draft has been posted by stamping the live URL and marking status=‘published’. This is a RECORDING — Citable does not call platform APIs to post for the user. Workflow: Claude drafts → user reviews/edits → user posts manually on the platform → user (or Claude on user’s instruction) calls this with the live URL. Once stamped, the nightly attribution snapshot job picks up the post and starts tracking citation rate. Use get_attribution_report afterward to see lifetime / recent / trajectory metrics. For BLOG content only, marking posted also fires the publish-to-indexed automation (CIT-923) in the background: the brand’s sitemap is resubmitted to Google Search Console, the posted URL is run through the GSC URL Inspection API, and the URL is submitted to IndexNow (Bing’s index feeds ChatGPT search). Social / off-site content (LinkedIn, Reddit, X, …) is skipped — it doesn’t live on the brand’s site, so search-index automation doesn’t apply. Steps degrade gracefully when GSC isn’t connected or no IndexNow key is provisioned. Use this when:
  • The user has posted the content somewhere and is sharing the live URL.
  • The user wants to retroactively log a post that’s already live.
Skip when:
  • The user has not yet posted the content (use schedule_content to keep it on the calendar).
  • The URL is not http/https — every other scheme is rejected.
Idempotent: re-calling with the same content_id preserves the original posted_at via COALESCE; posted_url is overwritten so typos can be corrected.

Inputs