Introduction
Product feed synchronization automatically links your e-commerce catalog to JOIN Studio. You provide the URL of your feed (CSV, JSON, or XML), JOIN detects the columns, sets up a mapping, and keeps everything up to date every 6 hours.
The key idea: you configure your feed once. Then, every new product, price change, or out-of-stock item in your store is automatically reflected in your JOIN stories.
Why connect your feed?
This will allow you to tag your products within stories, create a unique dynamic widget for your product pages, and add products to the cart directly from the story.
Zero manual import
Products appear automatically at every sync. Your JOIN catalog always reflects your store's current state.
🔗 Set up once
The mapping between your feed and JOIN is configured at setup. It automatically applies to all subsequent syncs.
🛒 Compatible with any public CSV/JSON/XML feed exposed by your CMS:
WooCommerce, Shopify, Prestashop, Magento, Google Shopping feed… CSV, JSON or XML, JOIN detects everything.
🎨 Native variants
Colors, sizes, and materials are intelligently grouped under a parent product, just like in your store.
How it works
Here is a tutorial video .here
Feed synchronization is an automated ingestion pipeline that imports and maintains your catalog in JOIN Studio from an external URL. Concretely, there are three key components:
The source: the URL of a CSV, JSON, or XML file hosted on your side.
The mapping: the match between your feed columns and JOIN's standard fields (title, price, image, etc.).
Markets and currencies: useful if you sell in multiple countries.
JOIN validates your feed, applies the mapping, and resyncs your catalog on a scheduled basis.
Good to know: each source URL corresponds to a single feed. Your synced products are available in Studio via the product selector. If you delete the feed, the catalog disappears from Studio, but products already tagged in your existing stories remain in place.
Before you start
To set up a feed without any issues, here is what you will need:
Element | What you need |
A public and stable URL | Your feed URL must be accessible via HTTPS, without authentication, from any network. To check, open it in a private browsing window: if the file downloads without a login, you are ready. |
At least 5 fields in your feed | Product identifier, title, product URL, image URL, and currency. Column names don't matter, our AI handles that, but these 5 pieces of information must exist in the source. |
Which format should you choose if you're starting from scratch?
We recommend CSV: it is the simplest to generate, read, and debug. But if you already have a Google Shopping feed (XML), it will work directly, without any modification.
How to retrieve the URL of your product feed?
The idea is simple: we need a public URL (HTTPS) that points to your product catalog, in CSV, XML or JSON format. Most e-commerce platforms generate this type of feed natively or through a free extension.
Here are the most common paths depending on your platform:
WooCommerce: the free extension Product Feed Pro by AdTribes generates a Google Shopping feed in a few clicks. The URL appears in the feed list once created.
PrestaShop: we've developed a dedicated JOIN plugin that creates the feed automatically (and also integrates the tracking scripts). Documentation here.
Magento / Adobe Commerce / Salesforce Commerce Cloud / Shopware / other CMS: your tech team or your integrator can generate a catalog export in CSV or XML format, hosted on your own domain.
You already have a Google Merchant Center feed: GMC is usually connected to a feed URL that can be retrieved.
How to find your source URL in GMC
Sign in to Google Merchant Center.
Go to Products → Feeds.
Click on your primary feed.
Open the Settings tab.
In the File retrieval or File source section, if you see a URL starting with
https://, that is your source URL.
Copy it and send it to us — that's the URL we need.
What to check:
The URL must be accessible in HTTPS and without authentication (test it in a private/incognito window — a file should download without any login).
The feed must contain at minimum: product ID, title, product URL, image URL and currency.
Set up your feed in 3 steps
Go to Settings → Shopping and click Add Product Feed. A wizard guides you through 3 steps.
Basic settings
Give your feed a name and provide its URL.
Field | What is expected |
Feed name | A readable label for you to find it — for example Spring 2026 Catalog or FR Products. |
Feed URL | The HTTPS address of your source file. A URL already used by another JOIN feed will be rejected — each feed has its own unique URL. |
Currencies and markets
This step links your feed to one or more currencies and one or more markets. This is useful if you sell in multiple countries with different prices.
For each of these two fields (Currency and Market), there are two scenarios:
Your feed already contains the column: AI detects it automatically. Each product then keeps its own currency or market.
Your feed does not contain the column: you enter a fixed value that applies to all products (for example EUR for currency, or EMEA as a market label).
Tip: the fixed market value is a free-form field. You can enter anything you want (FR, Europe, B2B…) — it is only used to segment your products in Studio.
Attribute mapping
JOIN analyzes your feed and suggests a match between your columns and JOIN's standard fields. You can adjust each suggestion if it seems incorrect.
Here are the JOIN fields and column names commonly found in e-commerce feeds:
JOIN Field | Common column names | Status |
| item_group_id, group_id, parent_id — this is the parent product ID, not the variant ID | Required |
| id, sku, gtin, variant_id — the exact ID used to attach product-page stories | Recommended |
|
| Required |
|
| Required |
|
| Required |
| price (e.g.: 19.99 EUR — currency can be extracted from the same field) | Currency required |
|
| Optional |
| availability, stock, in_stock, disponibilite | Optional · default in_stock |
| additional_image_link, extra_images, images (multiple columns accepted) | Optional |
| brand, marque, manufacturer | Optional |
| color, couleur, size, taille, material… | Optional |
|
| Optional · useful for multi-market |
Important: your feed's column names do not need to match those above exactly. This table is just a reference to help you verify or correct what AI has suggested.
Once the first synchronization is complete, a feed card appears in your list, with:
the number of synced products,
the status OK, WARNING, or FAILED with timestamp,
the most common errors in case of WARNING,
the View errors, Edit, and Delete buttons,
a Domains field to associate domain names with a market (useful for multi-site stores).
Monitor your feed on a daily basis
How often does JOIN update your catalog?
Your feed is resynced every 6 hours, i.e. 4 times per day. In practice:
New products appear in Studio at the next sync (within 6 hours maximum).
Products removed from your source feed are automatically marked as inactive.
If a missing product reappears in your feed later, JOIN reactivates it automatically, with no action required on your part.
Sync duration: approximately 20 seconds for fewer than 10,000 products, 1 min 30 for 150,000 products.
Understanding statuses
Status | What it means | What to do |
OK | Everything went well, all valid products were imported. | Nothing to do, your catalog is up to date. |
WARNING | Some rows in the feed were skipped (missing required field, malformed value). Other products were imported correctly. | Click View errors on the feed card. You will see the most common reasons to correct the source if needed. |
FAILED | The ingestion stopped, no products were imported for this run. | Check that the URL is accessible (in private browsing), that the file format is correct, and that the 5 required fields are present. If not, open a ticket with your CSM including the feed URL. |




