{"title":"Review and approve a Content Change","slug":"review-and-approve-a-content-change","url":"https://support.storeconnect.com/articles/review-and-approve-a-content-change","url_markdown":"https://support.storeconnect.com/articles/review-and-approve-a-content-change.md","subtitle":null,"summary":"Find pending Content Changes in Salesforce, inspect exactly what a change will do, and approve or reject it before it goes live on your storefront.","type":"Help_Documentation","video_url":"","keywords":"content change, approve content change, publish content change, content change record, content change field, review status, draft status, published status, store roles, approver, self-approval, website builder, AI agent changes, preview url, rollback, content approval workflow","last_modified":"2026-08-21T07:12:35+0000","body_markdown":"Every edit made to your storefront - whether a person made it in the [Website Builder](website-builder) or an AI agent made it through your [connected agent tools](connect-an-ai-agent-to-your-store) - is staged first as a **Content Change** in Salesforce. Nothing reaches your live site until a human reviews that Content Change and approves it.\n\nThis article covers where to find pending changes, what their statuses mean, how to inspect exactly what a change will do, and how to approve, reject, or edit it.\n\n## Where pending changes live\n\nContent Changes are a standard Salesforce object. Open the **App Launcher** and search for **Content Changes** to see every change across all your stores.\n\nThe list shows each change's **Name**, **User** (who created it), **Status**, **Preview URL**, and **Published At** date. Sort or filter this list by **Status** to find everything currently waiting on **Review**.\n\n:::tip\nIf a change was created through the Website Builder, you can also reach it from there: reopen the store in the Website Builder and select **Resume** on the relevant change to continue editing before you decide.\n:::\n\n:::tip\nIf an AI agent pushed the change, its `push_content_change` (and `get_content_change`) tool responses include a `salesforce_url` field - a direct link straight to this record, skipping the App Launcher search above. It can be null immediately after the push, since Heroku Connect assigns the record's Salesforce Id asynchronously when it syncs down rather than at push time - the agent's next `get_content_change` call will pick up the link once sync catches up.\n:::\n\n## What the statuses mean\n\n| Status | Meaning |\n|--------|---------|\n| **Draft** | Still being assembled - by a person in the Website Builder, or by an AI agent mid-session. A draft hasn't been sent to Salesforce yet, so it won't appear in your Content Changes list at all until it's pushed. |\n| **Review** | Pushed to Salesforce and waiting for a decision. This is the status you're looking for when reviewing pending work. |\n| **Published** | Approved and applied. Setting a change's Status to Published *is* the approval action - there's no separate \"Approve\" button. |\n\nYou may also see an **Approved** option in the Status picklist. It's a reserved value with no behavior attached yet - approving a change today means setting its Status directly to **Published**, not to Approved.\n\n## Inspect what a change will do\n\nNever approve a change without reading what it contains - the Status field alone doesn't tell you what will change on your site.\n\n1.  Open the **Preview URL** field on the Content Change. It links to a live preview of your storefront with every staged edit applied, so you can see the end result before anything goes live.\n\n    :::note\n    The Preview URL only resolves once your store's **Site Base URL** setting has been configured - see [Test store](test-store) for how to find and set it. Until then, the link won't point anywhere useful.\n    :::\n\n2.  Scroll to the **Content Change Record** related list. Each row is one record being created, updated, or deleted - its **Object Api Name**, **Action**, and target record identify what's affected (a product, a page, a menu, and so on).\n3.  Open an individual Content Change Record to see its own **Content Change Field** related list. Each row shows one field's **Original Value** and **New Value** - the precise before-and-after for that field.\n\nFor the full field-by-field reference of these three objects, see [Content Change Object Reference](content-change-object-reference), [Content Change Record Object Reference](content-change-record-object-reference), and [Content Change Field Object Reference](content-change-field-object-reference).\n\n## Who can approve\n\nApproving a change requires a [Store Role](store-roles) of type **Content Changes** at **Approver** level for the store the change belongs to.\n\nEvery Content Change also has a **User** field recording who created it - the person who was signed into the Website Builder, or the Salesforce user an AI agent authenticated as. Whenever that field is populated, two rules are enforced when you try to set Status to Published:\n\n-   **You need the Approver role.** An Editor-level role lets someone build and stage changes, but not approve them.\n-   **You can't approve your own change.** If you're the User recorded on the change, Salesforce blocks the save - someone else with the Approver role has to make the call, no matter whether you built the change yourself or an agent built it on your behalf.\n\nIf either check fails, Salesforce rejects the save with an error explaining why, and the change stays in Review untouched.\n\n## Editing before you approve\n\nYou're not limited to a straight approve/reject choice. Before setting Status to Published you can:\n\n-   Edit a Content Change Field's **New Value** to correct a staged value.\n-   Delete an individual Content Change Record to drop one part of the change while keeping the rest.\n-   Add a **Summary** noting why you made any adjustment.\n\nLeave the Status at **Review** for as long as you need to inspect and adjust it - there's no time limit.\n\n## What happens when you publish\n\nSetting Status to Published applies every staged create, update, and delete in that Content Change to your live Salesforce records, which then sync out to the storefront.\n\nThis is all-or-nothing: if anything in the change can't be applied - an unsupported record type, or a change record left without any fields - the whole save is rejected. Status stays at Review, and none of the change's records or fields are applied; nothing on your site is ever left half-updated. Fix the problem (or ask whoever built the change to fix it) and try publishing again."}