Tools
Product feed tools with Google Sheets
A Google Sheet shows up in feed management in three roles: as the whole catalog, as a merge file that adds columns the store lacks, and as a lookup table inside a rule. Most tools support the first; fewer support the second; Textfinity is built around the third as well. This page shows what Google, Textfinity, DataFeedWatch, Channable and GoDataFeed each publish about Sheets, and which role fits which job.
We connect your store, build the feed and keep it in sync. Updated 2026-10-27.
At a glance
- Google Merchant Center reads a Sheet directly: Products → Add products → Use Google Sheets, with a template, synced every 24 hours by default. No rules, Google only.
- Textfinity reads a Sheet as a shop source, joins one as a merged source by key, and uses one as a lookup inside mapping (replace from google sheet, extract from google sheet) and filters (is in google sheet list).
- DataFeedWatch lists Google Sheets as a custom source on every plan. Channable imports a Sheet that is shared publicly and updated at least daily. GoDataFeed reads a Sheet published to the web as a CSV URL, as primary source or merge file.
- Rule of thumb: store as the source, Sheet as the merge file for columns the store lacks, Sheet as the lookup for mappings the marketing team edits.
Three jobs a Google Sheet does in a product feed
Source. The sheet is the catalog: one row per product, one column per attribute. This is how Merchant Center's own Sheets data source works and how most feed tools import a sheet. It suits small, static catalogs and anything with no store behind it (a wholesaler's line sheet, a service catalog). It does not suit a store whose stock and prices change, because someone has to keep the sheet current.
Merge file. The store is the source and the sheet adds columns the export lacks: GTINs from a supplier, seasonal labels, fitment, a hand-written product highlight. The tool joins the sheet onto the catalog by SKU or id. GoDataFeed calls these merge files; Textfinity calls them merged sources.
Lookup table. The sheet is not joined at all; a rule reads it. A two-column sheet of store category to Google product category, a list of brands allowed on Meta, a map of color names to normalized values. The marketing team edits the sheet and the next rebuild picks it up. Textfinity has three rule types for this: replace from google sheet and extract from google sheet in mapping, and is in google sheet list in filters and conditional mapping rules.
Which product feed tools read Google Sheets, and how
Every tool below publishes Sheets support; the differences are in sharing requirements and roles. Merchant Center starts you from Google's template and syncs every 24 hours by default. DataFeedWatch lists Sheets as a custom source on all four plans. Channable imports a sheet that is shared publicly and asks for it to be updated at the same URL at least daily. GoDataFeed reads a sheet published to the web as a CSV (the URL ends in ?output=csv) as an HTTP primary source or a merge file joined on SKU. Textfinity adds a sheet as a shop source, joins one as a merged source, or reads one from a rule.
| Tool | Sheet as source | Sheet as merge file | Sheet as rule lookup | Sharing requirement |
|---|---|---|---|---|
| Google Merchant Center | Yes, with template | not published | No | not published |
| Textfinity | Yes | Merged source joined by key | replace / extract from google sheet; is in google sheet list | Shared with your organization's Google service account |
| DataFeedWatch | Custom source, all plans | not published | not published | not published |
| Channable | Yes, Setup → Import | not published | not published | Shared publicly |
| GoDataFeed | HTTP source from published CSV | Merge file joined on SKU | not published | Published to the web (public URL) |
From each vendor's help or pricing page, checked 2026-10-27.
Sheet as source: when it is the right call
If there is no store system of record, the sheet is the catalog and that is fine. A wholesaler with 300 lines and monthly price changes, a maker with 40 products, a brand launching before the store exists. Merchant Center's template gives you the column names; a feed tool on top gives you rules (title building, category mapping, filters) and output for channels beyond Google.
Two cautions. First, every tool that reads a sheet by URL needs it reachable: Channable and GoDataFeed require a publicly shared or published sheet, which means anyone with the link can read it; keep cost and supplier columns out of it. Second, a sheet does not know your stock. If you sell from inventory, the store should be the source and the sheet a merge file, or you will advertise sold-out items until someone edits a cell.
Sheet as lookup: the role most tools skip
The highest-value use of a sheet is the one the comparison table shows least support for. Category mapping is the standard case: a store has 80 product types and Google wants its taxonomy ids. Put the pairs in a sheet, point a replace from google sheet rule at it, and the feed's google_product_category fills from the sheet on every rebuild (the rule replaces substrings, so keep column A values specific, or pair it with an is in google sheet list condition for exact matches); add a product type and the merchandiser adds a row, no feed edit needed. The same mechanism handles brand allow-lists for a channel (filter: brand is in google sheet list), color normalization (Navy, navy, NAVY to Navy), size charts, and per-market shipping labels.
Lookups can also stay private. Textfinity reads sheets through your organization's Google service account, so you share the sheet with that account instead of publishing it to the web, which matters when the sheet encodes margins or supplier codes. In Textfinity, we set up the lookups as mapping rules and filters, including is in google sheet list, and share the service account address with you so the sheet never has to be published.
Sources checked
Examples
Worked examples, by situation
Three sheets in three roles, on three kinds of store.
Sheet as the source, with rules on top
Before
Sheet columns: Article, Name, Material, Width, Price EUR, Stock
After
id: TX-0412 · title: Linen Canvas 150cm, Natural, 100% Flax · price: 18.50 EUR · availability: in_stock
How we set it up
We add the sheet as the shop source and create a Google Shopping feed. title is an advanced rule: `[Name] + " " + [Width] + "cm, " + [Material]`; availability is advanced: `if calc{[Stock]} > 0 then "in_stock" else "out_of_stock"`; price gets the suffix " EUR" on the Price EUR column (advanced expressions cannot read a header with a space, so that one stays a plain suffix).
Sheet as a merge file for GTINs and fitment
Before
Shopify export: no barcode on 1,700 variants; fitment lives in the supplier's sheet keyed by SKU
After
gtin filled for 1,650 variants; custom_label_0: Toyota Camry 2018-2024; 50 unmatched SKUs excluded
How we set it up
We join the sheet as a merged source on sku, map gtin as a rename of the merged gtin column and custom_label_0 as a rename of merged fitment, and add an exclude filter where the merged gtin column is blank.
Sheet as a lookup for Google product categories and a brand allow-list
Before
google_product_category: (empty); Pinterest feed includes 12 brands the brand agreements do not cover
After
google_product_category: 212 (from product_type "Dresses"); Pinterest feed limited to the 38 approved brands
How we set it up
We map google_product_category with replace from google sheet (product_type → category id, 80 rows, longer types such as Maxi Dresses above Dresses because it replaces substrings); on the Pinterest feed, an include filter "brand is in google sheet list" points at the approved-brands sheet, whose first tab holds the list.
Copy this plan
Set up a Google Sheet in the right role
Five steps. We do steps three and four in Textfinity with you; the last one happens in Merchant Center.
01
Decide the role
No store system: the sheet is the source. Store exists but lacks columns: merge file. Store has the data but the mapping changes often: lookup. Most stores end up with the second and third, not the first.
02
Shape the sheet
One header row, one row per product or per key, no merged cells, no double quotes around values, a key column (sku or id) that matches the store exactly, including case. Keep lookup sheets to two or three columns.
03
Connect it
As a source it is a shop; as a merge file it joins a shop; as a lookup it is referenced from a rule.
What we set up: We add the sheet as the shop source, as a merged source joined on sku, or as a replace from google sheet rule on the column it feeds.04
Build the feed and check the join
Create the channel feed, then search a few products in the explorer and confirm the merged or looked-up values appear. Unmatched merge keys show as empty and unmatched lookup values pass through unchanged; filter them out or fix the key.
What we set up: We create the feed from the channel template, check the joined values in the product explorer, and add an exclude filter where the joined column is blank.05
Add the feed and set the schedule (outside Textfinity)
Add the feed URL in Merchant Center as a scheduled data source; we do it with you, through access you give us or a short walk-through. The shop's sync schedule re-reads the sheet on each run, so edits land on the next rebuild without touching Merchant Center again.
Customization tips
Make it yours
Never publish a sheet with cost columns
Tools that read a sheet by public URL expose every tab. Keep a separate, minimal sheet for feed data, or use a tool that reads the sheet through an account connection so it can stay private.
Use the store for stock, always
A sheet as the source means hand-edited availability. If a store exists, make it the source and demote the sheet to a merge file. Merchant Center's own 24-hour sync does not fix a stale cell.
Keep lookup keys normalized
An is in google sheet list check fails on "Dresses " with a trailing space, and replace from google sheet matches substrings, so a Dresses row also rewrites Maxi Dresses. Run feed hygiene's value consistency check on the key column and fix the values at the source; a regex rule cannot clean the key first, because each column takes one rule.
Side by side
What we could verify
| Google Merchant Center | Textfinity | DataFeedWatch | Channable | GoDataFeed | |
|---|---|---|---|---|---|
| Sheet as primary source | Yes, template provided | Yes, custom source on all plans | Yes, Setup → Import | Yes, published CSV URL | |
| Sheet as merge / supplemental | not published | Merged source joined by key | not published | not published | Merge file joined on SKU (case-sensitive) |
| Sheet as rule lookup | replace / extract from google sheet; is in google sheet list | not published | not published | not published | |
| Sharing needed | not published | Organization's Google service account | not published | Public | Published to web (public URL) |
| Refresh | Every 24 hours by default | Per-shop schedule; edits rebuilt in ~5 min | 1 / 2 / 5 per day by plan | Recommended at least daily; 1 / 3 / 24 syncs by tier | On the import schedule, or a manual import |
| Rules on the sheet data | Transforms, regex, DSL, 26 filter operators | Rules engine | If/then rules | Rules engine | |
| Channels from the sheet | Google only | 11 templates plus custom feeds | 2,000+ | 6 on the Medium package | 60+ |
| Price | Free | Quoted per catalog | $64/mo and up | €59/mo and up (5K-item package) | $99/mo Plus |
| Field limits stated | not published | not published | not published | not published | 200 fields across primary and merge files |
Checked 2026-10-27 on Google Merchant Center Help, Textfinity, DataFeedWatch's pricing page, Channable's help center and GoDataFeed's help center. Prices as each page shows them; Channable in euros.
FAQ
Questions about product feed tools with google sheets
Can Google Merchant Center read a product feed from Google Sheets?
Yes. In Merchant Center choose Products → Add products → Use Google Sheets, start from Google's template or your own sheet, and Merchant Center syncs it on a schedule that defaults to every 24 hours. It is free and needs no third-party tool, but there are no rules and it serves Google only.
Which feed tools can use a Google Sheet as a lookup table in rules?
Textfinity publishes three rule types for it: replace from google sheet and extract from google sheet in mapping, and is in google sheet list in filters and conditional mapping rules. DataFeedWatch, Channable and GoDataFeed publish Sheets as a source or merge file; their pages do not describe a lookup rule.
Does the sheet have to be public?
For Channable the help center says it must be shared and publicly available; for GoDataFeed it must be published to the web as a CSV, which makes the URL readable by anyone who has it. Merchant Center's Sheets help page does not state a sharing requirement. Textfinity reads the sheet through your organization's Google service account, so it can be shared with that account rather than published.
Should my whole catalog live in a Google Sheet?
Only if there is no store system of record. If a store exists, use it as the source so stock and prices update automatically, and use the sheet for columns the store lacks (merge file) or mappings that change often (lookup).
Set up for you
Have your Google Sheet put to work as a lookup.
Send us your store and your category or brand sheet. We point a replace from google sheet rule at it in Textfinity and publish the feed, so your team keeps editing the sheet and the feed follows.
Tell us your store and channels. We reply within 24 hours.