A product feed sounds like something for businesses that ship boxes. If you sell software, it’s easy to conclude the Products section isn’t for you.
It is. We listed Rankability’s subscription plans as products, and the feed passed the preview and processed with no issues.
A plan isn’t a physical product, though, so a few of the choices are different. Here’s how we set ours up, and what we’d do differently next time.
Get the free ChatGPT Profile Audit Kit
Software and services can go in a feed
The feed has an is_digital field. We set it to true for each subscription plan, and every row was accepted.
That’s the evidence we have: one feed, three software subscriptions, processed without issues. We haven’t tested a service such as consulting or a booked appointment, so if that’s what you sell, read the preview closely.
What counts as a product
A product needs a name, a description, a link, an image, an availability value, and a price. For software and services, that usually means:
- Each paid plan, as its own row.
- Each billing interval, if monthly and annual have different prices.
- Each fixed-price package or service.
Leave out anything without a listed price. “Custom” and “Contact us” plans can’t go in, because the price field is required. We skipped our enterprise plan for that reason.
The choices that matter
One ID per plan and interval
item_id has to be unique and stable. Build it from the brand, the plan, and the interval, such as brand-growth-monthly. Don’t change it later. A new ID is a new product.
Titles that say what the plan is
A plan name alone, such as “Growth”, means nothing out of context. Add a few words: “Growth plan, monthly subscription”. Keep it to 150 characters or fewer.
Descriptions taken from your pricing page
Use what the plan includes, as your pricing page states it. Don’t write new claims for the feed. If the feed says a plan includes something the pricing page doesn’t, you’ve created a mismatch you’ll have to explain.
A link for each plan, if you have one
All three of our plans linked to the pricing page, because we don’t have a page per plan. The audit flagged it. A link that lands on the exact plan is better than one that lands on a page of three.
If you can link to a plan-specific signup or an anchor on the pricing page, do.
An image for each plan
We used one generic image for all three plans. It worked, and it’s weak. Wherever those products are shown, all three carry the same image.
Give each plan its own image. It has to be a direct link to a JPEG or PNG. WebP isn’t accepted in feeds.
Availability
A subscription you can buy today is in_stock. For a plan you’ve announced but not launched, pre_order looks like the right value, though that’s our inference.
Back it up on your pricing page
When we audited our own profile, the feed passed and the pricing page failed. It had FAQ schema and nothing else. No Product or Offer markup described the plans the feed was listing.
Add Offer schema to your pricing page with the same plan names and prices as the feed. Then the two sources agree, and a price on one confirms the price on the other.
Keep prices in sync
Software pricing changes more often than people expect: a new tier, an annual discount, a renamed plan.
An uploaded file doesn’t update itself. If you change a price and forget the feed, ChatGPT has the old one. Two ways to avoid that:
- Use a hosted URL, and update the hosted file when the pricing page changes.
- Add the feed to your pricing change checklist, next to the website and the billing system.
The steps
- List each paid plan and interval with its price.
- Build the file with the nine required fields, plus
is_digital. - Add it in Products, choosing a hosted URL if prices change.
- Check the preview for errors and confirm the names and prices.
- Confirm, then check that Upload history shows Processed and Issues is empty.
Our guide to adding products to ChatGPT with a product feed covers each step, and the complete guide to ChatGPT business profiles covers the rest of the profile.
Get the free ChatGPT Profile Audit Kit
Sources and method
We added a three-product feed of subscription plans to Rankability’s own profile on November 11, 2026. Each row was marked as digital and passed the preview and processing. Field rules come from OpenAI’s product feed documentation. We haven’t tested non-subscription services, and we don’t know how ChatGPT displays digital products differently from physical ones, if it does.