Skip to content

Run a spreadsheet of items

Copy your rows from Google Sheets or Excel, paste them in, press Run, and take the results back out as a spreadsheet. Or upload a CSV.

6 stepsAbout 3 min0:45 video
Run a spreadsheet · 0:45 · with sound and captions
›Read the transcript

A spreadsheet of products in. A listing for every one of them, out. Here's how.

Open Workflows, and pick Product listing pack.

In your spreadsheet, copy the column, header and all.

Press Paste rows, paste, and add them. One product per row.

Pick the pool with your API key, and press Run. The rows run side by side, as many at once as your key allows.

Five seconds later, every product has a title, five bullet points and a description.

Export CSV, and it's a spreadsheet again: each product, next to its listing.

FlowArray. Your whole sheet, in one run.

Why it matters

Typing rows is fine for three items and miserable for a hundred. Your products are already in a spreadsheet: copy them in, run them all at once, and take the results back out as a spreadsheet, each one next to the row it came from.

  1. Step 1: Open the template you want to run

    Go to Workflows and pick the template that does the job for one row. We used Product listing pack: a title, five bullet points and a description for every product.

    The Workflows page with the Product listing pack template outlined
  2. Step 2: Check the column's name

    The Items table's column header is the name your sheet's header needs: here item. Rename the header in your sheet to match, or add a column here with + Column. Columns your flow doesn't use are left out (you'll be told which).

    The Items table: one column, named item, and the Paste rows button
  3. Step 3: Copy your rows and paste them in

    In Google Sheets, Excel or Numbers, select the rows with their header row and copy them. Press Paste rows, paste, and press Add rows. Several columns arrive in their own columns; text with commas in it stays whole.

    Paste rows: the copied column, header first, ready to add
  4. Step 4: One product per row

    Each row of your sheet is now a row here, and Items (5) counts them. Fix any cell right in the table before you run.

    Five products, one per row: Items (5)
  5. Step 5: Pick your pool and press Run

    Set Pool to the pool with your API key; the model changes to that provider's default, and you can type another. Press Run: the rows run side by side, as many at once as your keys allow. Our five were done in about five seconds.

    Step 1: the Claude pool picked, and the model changed to claude-haiku-5-5 with it
  6. Step 6: Read the results, then Export CSV

    Every row's result appears under Results. Export CSV downloads them as a spreadsheet: each item's name, the columns it was given, then what it made, ready to open in Sheets or Excel.

    Results: each product's listing (a title, five bullet points, a description) and Export CSV
Open Product listing pack Opens FlowArray. You'll be asked to sign in first if you aren't.
In this article (11)

Paste or upload?

Paste (above) is quickest for a sheet you have open. A saved workflow can also take a whole sheet as a file:

  1. Download the template. Press Batch on a saved workflow's card (or in the Builder's top bar) and download the CSV. The columns come from your flow's own batch card, so the header is always the right shape.
  2. Fill it in. One row per item. Text cells as they are. Image cells take a public image URL.
  3. Upload and run. Choose the file and press Run batch. It becomes a normal run, visible in Runs like any other.

How image columns are named in the CSV

An image column arrives in the CSV with a suffix, so it is obvious what belongs there:

Batch card columnCSV headerContents
product_image (one image)product_image_urlOne public image URL
inspiration (several images)inspiration_urlsSeveral URLs, separated by `` or a comma

The downloaded template includes an example row showing exactly that. (Pasting fills text columns; drop images into their cells, or use the CSV.)

The limits, plainly

  • 200 rows per uploaded sheet. More than that is refused with a clear message rather than half-run.
  • Images must be publicly reachable over http(s) and at most 12 MB each. FlowArray fetches them server-side and stores a copy, so a URL that needs a login, or an internal/loopback address, is refused: a deliberate guard, not a bug.
  • A row with an empty image cell simply has no image for that column. If a step needed one, that item will fail on its own without affecting the rest.
  • An uploaded sheet must be CSV.

Getting it right first time

Before running two hundred rows, run the same sheet cut to three rows and look at the Data tab: column typos and empty cells show up there for $0 rather than costing a full batch. The commonest mistake is a header renamed by hand so it no longer matches the flow's column.

  • Regularly, unattended? Put the sheet's rows behind a schedule or have your system post them to a trigger.
  • From your own code? Use the API instead of a file.