Home Help centre Results and history
Read the per-record audit trail
The run detail page is the record of what one sync actually did, line by line. Open it from Sync history by clicking the supplier name in a run's row, from the run timestamp under Last run in a connection's Activity panel, or from the Open full run details link in the preview modal.
What is on the page
The heading names the run kind and the connection: it reads Preview before the connection name for a dry run and Run for a real one, with a status badge beside it, plus a Push badge on a supplier write-back run. A dry run also shows an information banner reading "This run was a preview" and "Nothing was written to Shopify."
Run summary carries the outcome counts (Fetched, Applied, Skipped, For review, Failed) alongside Duration, and a line with Started and Finished. Dates are shown in UTC. If the run recorded any notices or errors, they appear in a banner here.
Fetch log appears when the run logged supplier calls. It lists Endpoint, Duration, Rows, and Cache, where the Cache badge reads either Hit or Miss.
Per-record audit is the table itself, with nine columns: SKU, Barcode, Change, Action, Quantity, Price, Fields changed, Status, and Message. Quantity and Price are shown as before and after values, so a stock move reads 5 → 12. Fields changed lists one line per descriptive field that moved, each naming the field with its before and after value. Message carries any note the run recorded for that record. When a run saved no rows at all, the section shows an empty state in place of the table.
Reading the Change column
Change is why the record landed in the audit. An ordinary supplier sync uses eight values.
Quantity changed means the supplier quantity differed from your store, which is the ordinary inventory write. Price changed means no quantity change was recorded but the price differed, which only happens when Sync price is on. Product fields changed means only a descriptive field differed, and only for the fields you switched on under "Product fields (advanced)". New item means the supplier key was not in your store at all. Not found in supplier means the product exists in your store but the feed did not contain it, so it goes to review and its stock is never zeroed. Unmatched means the record had no usable barcode or SKU to match on. Duplicate means a supplier record resolved to a key another record in the same feed had already claimed, so Everstock quarantined the later one instead of guessing; the first record that claimed the key is still synced normally. Unchanged means the record matched and nothing you sync differed; these are counted in the Skipped total on the run summary and are not saved as individual rows, so the table does not list them.
A supplier write-back run has no diff behind it, so every one of its rows reads Push in this column instead.
Reading the Action column
Action is what Everstock did about it. An ordinary supplier sync uses six values: Inventory set, Price update, Inventory and price, Product update, Create, and Review. A new item always reads Create. Otherwise quantity and price win over descriptive fields when the single action is named, so a record that changed quantity and a title reads Inventory set while the title still appears in Fields changed. Review is the action on every record a human needs to look at. There is no separate review queue: review items live in that run's audit. A supplier write-back run reads Push here too.
Statuses and the Item status filter
Status is the per-record outcome. Applied was written to Shopify, or accepted by the supplier on a write-back run. Planned is a dry run's would-be write, so it says what a real sync would do right now and nothing was sent. Review needs your judgement. Skipped means nothing was written for that record, for example a new item when Create missing products is off. Failed means the write that record belonged to did not succeed.
Note that the Skipped count in Run summary is a different number from the rows badged Skipped here: the summary count is the unchanged records the run had no reason to touch, and those are never saved as rows.
Use the Item status dropdown above the table to narrow it. It defaults to "All statuses" and offers Applied, Planned, Review, Skipped, and Failed. While a filter is active, the table heading says how many items carry that status, and the table pages 25 rows at a time. Under the table, a footer line reconciles the rows with the run, saying how many came from the fetched records and how many were flagged for review; it is hidden while a filter is active or the run hit the audit cap, because in both cases the rows are no longer the whole run. Download CSV in the page header exports every audit row saved for the run whatever the filter says, with a matching key column the table does not show.
The 5,000-record audit cap
Everstock saves at most 5,000 per-record rows for a single run. If a run produced more, the table footer shows this note: "This run reached the 5,000-record audit cap. Any records beyond it were not saved; the outcome counts above still cover the whole run." The run also records the truncation as a notice, so the banner in Run summary says how many rows were produced and how many were kept.
That last part matters. Only the row-by-row detail is trimmed. The Fetched, Applied, Skipped, For review, and Failed counts in Run summary still describe every record the run handled, and the sync itself was not shortened. If you need the detail for a very large feed, narrow the connection's sync scope or use its ignore list so fewer records enter the audit.
Need help? Visit the support page or email hello@usenormalize.com.