← /how-to/

How to bulk update a product catalog across platforms with AI

Your catalog disagrees with itself across platforms. The fix: pull base and store into sibling folders, AI reconciles the join, you approve every change. Try it now free → or book a demo with Curtis

The same product lives in five places: the Airtable base where it was born, the Shopify store, the product page on your site, the sales deck, and the feed. At least two of them disagree right now. The base says the strap is full-grain leather, the store still says vegan leather, the site lists last season's spec, and nobody can say which copy is true. Every platform has a bulk tool, and every one of them fixes only its own silo, in its own template, with its own overwrite rules. Updating the catalog means running five separate jobs and hoping they agree at the end. They will not.

Treat it as one reconciliation instead of five jobs. Pull each platform into a folder of plain files, side by side on your laptop, and let your AI work the join: find every place the copies disagree, fix them from the source of truth, flag the rows where the truth is genuinely unclear. Then read every proposed change as a word-level diff and publish only what you approve. Every option below sees some slice of the catalog. The differences are how much of it at once, and who signs off before it changes.

Your options

A spreadsheet as the source of truth

The master sheet is the default for a reason. Everyone can edit it, formulas and find-and-replace make the bulk change itself fast, and some import tools can pull from a shared sheet on a schedule. What the sheet cannot do is talk to the platforms. Every change still ends in a per-platform import, each with its own template and its own blank-cell rules. The file forks into catalog_v3_FINAL the first week two people touch it. There is no approval step anywhere, so one bad VLOOKUP propagates to every channel with nobody signing off. And shared spreadsheets cap out, 10 million cells in the most common one, which a wide catalog reaches sooner than you would think.

Per-platform CSV imports

Free, native, and they reach fields the in-admin bulk editors do not. They are also five dialects of the same risk. With overwrite enabled, the mode any bulk update of existing products uses, Shopify's importer reads a blank cell in a present column as an instruction to wipe the live value; columns you leave out of the file entirely stay untouched. And an import cannot be cancelled once it starts. Other platforms have their own versions: importers that time out on large catalogs, marketplace flat files that answer with cryptic error codes. The folklore is the tell. Test with two rows first, always export a backup: that is a community admitting there is no preview and no undo. And nothing checks the imports against each other. You run five and hope they agree.

A PIM

A product information management system is the grown-up answer, and at the right scale it is the correct one. You get a true system of record, completeness tracking, audit trails, and the only mature approval machinery in this market: drafts, proposals, role-split sign-off where legal approves the claims and marketing approves the copy. The costs are equally real. The approval workflow is often the feature that gates the enterprise tier, implementations run months and frequently need consultants, and the PIM still needs connectors built and maintained before anything reaches a storefront. At tens of thousands of SKUs with several teams and locales, a PIM earns all of that. Below that, you are mostly buying the review queue.

Feed management tools

If the job is formatting one catalog for many outbound channels, shopping feeds, marketplaces, ad platforms, this category is built for it: per-channel transformation rules, scheduled refreshes, error flagging against each channel's spec. Use one for that job. It will not do this job. Feed tools are one-directional pipes that reshape data on the way out; they do not write corrections back to the store or the base. A disagreement between your source of truth and your storefront survives every feed refresh, faithfully syndicated to every channel.

iPaaS automations

An automation platform can keep a mapped field flowing between two systems forever, hands-off, in near real time, and for a steady single-field pipe that is genuinely useful. A catalog pass is a different shape. Per-operation billing means updating 1,000 products on 3 platforms is thousands of billable operations in one run. The mapping UI moves values; it cannot decide which value is true. And every write lands live the moment the scenario fires, with no review queue and no undo. An automation is a pipe. This job needs a reconciliation, then a sign-off.

Scratch

Scratch pulls each platform into a folder of plain files: the Airtable base, the Shopify store, the Notion database, the Webflow collection, side by side on your laptop. Your own agent works the join across them, no field-mapping UI, no API token. Speed is the first difference: an MCP route pages through each platform's API call by call, burning context on every page, while local files grep in under a second. The fields that should not move are locked at each connector. Every proposed change lands in one review queue as a word-level diff. Two limits, stated plainly: Scratch does not push to Amazon, eBay, or Walmart, and the review is real reading, by you, on purpose.

Option Sees the whole catalog AI judgment Approval before live Undo after publish
Spreadsheet source of truth Only what you paste into it Bring your own No Whichever file version survives
Per-platform CSV imports One platform per import No No Your backup, if you made one
PIM Yes, with connectors Varies Yes, on the right tier Version history, varies
Feed tools Outbound copies only Rules, not judgment Channel specs, not your copy No
iPaaS automation One mapped pair at a time No No No
Scratch Every connected platform, as files Yes, your agent Every change, one queue Per item, per platform

