HomeShopify & E-commerceBuild a Shopify Product FAQ Generator…

Build a Shopify Product FAQ Generator with n8n and Gemini

Build a Shopify Product FAQ Generator with n8n and Gemini









A shopify product FAQ generator built in n8n reads every product in your catalog, sends its title and description to Google Gemini, and writes four ready-to-publish question-and-answer pairs straight back into the product description. Instead of writing FAQs by hand for hundreds of products, you run one workflow on a schedule and let it fill the gaps. This guide walks through the exact seven-node build, the Gemini prompt that keeps answers honest, and the marker trick that stops it from ever duplicating work.

What it does

Product FAQs answer the questions that stop a shopper from clicking buy: sizing, materials, care, compatibility, what is in the box. Most stores skip them because writing a good set for every product is slow, boring work. This workflow removes the manual step. On a weekly schedule it pulls your products from Shopify, checks which ones do not yet have a generated FAQ, asks Gemini to draft four concise pairs from the product data you already have, and appends that HTML to the bottom of the product description.

The result is a catalog where every product page answers common buyer questions in its own words, built once and topped up automatically as you add new products. It runs quietly in the background and belongs in a wider n8n Shopify automation stack alongside your inventory, order, and email workflows.

Why it beats the default

The default is one of two bad options: pay a copywriter to work through your catalog product by product, or install a FAQ app that charges a monthly fee and locks the content inside its own widget. Both cost more over time and neither scales cleanly when you add fifty new SKUs.

Building it in n8n changes the economics:

  • The FAQ lives in the native body_html field, so it is indexed with the rest of the description and stays yours if you ever change themes or apps.
  • A hidden marker comment makes every run idempotent. Products that already have a FAQ are skipped, so you can run it as often as you like with zero duplicate blocks.
  • Gemini reads the title and existing description, so the questions are grounded in the actual product rather than generic filler.
  • There is no per-product fee. On the Gemini free tier a small catalog costs nothing, and paid usage is a fraction of a cent per product.

What you need

  • An n8n instance (Cloud or self-hosted, version 1.0 or newer).
  • A Shopify custom app access token with read and write access to products. If you have not connected Shopify to n8n yet, follow connect Shopify to n8n (2026 method) first.
  • A Google Gemini API key. The free tier for gemini-2.5-flash is enough to test and run small catalogs.
  • About 25 minutes to build from scratch, or under 10 minutes with the ready-made template below.

Node-by-node list

Seven nodes, one straight path with a batch loop in the middle:

# Node Type Job
1 Weekly Schedule Schedule Trigger Runs the workflow every Monday at 6am.
2 Get Products Shopify Fetches products from your store.
3 Skip If FAQ Exists Filter Drops products whose description already holds the marker.
4 Loop Over Items Loop Over Items (batch) Processes one product at a time.
5 Generate FAQ (Gemini) HTTP Request Sends product data to Gemini and gets FAQ HTML back.
6 Build New Description Edit Fields Joins the old description, the marker, and the new FAQ.
7 Update Product Shopify Writes the combined HTML back to the product.
Weekly Schedule -> Get Products -> Skip If FAQ Exists -> Loop Over Items
                                                              |  (each item)
                                                              v
                              Generate FAQ (Gemini) -> Build New Description -> Update Product
                                                                                     |
                                                              (loop back to next item)

Step-by-step build

1 Weekly Schedule (Schedule Trigger)

Add a Schedule Trigger. Set the rule to run weekly, on Monday, at hour 6. This paces the workflow so it tops up FAQs on new products once a week without hammering the Shopify or Gemini APIs. You can change the interval to daily if you add products often.

2 Get Products (Shopify)

Add a Shopify node. Set Authentication to Access Token, Resource to Product, and Operation to Get Many. Leave Return All off and set a Limit of 50 so each run works through a manageable batch. Select your Shopify credential.

{
  "id": 8471290361124,
  "title": "Cedar Trail Insulated Water Bottle",
  "body_html": "<p>A 24oz double-walled stainless steel bottle.</p>",
  "product_type": "Drinkware"
}
💡

Tip: Keeping the limit at 50 means a 500-product catalog finishes over ten weekly runs. Because the filter skips finished products, no work is ever repeated.

3 Skip If FAQ Exists (Filter)

Add a Filter node. Create one condition: left value {{ $json.body_html || '' }}, operator String / does not contain, right value <!--faq-generated-->. Only products missing that hidden comment pass through, which is what makes the whole workflow safe to re-run.

4 Loop Over Items (batch)

Add a Loop Over Items node with Batch Size 1. This sends products through the Gemini and update steps one at a time, which keeps you inside API rate limits and makes failures easy to trace. Its lower “loop” output feeds the Gemini node; the update node connects back into it.

5 Generate FAQ (Gemini) (HTTP Request)

Add an HTTP Request node. Method POST, URL https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent. Set Authentication to Predefined Credential Type and pick Google Gemini(PaLM) Api. Under Body, choose JSON and paste this expression:

={{ JSON.stringify({
  contents: [ { parts: [ { text:
    "You are an expert ecommerce copywriter. Using only the product " +
    "information below, write 4 concise, genuinely useful FAQ " +
    "question-and-answer pairs for an online store product page. " +
    "Format the output as clean HTML: wrap each question in <h3> tags " +
    "and each answer in <p> tags. No section heading, no markdown, no " +
    "code fences. Never invent specifications, sizes, prices, or shipping " +
    "claims; if a detail is missing, give a sensible general answer. " +
    "Product title: " + $json.title + ". Product description: " +
    ($json.body_html || "").replace(/<[^>]+>/g, " ").slice(0, 1500)
  } ] } ],
  generationConfig: { temperature: 0.4 }
}) }}
📌

Note: The prompt strips HTML tags out of the description before sending, and the “never invent” instruction is what keeps Gemini from fabricating sizes or shipping promises. Keep both.

6 Build New Description (Edit Fields)

Add an Edit Fields node with two string assignments. The first, productId, pulls the id back from the loop: {{ $('Loop Over Items').item.json.id }}. The second, newBodyHtml, stitches the pieces together:

={{ ($('Loop Over Items').item.json.body_html || '')
    + 'n<!--faq-generated-->n'
    + $json.candidates[0].content.parts[0].text }}

The original description comes first, then the marker comment, then the Gemini FAQ. Referencing the loop node instead of the previous node is what lets you reach the product data that Gemini’s response replaced.

7 Update Product (Shopify)

Add a second Shopify node. Authentication Access Token, Resource Product, Operation Update. Set Product ID to {{ $json.productId }}, then under Update Fields add Body HTML set to {{ $json.newBodyHtml }}. Connect its output back to the Loop Over Items node so the batch advances to the next product. Save, then toggle the workflow Active.

Common mistakes

  • Wiring the update node to the wrong loop output. The FAQ node connects to the lower “loop” output of Loop Over Items, and Update Product connects back into the node, not to the “done” output.
  • Referencing $json.title inside Build New Description. By that point the item is Gemini’s response, so the product fields are gone. Use $('Loop Over Items').item.json to reach them.
  • Giving the Shopify token read-only access. The update step needs write access to products, or it fails with a 403.
  • Removing the marker comment to “clean up” the HTML. The comment is invisible to shoppers and is the only thing preventing duplicate FAQ blocks on the next run.
  • Sending the full raw body_html to Gemini. The prompt trims it to 1500 characters after stripping tags; long descriptions otherwise waste tokens and can confuse the model.

Cost at realistic volume

The only paid piece is Gemini, and each product uses one short call. A 500-product catalog processed at 50 per week finishes in ten weeks, then only new products are touched.

Catalog size Gemini calls (first pass) Rough cost
50 products 50 Free tier
200 products 200 Free tier or a few cents
500 products 500 Under $1
Ongoing (new products) Only new SKUs Effectively free

n8n itself adds no per-run cost on a self-hosted instance, and the Shopify API calls are free. Compared with a FAQ app at $10 to $20 a month, the workflow pays for itself in the first billing cycle it replaces.

Get the Shopify Product FAQ Generator template

The guide above is free to follow end to end. If you would rather skip the build, download the ready-to-import n8n template: all seven nodes wired exactly as described, with the Gemini prompt and marker logic already in place. Drop in your two credentials and run it. Want it installed and tuned to your catalog for you? See our done-for-you service.

Download the template ($19) →

Instant download · Works on n8n Cloud and self-hosted

Frequently asked questions

Does this overwrite my existing Shopify product descriptions?

No. The workflow appends the FAQ block to the end of the current body_html and leaves everything above it untouched. It also inserts a hidden marker comment, so a product that already has a generated FAQ is skipped on the next run and never gets a duplicate block.

Will the FAQ show as a real accordion on my product page?

It appends plain HTML headings and paragraphs to the product description, so the content renders wherever your theme prints the description. It does not populate a theme metafield or a dedicated FAQ section. If you want a collapsible accordion, wrap the output in your theme’s accordion markup.

How much does it cost to run Gemini for my whole catalog?

Google Gemini has a free tier for gemini-2.5-flash that covers small catalogs at no cost. Even on paid usage, one product FAQ is a fraction of a cent because each call sends only the title and a trimmed description. A 500-product catalog stays well under a dollar.

Can I run it only on new products instead of the whole catalog?

Yes. The marker-comment filter already skips products that were processed before, so re-runs only touch new items. To react instantly to new products, swap the Schedule Trigger for a Shopify Trigger on the products/create event and remove the Get Products node.

Does it work on n8n Cloud and self-hosted?

Both. Every node used is a core n8n node, so the workflow imports and runs identically on n8n Cloud and any self-hosted instance. You only need a Shopify access token credential and a Google Gemini API key, both entered once in the credential fields.

Related guides

n8n
Shopify
Gemini
product FAQ
automation