Skip to content

Job history & rollback

See every job that ran, inspect partial failures, and roll back supported changes with the stored “before” values.

When to use Job History

  • Verify that a job finished (Queued → Running → Completed).
  • Review warnings or partial failures before trusting the results.
  • Roll back supported fields without rebuilding a CSV or manual edits.

Open the app → Job History (left nav) → choose a job to view its summary, affected counts, and per-field breakdown.

Understand job statuses

  • Queued — the job is waiting for earlier jobs or Shopify rate limits to clear.
  • Running — batches are processing; the progress bar and per-field counters update in real time.
  • Completed — the job finished without outstanding retries.
  • Completed with warnings — some rows failed; the banner lists failure reasons and links to CSV exports of the affected rows.
  • Failed — the job stopped altogether. Retry after addressing the error or contact support.

Rollback basics

  1. Open Job History → select the job.
  2. Review the summary to confirm scope and status.
  3. Click Rollback (only present when “before” values were stored for that action).
  4. Confirm the scope; the rollback job replays the stored “before” values.
  5. Monitor the rollback job like any other job. Partial failures will be called out with links to the affected rows so you can address them manually.

Rollbacks are fastest when run soon after the original job because data hasn’t drifted. If a row cannot be restored (for example, Shopify rejects a field because the product was deleted), the rollback job highlights it so you can take manual action. After your plan’s rollback window, tasks are archived: they stay in Job History for audit, but rollback and duplicate are disabled until you manually delete the task.

What rollback can and cannot do

This table mirrors the in-app rollback coverage table.

Action / fieldUnderlying field(s)Rollback supported?Notes & limitations
TitleProduct titleYes – stored “before” values are replayed for this field.Runs once per product. Restores the exact previous title stored by the job.
DescriptionProduct descriptionYes – stored “before” values are replayed for this field.Runs once per product. Long descriptions are restored in full where capture succeeded.
SEO TitleProduct SEO titleYes – through the SEO/Title actions when those fields were edited.Product-level only. Restores the previous SEO title string for affected products.
SEO DescriptionProduct SEO descriptionYes – through the SEO/Description actions when those fields were edited.Product-level only. Restores the previous SEO description text.
MetafieldsProduct metafields (namespace.key)Yes – for metafields edited by this app when rollback data is available.If a metafield existed, its previous value is restored; if it was created by the job, it is deleted.
HandleProduct handleYes – when the handle was changed by this app and history is available.Restores the previous handle value. Cannot restore handles for edits made outside this app.
VendorProduct vendorYes – for vendor edits made by this app.Restores the previous vendor string on affected products.
Product typeProduct product typeYes – for product type edits made by this app.Restores the previous product type string on affected products.
TagsProduct tagsYes – for tag add/remove/replace operations from this app.Inverts add/remove operations to restore the previous tag set where possible.
Variant SKUVariant SKUYes – for SKU edits driven by this app.Restores previous SKU values on the affected variants where history is stored.
Variant barcodeVariant barcodeYes – for barcode edits driven by this app.Restores previous barcode values on the affected variants where history is stored.
Price & compare-at priceVariant price and compare-at priceYes – for price actions run through this app.Restores each affected variant’s previous price and compare-at price using stored “before” values.
CollectionsProduct collection membershipYes – for collection add/remove operations made by this app.Inverts add/remove so products are re-added to or removed from the affected collections.
StatusProduct statusYes – when status was changed by this app and a valid previous state was captured.Restores status to the previous ACTIVE, DRAFT, or ARCHIVED state when available.
Variant addNew variants created by this appYes – for variants created by the job.Rollback deletes variants that were created as part of the job.
Variant deleteVariants deleted by this appYes – when previous variant structure was captured.Rollback recreates deleted variants from stored “before” data where available.
Variant editVariant price / compare-at / SKU / barcode editsYes – for variant field edits made by this app.Restores previous price, compare-at price, SKU, and barcode values on edited variants.
Variants & options cloneReplace variants + options from a source productNo (for now).Clone is destructive and not yet rollbackable.
Option rename / reorderOption names, option order, option value orderNo (for now).These structural changes are not yet rollbackable.
CSV imports (coming soon)⚠️CSV import/export is not yet generally available. When CSV launches, CSV jobs that map to supported fields can roll back; large blended CSVs (mix of supported + unsupported columns) may require manual reverts.
Jobs older than your plan’s rollback window⚠️Tasks become read-only (rollback/duplicate disabled) but remain visible until you delete them.

Use this table anywhere you mention rollback so merchants know what to expect.

When to contact support

  • The rollback button is missing for a job that previously exposed it.
  • Partial failures persist after a retry.
  • You need to roll back unsupported changes (very old jobs, Shopify-rejected rows, etc.).

Collect the details in the Support & contact checklist—shop URL, job ID, Job History screenshots, and CSV snippets—before emailing support@xyppy.com.

See also

Was this helpful?

Let us know what to improve by following the Support & contact checklist and emailing support@xyppy.com or opening an issue at GitHub Issues.