Recipe · E-commerce

Listing export

Opens your seller dashboard's listings page in this profile's signed-in session, reads the rows it draws, and files them into the Listings dataset. The selectors are illustrative — every dashboard draws its table differently, so expect to adjust the row selector once for yours.

On this page

What it does

Reads your seller dashboard's listings page in this profile's session and files one row per listing.

It runs against one profile, through that profile's own proxy and with its own cookies — so the pages load the way that account's owner would see them. It navigates, so give it a profile whose session you are happy to have in use.

One profileIts own proxy and cookiesThe Listings table3 settings on the run

The 5 steps

The real tree, read out of the pack the launcher ships. Indentation is nesting: the steps under a loop run once per row, and the ones under a branch run only when the condition above them holds. Every {{…}} is a value filled in at run time — from the row being walked, from a setting on the run, or from the profile itself.

gotoOpen the listings pageGo to {{vars.listings_url}}
waitWait
evaluateRead the listingsRun script
saveRowsFile the listingsSave to Listingson failure: continue
screenshotScreenshoton failure: continue

Each of those is one of the step types on the automation reference, with the same fields the editor shows and the same fields an agent is handed over the local API.

The tables it uses

These load with the recipe. A dataset is a typed table your workspace owns — the columns are named and typed up front so the steps can address them, and every one of them is yours to rename, extend or fill from a file afterwards.

Listings

writes

What the listing export harvests off your own seller dashboard: one row per listing, per store.

row_key
Key · text
store
Store · text
sku
SKU · text
title
Title · text
price
Price · number
status
Status · text
checked_at
Checked at · datetime
profile
Profile · profile

Re-running updates the row it already wrote rather than adding a second one. That is what the match column in the save step is for, and it is the difference between a status check and a table that doubles in size every pass.

What it asks you for

Settings are filled in when the run starts, and every profile can hold its own values — which is how one workflow serves a whole folder of accounts.

store
Store name · text · required

How this store should be named in the Listings table. It becomes half of the row key, so two stores never overwrite each other's SKU-1 row.

listings_url
Listings page · text · required

Your dashboard's own listings or inventory page, as you reach it while signed in. Nothing is stored: the run uses the session already in this profile.

row_selector
Row selector · text

A CSS selector matching one listing row. The default fits an ordinary table; a card grid or a virtualised list needs its own. Open the page and check before trusting a run.

Loading it

In the launcher, open Automations, choose Load a starter pack, and pick E-commerce. Untick anything you do not want. The tables land first, then the workflows, then a project called E-commerce Ops that links them together.

What arrives is an ordinary automation row. Open it in the editor, change a step, rename it, delete it — nothing in the app treats it as special afterwards, and loading the pack a second time makes a fresh copy rather than overwriting the one you edited. Tables are the opposite: an existing table of the same name is reused and keeps its rows.