Save blog post

ps_save_blog_post

Write · preview + approveContent & SEO and Catalog · writes right awayTellMyShop Pro onlySaves: right awayNeeds the SmartBlog module

Writes a new blog post or edits an existing one.

TellMyShop Free: No. This tool is only in TellMyShop Pro. TellMyShop Free has only ready reports that read your store.

Ask Claude

„Fix the meta descriptions of the 5 blog posts flagged by the audit.”

Example preview

Post 8 "How to choose garden lamps", language en. meta_description: empty -> 152 characters. short_description: empty -> 210 characters. Status unchanged (published).

Technical details

Creates a new blog post (without post_id) or changes an existing one (with post_id): title (in SmartBlog also the meta title), HTML content, short description, meta description, keywords, categories. A NEW POST IS SAVED AS A DRAFT unless publish=true. The slug is set only when creating; to change the slug of an existing post use ps_change_url. The main image and tags are not set by this tool (do it in the blog's back office). Appears only when SmartBlog is installed and enabled.

Parameters

NameTypeRequiredDescription
post_idintegernoID of an existing post (empty = new post).
langstringwhen: shop has more than one active languageISO code of the language you write in. Required when the shop has more than one active language. Claude writes the content in this language.
shop_idintegernoShop ID in a multistore installation. Defaults to the shop in the connector address. IDs are listed by ps_get_shop_info.
titlestringwhen: new post (no post_id)Title (also the meta title). Max 150 characters.
contentstring (HTML)noContent (HTML: p, h2, h3, ul/li, strong, a). Max 300,000 characters.
short_descriptionstringnoShort description (shown in the post list). Max 450 characters.
meta_descriptionstringnoMeta description (recommended 120–160 characters). Max 450 characters.
meta_keywordsstringnoKeywords (comma separated). Max 200 characters.
slugstringnoNew post only: URL slug (SmartBlog: max 45 characters).
category_idsarray of integerwhen: new post (no post_id)Blog categories (ps_list_blog_categories); they replace the current ones. Required for a new post. Max 10 items.
publishbooleannotrue = publish, false = draft. A new post is a draft by default; an existing post keeps its status.
confirmbooleannofalse (default) returns a preview and saves nothing. true executes, only after the user approved the preview, together with change_token.
change_tokenstringwhen: confirm=trueToken from the preview. Required with confirm=true. Valid 30 minutes, single use, bound to the previewed arguments and data state.

Limits

Requires SmartBlog. One post and one language per call. New post needs title and category_ids. Slug only for a new post, max 45 characters in SmartBlog. Revertible with ps_revert_change.

What you see before anything is saved

Claude first calls the tool without confirming it. The module returns a preview (current and new values) and a single-use token valid for 30 minutes. Claude shows you the preview and saves the change only after your yes.

Related tools

Use cases with this tool

Last updated: 2026-10-11