Feed Stack: One Inventory from Several Feed URLs
Data sources · Updated 8 Nov 2026
Some inventories are published as several feed URLs that together make one data set - most often a dealership with one feed for New vehicles, one for Used and sometimes a third for Certified. Feed Stack reads them all in one project and stacks their records into one inventory.
Feed Stack or Feed Mixer?
Feed Stack adds rows, Feed Mixer adds columns.
- Use Feed Stack when each URL holds different records of the same inventory, in the same columns: the New feed and the Used feed list different vehicles.
- Use Feed Mixer when a second source holds extra columns for the records you already have, matched on a shared ID: a pricing sheet or a stock file.
Both live on the project's Data Sources tab, the Feed Stack card above the Feed Mixer. A project can use both: the parts are stacked first, then the Mixer joins its columns onto the whole inventory.
What one stacked project gives you
- One inventory. Every refresh reads every part and serves their records together: Source Data, your channel feeds and their live URLs carry the whole stack.
- One Main ID and one Sold Source Data. A record that leaves any part is tracked as removed, like in any other project.
- One set of feeds. You map once; the parts share the project's feeds and do not add to your feed count.
- One record limit, counted over every part together.
Feed Stack works on projects that read a feed URL. Stores whose items are read one by one, or whose records are read from their web pages, cannot be stacked; the card says so on those projects. It is included on some plans - see Plans and Billing for how many feed URLs each plan stacks.
Adding a part
On the Data Sources tab the Main source is the project's own feed URL (you change it on the Settings tab). Click + Add part and choose how to find the next one:
- Feed URL - paste the part's feed address, for example the Used inventory file your vendor publishes.
- Dealer website - paste the dealership's website address and Ducted finds its inventory feed, the same way as when you create a project.
Give the part a label if you like (Used, Certified), then click Check feed. Ducted reads the feed's first page and compares it with the main source:
- The project's Main ID column must be in the feed, so every record can still be told apart.
- At least 80% of the main source's columns must be in it. With fewer, the part is refused and the missing columns are listed.
- The main source's address, or another part's, cannot be added a second time.
- IDs that already exist in another part are a warning, never a refusal: the earlier part's record is kept and the later copy is dropped, the main source first and then the parts in their order. A duplicate-ID finding in Feed health on a stacked project therefore means duplicates within one part.
Fetch the main source at least once before you add a part - the check compares against it. When the check passes, click Add part: every part is read straight away.
Recognised platforms
When the main source comes from a recognised platform and the new part is on the same site, the part is read the same way where that platform allows it. Otherwise the part is read as a plain feed URL, and the check result says so. To keep a platform's columns for another dealer on that platform, add the part through Dealer website.
Parts without a condition column
New and Used feeds often do not say which they are: every record of the Used feed is used, so the feed never writes it. Give a part a Fixed value, a column and a value stamped on every record of that part - for example condition = used on the Used part, and condition = new on the main source.
- Always overrides the feed's value (on by default): every record of the part gets the value, whatever the feed says.
- Switched off, only records whose cell is empty or missing get it.
A changed fixed value applies from the next refresh to every record of the part, also while the part is serving its last records. The column check counts a part's fixed column as present. The main source's fixed value belongs to the stack: removing the last part removes it too, and the confirmation says so.
When a part cannot be read
A part that cannot be read on a refresh - its address is down or blocked, or the feed comes back empty - keeps serving its last records. The other parts are read as usual, so one failed part never shrinks the inventory and none of its records land in Sold Source Data.
- On screen. The part's row on the Data Sources tab says when it could not be read and the date its records are from; the Data Sources tab and the Source Data row on the Feeds tab show how many parts are on their last records.
- By email. When a part cannot be read during a scheduled refresh, Ducted emails you right away. You get at most one such email per project per 24 hours, and none for a fetch you run yourself - you see the result on screen. Switch it off per project under Settings → Alerts → Part problems (Feed Stack); like every alert email it also needs the account-level System alerts email preference to be on.
- After 3 days without a good read, the project's Alerts page gets one Part on old records alert, and our team is told as well. It comes once per failing stretch: a new one only after the part read again and then failed for another 3 days.
Nothing is dropped automatically: a part keeps serving its last records until it reads again or you remove it. A part that has never been read successfully has nothing to serve, so when it fails the whole refresh fails and your existing data is kept until the part reads or you remove it.
Changing, pausing and removing a part
- Changing a part's feed URL reads and checks the new address before it is saved, like adding a part. The part then starts over from the new address: the old address's records are no longer what it serves when a read fails.
- Removing a part takes its records out of your feeds at once. They are not added to Sold Source Data - removing a part is not a sale.
- Moving to a plan that stacks fewer feed URLs pauses the parts over the new limit, and their records leave your feeds the same way. Nothing is deleted: after you upgrade again you switch them back on yourself from the Data Sources tab.