How the loop works across your platforms

  1. Scratch pulls every platform into sibling folders. Connect Shopify, Airtable, Notion, or Webflow and pull. The base lands as one folder, one file per record. The store lands as another, one JSON file per product in Shopify's Admin shape. The fields that must not move are locked before any agent reads a byte: prices, variants, inventory, and metafields on Shopify; formulas, rollups, and autonumber fields on Airtable; page bodies and computed properties on Notion. Every platform is still serving exactly what it served an hour ago.
  2. Your AI works the join. Point Claude, Codex, Cursor, or Copilot at the parent folder and give it the brief. The Airtable base is the source of truth. Index every folder by SKU, compare titles, descriptions, and tags across all of them, list each disagreement with the source value, then update the other folders to match. Where the right value is unclear, flag the row instead of changing it. Because these are files, the agent can grep the entire catalog at once, write a 30-line script to build the SKU index, and score how far each description has drifted, instead of paging through an API one record at a time. It holds no credentials to any platform.
  3. You review one queue and publish. Every proposed change, on every platform, arrives as a word-level diff next to the live value. This is the approval workflow the PIM diagrams describe, intake to enrichment to review to sign-off, compressed into one queue and stripped of the PIM. If you have set validators, they screen the batch before you do: SKU format, length rules, select values that match your option sets. Approve per item, and Scratch writes only the approved fields back through each platform's own API. The agent did 99% of the work, finding and fixing the disagreements. The last 1%, deciding which copy is true when the sources split, stays with you. Reject a published change later and the original goes back, per item, per platform.

Start with one pair, the base and the store, and 50 products: a reviewed pass instead of a blind sync. When the disagreement list reads true, add the next platform.

What people use it for

Questions people ask

Can AI find every mismatch before changing anything?

Yes. Run the loop as an audit first. The agent indexes every folder by SKU, compares field by field, and writes you a report of the disagreements it finds, without making an edit. Spot-check the report with a grep: any SKU missing from a folder should appear as a flag, not be silently skipped. Read the list, then decide what the fix pass should do. The pull changes nothing on any platform, so the audit costs nothing to repeat.

Do I need a PIM for this?

Sometimes. At tens of thousands of SKUs, several locales, and approvals split across legal, marketing, and brand, a PIM earns its implementation. If your catalog is hundreds or a few thousand products held by one team, the part of the PIM you actually want is the approval queue, and that part does not need a months-long rollout.

Who signs off before the catalog changes?

You do. Every change the agent proposes sits in one review queue as a diff against the live value, across every platform in the job, and nothing publishes until you approve it item by item. If you need multi-role sign-off chains, where legal approves claims separately from marketing approving copy, that is PIM territory and Scratch does not pretend otherwise.

What happens when two platforms disagree and neither matches the base?

It happens. That is the case worth designing for. Brief the agent to flag those rows instead of changing them, and they come back as a short list rather than as silent edits. You settle each one with both versions in front of you, and the settled value propagates on the next pass.

Does this push to Amazon, eBay, or Walmart?

No. The platforms this catalog job uses are Shopify, Airtable, Notion, and Webflow, and this page claims nothing beyond them. Marketplace listings stay a feed tool's job. The useful split: fix the source catalog in Scratch, then let the feed tool syndicate corrected data. If a marketplace connector would change your answer, tell Curtis.

Do I have to map fields between platforms?

No. Not in a UI, anyway. You state the correspondence once, in the brief, in plain English: the base's Name column is the store's title, the base's Description is the site's body. The agent reads both folders and works the rest the way a person would, including the records where the correspondence is messy.

Which fields stay locked while the AI works?

Plenty. Shopify prices, variants, inventory, and metafields are locked at the connector, with no write path back, so a copy reconciliation cannot touch a Shopify price. Airtable formulas, rollups, lookups, and autonumber fields pass through untouched, and Notion page bodies and computed properties stay read-only. One honest caveat: Airtable number and currency fields are editable, so a price held there moves only if you approve that exact diff in review.

Can I undo a change on one platform after it publishes?

Yes. The original stays next to every published change, per item, per platform. Reject a published change and the old value goes back, without touching the other platforms and without a restore from backup.

Does the AI get write access to any platform?

No. The agent reconciling five platforms holds credentials to none of them. It edits files in a folder on your laptop, and Scratch holds the connections. The only writes that ever happen are the fields you approved, going back through each platform's own connection. There is no path from the agent to the live catalog that does not pass through your review.

See it on your own catalog

The fastest way to settle which copy is true is to see the disagreement list for your own products. See it run on your catalog →, or download Scratch free, connect the base and the store, and pull your first 50 products into sibling folders before the next round of edits goes out. Scratch is free to try; the agent is the one you already pay for.

See it run on your own content.

Curtis runs these calls himself. Thirty minutes, no pitch, no slides. He connects your platforms live and shows you your content as an editable, reviewable diff. Bring anything sticky: a refresh, a migration, or a rebrand.

See it run on your content → or download it free