Set Up Real-Time Data Feed Max on Shopify

Three ways to connect your Shopify catalog to your AI chatbot

Back to Real-Time Data Feed Max
Pro Plan

What Your Feed Should Look Like

Real-Time Data Feed Max accepts any public URL returning JSON or plain text. The AI reads whatever you give it — products, services, bookable slots, property listings, menus, opening hours, anything — and uses it to answer visitor questions. There is no required shape or field name.

The one exception is Dynamic Product Cards. If you want matching items to render as visual cards in the chat, use these specific field names: name, price, description, image_url, button_link, in_stock.

Example — products (triggers Dynamic Product Cards)

{
  "products": [
    {
      "name": "Wireless Headphones Pro",
      "price": "$149.99",
      "description": "Premium over-ear wireless headphones with ANC.",
      "image_url": "https://example.com/images/headphones.jpg",
      "button_link": "https://example.com/products/headphones",
      "in_stock": true
    }
  ]
}

Example — services (any shape works)

{
  "services": [
    {
      "service": "Deep tissue massage",
      "duration_minutes": 60,
      "price_from": "$95",
      "therapists_available": ["Anna", "Mark"],
      "booking_link": "https://example.com/book/deep-tissue"
    },
    {
      "service": "Haircut & style",
      "duration_minutes": 45,
      "price_from": "$55",
      "booking_link": "https://example.com/book/haircut"
    }
  ]
}

Example — plain text (works too)

Opening hours: Mon-Fri 9-6, Sat 10-4, closed Sunday.
Delivery: Free over $30, minimum order $15, within 5 miles.
Lunch specials (weekdays only):
- Margherita pizza $12
- Caesar salad $9
- Soup of the day $7

Rule of thumb: Use descriptive field names the AI can interpret (service, duration, price, location, etc.). If Dynamic Product Cards make sense for your business, follow the exact field names above. If they don't, use whatever shape fits your data — the AI still searches it and answers questions correctly.

Option 1 — Built-in /products.json (fastest)

Every public Shopify store exposes a JSON feed of published products at /products.json. Paste this URL straight into Real-Time Data Feed Max:

https://your-store.myshopify.com/products.json?limit=250

Works when: Store is publicly live (no password page) and has up to 250 products.

Caveats: Maximum 250 products per request. Field names (title, images[0].src) don't match our Dynamic Product Card format, so cards may not render. Stock shows as a true/false flag, not an exact quantity.

Option 2 — Liquid JSON Template (recommended)

A custom Liquid template lets you output your whole catalog in exactly the shape Real-Time Data Feed Max wants, so Dynamic Product Cards render correctly.

1
Open your theme's code editor Shopify admin → Online Store → Themes → three dots on your live theme → Edit code.
2
Create a new template Under Templates → Add a new template → type: page, name: ai-feed.
3
Paste the code below and save Replace the default content with the Liquid code shown below.
4
Create a page using the template Shopify admin → Online Store → Pages → Add page → title "AI Feed" → template: page.ai-feed → Save.
5
Use your page URL in Real-Time Data Feed Max It will be your-store.myshopify.com/pages/ai-feed.
{% layout none %}
{"products": [
  {%- for product in collections.all.products -%}
  {
    "name": {{ product.title | json }},
    "price": "{{ product.price | money }}",
    "description": {{ product.description | strip_html | truncate: 200 | json }},
    "image_url": "https:{{ product.featured_image | img_url: '400x' }}",
    "button_link": "{{ shop.url }}{{ product.url }}",
    "in_stock": {{ product.available }}
  }{% unless forloop.last %},{% endunless %}
  {%- endfor -%}
]}

Large catalogs: By default, collections.all.products is paginated — first page returns up to 50 items, max 1000 with a Liquid paginate tag. For catalogs of several thousand products, use Option 3.

Option 3 — Admin API via a Proxy

For catalogs over a few thousand products, real stock quantities, or metafields, call the Shopify Admin API from a small server-side script.

1
Create a Shopify custom app Shopify admin → Apps → Develop apps → Create an app. Give it read_products and optionally read_inventory.
2
Install it and copy the Admin API access token It starts with shpat_ — keep it server-side, never expose it in the URL.
3
Deploy a small endpoint Cloudflare Worker, Vercel function, or Render service all work. It should paginate /admin/api/2024-10/products.json with the token, transform each product into our JSON shape, and return the combined array.
4
Paste your endpoint URL into Real-Time Data Feed Max The endpoint is public; the shpat_ token stays inside your script.

Tip: You can also expose this endpoint under your own shop domain using Shopify's App Proxy feature (e.g. your-store.myshopify.com/apps/ai-feed) so everything stays on your domain.

Troubleshooting

I see a password page instead of JSON

Your site is in maintenance, staging, or password-protected mode. Real-Time Data Feed Max needs a fully public URL.

Real-Time Data Feed Max says the feed failed

Open the URL in a private browser window. If you don't see JSON, the URL is wrong or the endpoint is down. If you see JSON but we still fail, the response may be missing a Content-Type: application/json header or exceeding the 10,000,000 character limit.

Product cards don't render

Dynamic Product Cards require specific field names (name, price, image_url, button_link, in_stock). If your platform uses different names, reshape the response in a small custom script before exposing it.

Data looks wrong or outdated

The feed auto-refreshes every 24 hours. For immediate updates, click Refresh Now in Real-Time Data Feed Max. For live fields (price, stock), the AI pulls fresh data on every message — so the 24h cycle only affects which items are known, not their current state.

Feed size exceeded

Real-Time Data Feed Max accepts up to 10,000,000 characters (~25,000 items). If you exceed that, trim fields (skip long HTML descriptions), split your catalog, or use the standard Real-Time Data Feed alongside for secondary data.

Still stuck? Start with the simplest option for your platform and verify the URL works in a browser before pasting it into Real-Time Data Feed Max. You can always upgrade to a more advanced option later — only the URL field changes on our side.