Why We Built Photos → Sheet: Listing Products With No Supplier Link
20 September 2026 · 4 min read · BulkFlow AI Team
Every sourcing tool we'd built up to this point assumed a starting point: a supplier URL. Paste the 1688 or Alibaba link, pull the structured data, translate it, done. That assumption turned out to be wrong for a meaningful slice of our own users.
A jewellery seller we talked to doing 40 SKUs a week doesn't source from a marketplace listing at all — she buys from a local wholesaler who hands over a box of stock and a WhatsApp photo, no link, no listing, no spec sheet. A seller reselling handmade or local-manufacture goods has the same problem: there's no URL to paste because there's no online listing anywhere upstream of them. For both of these, every tool we'd shipped was useless, because it all started from "paste a link."
The actual gap
What these sellers had instead of a link was photos — product photos, sometimes 5 or 10 of the same item from different angles, sometimes a folder per product if they were organized, sometimes just a phone's camera roll in no particular order. Turning a folder of photos into a listing (name, category, description, price) by hand is the same 10-20-minutes-per-product problem bulk sourcing already solved for link-based products — just with a different starting material.
What Photos → Sheet actually does
Upload a ZIP with one folder per product (or build listings one at a time if you're adding stock as it comes in), and a vision model drafts a name, category, and description per listing directly from the photos — no supplier link exists anywhere in this flow, because there isn't one to have. Per-colour notes and a Model No./SKU get drafted the same way when a product has visible colour variants across its photos, and per-variant pricing is set from there. You still set the price yourself — the AI reads what's visible in the image, not what the product should cost, which isn't something a photo can tell you.
The detail that mattered most in testing
Duplicate photos — the same product shot twice, once in a "new stock" folder and again in last month's folder — were quietly creating duplicate listings in early testing, which is a worse outcome than no automation at all, because now there's a cleanup job that wouldn't otherwise exist. Duplicate-photo detection catches this before it becomes a listing, which is the one thing that had to be right for this feature to be trustworthy rather than just convenient.
Who this is actually for
Not every seller needs this — if you're sourcing from 1688 or Alibaba, the link-based pipeline is faster and more accurate, because a real spec sheet beats anything a photo can tell an AI. Photos → Sheet exists specifically for the sellers who were locked out of every other feature we'd built, because what they had to start from was a photo, not a URL.
Start free and try it on a folder of your own product photos — see also turning product photos into a ready catalogue for a full walkthrough of the flow.
What this actually looks like for the jewellery seller we mentioned
Forty SKUs a week, no supplier link for any of them — just a box of new stock and a phone camera. Before Photos → Sheet existed, her actual workflow was: photograph each piece from a few angles, write a short description by hand, guess at a reasonable category, set a price, and repeat forty times. At even eight minutes per listing — optimistic for someone also running the rest of the business — that's over five hours a week spent purely on listing mechanics, separate from the actual sourcing and selling work.
With Photos → Sheet, she uploads a folder-per-item ZIP after a sourcing trip, the vision model drafts a name, category, and description per piece directly from what's visible in the photos, and her remaining job is reviewing each draft (usually a quick accept-or-tweak, not a rewrite) and setting the price herself — something no photo can tell an AI model, because price depends on her margin target, not on what's visible in an image.
Why duplicate detection had to be right before this shipped
In early internal testing, the same earring design photographed in two different batches — once when new stock arrived, once again a few weeks later for a restock — was creating two separate listings for what was, to a buyer, the identical product. That's a worse outcome than doing nothing automatically, because now someone has to notice the duplication and manually merge or delete one of the listings after the fact. Catching this at the photo-comparison stage, before a duplicate listing is ever created, was treated as a launch-blocking requirement, not a nice-to-have polish item — because a feature that creates new cleanup work isn't actually saving time, it's just moving the time cost somewhere less visible.
The broader pattern this revealed
Building Photos → Sheet after the link-based pipeline was already mature taught us something worth remembering for anything we build next: assuming every user's starting point looks like our own mental model of "the typical workflow" is exactly how a real segment of users gets quietly locked out of a tool that would otherwise genuinely help them. The jewellery seller with no link to paste wasn't an edge case to dismiss — she was evidence the original assumption was too narrow.