Jobs and row results

Every import you've ever run is kept, with a durable outcome for each row. This is where you find out what happened, what it created, and what to fix.

The Jobs page

Jobs in the left nav splits into two sections:

Active
Jobs currently running, each with live progress. Cancel from here too.
Past imports
Everything finished, newest first, with the file name, import type, target, row counts and credits used. Click one to expand its detail.

The app's Home page shows the five most recent jobs as a shortcut, alongside your credit balance.

A job's detail

Opening a job gives you five stat tiles:

TileMeaning
Total rowsData rows in the file, excluding the header.
SucceededRows written to Shopify.
FailedRows that couldn't be written. Refunded.
SkippedRows that matched something existing and wrote nothing. Not charged.
Credits usedThe actual charge, after refunds. Should equal Succeeded.

Plus the metadata: import type, target, file name, started and completed timestamps, and status. And, if the job has any, an uncertain count.

Status Done doesn't mean everything worked

Done means every row reached a final outcome. Read the Failed tile too: a job where 400 of 500 rows failed is still Done.

The per-row results table

Four columns: row number, title, status and details.

Row number
1-based, excluding the header, so results row 12 is spreadsheet row 13.
Title
A label identifying the row in your terms: the definition key, the metaobject handle, the article title.
Status
One of the five below.
Details
For a success, the Shopify ID of what was created. For a failure, the reason. Plus any warnings.

Results are paged 200 rows at a time. On very large jobs the detail view shows the first portion with a banner saying how many of how many you're looking at.

Row statuses

StatusMeaningCharged
Pending Not attempted yet. On a finished job this means it was cancelled or interrupted before reaching this row. For a cancelled or failed job, Retry will pick it up; after running out of credits, re-run the file in Skip mode. No
Success Written to Shopify. The created object's ID is in the details. Yes
Skipped Matched something that already existed; nothing written, per your conflict mode. No
Error Failed. Nothing was written. The reason is in the details. Refunded
Uncertain Interrupted mid-write, so it may or may not exist in Shopify. Never silently retried and never silently dropped, so check this one by hand. Refunded

Warnings on successful rows

A row can succeed and still have something worth telling you. Warnings sit alongside the success in the details column, and they're easy to miss if you only read the counts.

Common ones:

Worth a scan after any migration. The data is in, but not always all of it.

Download rows needing attention

On a job with errors or uncertain rows there's a Download rows needing attention button. It exports those rows with their row number, label, Shopify ID, message and warnings:

import-42-errors.csv
Row,Label,Shopify ID,Message,Warnings
14,care_guide,,"No product found matching ""merino-crewneck""",
27,highlights,,"ownerType ""PRODUCTS_VARIANT"" is not valid — did you mean ""PRODUCTVARIANT""?",
58,loyalty_tier,,"CUSTOMER metafields need the ""write_customers"" access scope, which this app hasn't been granted.",

It doesn't contain your original columns, so it can't be re-imported as it is. Open it next to your source file, use the row numbers to find the originals, fix them there, and import just those rows as a new file. Full walkthrough →

Verifying against Shopify

Successful rows carry the ID of what they created, which is the link back to your store.

What you importedWhere to check
Metafield definitionsSettings → Custom data → the owner resource
Metafield valuesOpen the product, page or collection; the field is in its metafields section
Metaobject definitionsSettings → Custom data → Metaobjects
Metaobject entriesContent → Metaobjects → the definition
Blog articlesOnline Store → Blog posts

For a blog migration in particular, the ID list is how you tell which articles came from which run. That's useful if you need to unpick an accidental double import, since ImportKit can't delete anything for you.

How long results are kept

Job records and their rows are kept while the app is installed, so you can review or resume an import later. They're deleted when Shopify sends a shop redaction request after you uninstall, or sooner if you ask us.

The uploaded row data is stored with the job, including columns you ignored or left unmapped, so results can be reviewed and imports resumed. What's stored, in detail →

Getting help with a job

Email support@importkitapp.com with your store domain and the job number (it's in the URL when you open a job). Attach the rows-needing-attention download if you have one. That's usually enough to answer without going back and forth.

Next