Personalization

Preview the personalized message a single creator would receive

Generate the AI personalization blocks for one creator and return the fully assembled message — exactly what a send with the same configuration would ship. When the creator has too little signal to personalize, the brand fallback_message is returned instead (is_fallback: true).

Content Discussion and Product Discussion are AI-generated from the creator's own signals; Product Description / Selling Points / Offer are the fixed strings you pass in (resolve product blocks first via POST /personalization/product-blocks). Region and brand name are taken from the shop (brand name defaults to the shop name).

API previews are stateless: nothing is stored, and a later send generates its own copy (or reuses a lock approved in the Reacher portal composer). Generation endpoints share a separate quota (20/min, 500/hr per key). Requires a single shop.

post/personalization/preview

Request body

message_bodystring required

The DM template with [Block] tokens (mirrors the automation's CREATOR_MESSAGE).

tone'engaging' | 'bold' | 'inspirational'
fallback_messagestring required

Sent (name/product blocks filled) when the creator has too little signal to personalize. Required — matches the DM config contract: personalization must always have a safe fallback, so a low-signal preview never returns an empty message.

brand_namestring

Brand display name used in the copy. Defaults to the shop name when omitted.

product_descriptionstring

Pre-resolved [Product Description]. Get it from POST /personalization/product-blocks.

product_selling_pointsstring

Pre-resolved [Product Selling Points]. Get it from POST /personalization/product-blocks.

offer_discussionstring

[Offer Discussion] block value — the brand's offer text.

word_countsobject nullable

Optional approximate word-count target per AI block, e.g. {"content_discussion": 25, "product_discussion": 20}. Only content_discussion and product_discussion are honored; clamped server-side. Null uses the brevity default.

Response

Successful Response

creator_idstring required
messagestring required

The fully assembled message this creator would receive.

is_fallbackboolean required

True when the creator had too little signal to personalize, so the brand fallback message was used instead of AI-generated blocks.

blocks_usedstring[]

Which [Block] tokens were filled (e.g. content_discussion, product_discussion, product_description, offer_discussion).

Changes

No recorded changes to this endpoint across all 1 revision of this API.