Invenio user guide Plain-text guide for the Invenio Shopify app. Public pages live at /docs. # Getting started Getting started Invenio is an embedded Shopify app. Open it from Shopify admin, Apps, Invenio. You work inside your store. The live app host is https://invenio.srv1173388.hstgr.cloud. This guide matches what the app actually does in v2.6.7. First-time setup Home shows a setup checklist until all three items are done for this store: Store profile filled (business name and at least one town) Target keywords set (at least one keyword) NeuronWriter connected (an API key on the host plus a project id) The project id can come from NEURONWRITER_PROJECT_ID on the server, or you can save it on Products under NeuronWriter project. Fill Home settings On Home, scroll to Local SEO settings: Who, What, Where. These rank goals are the root input for article titles, article content, and catalog copy. Thin product titles borrow healthy assumptions from these fields. Target keywords. One search phrase per line. If the phrase already includes the town, Invenio keeps it as typed. Towns. One town per line. Used for local pages, blog topics, and NeuronWriter queries when the keyword does not already include the town. Business name, street, ZIP, phone, hours, pickup, store bio. Saved as facts the writer may state. Do not name other businesses. DataForSEO location. City and state for volumes and rank checks, for example Ringgold, GA. Save looks up DataForSEO names such as Ringgold,Georgia,United States, offers matches, and shows the resolved name and code. Audience mode. Local storefront or ships nationwide. Auto is fine for most stores. Posts per month. Default 8 (1 to 30). Shopify publishes that many scheduled articles per calendar month. Planned topics in the Blogs queue do not count until they are built. Extra selected ideas wait for next month. Pause workers. Stops scheduled runs and Run now until you uncheck it. Daily email digest. On by default. Around 7:00 AM in the store timezone, Invenio POSTs a last-24-hours summary (JSON plus ready HTML) to the n8n digest webhook. Send test digest now posts the same payload without waiting. Click Save settings. Home keeps the first 3 unique keywords and the first 8 unique towns. Turn on the theme embed JSON-LD does not appear on the storefront until the Invenio local SEO app embed is enabled. Open Schema in Invenio, or open the theme editor, App embeds. Enable Invenio local SEO. Save the theme. Invenio does not edit theme files. Optional: add the Invenio Shop by Category app block on article or blog templates for category shortcuts. Optional: Search Console On Rankings, click Connect Search Console. Google opens in a new window (or the top window if a popup is blocked). After you approve read-only Search Console access, you return to Rankings. Invenio picks the property that matches this store's domain, or asks you to choose if none match. This spends no credits. What to do next On Products, save the NeuronWriter project id if it is not already set. Select a few products, click Generate, then open each product and approve the draft. On Blogs, create a NeuronWriter analysis only after you confirm (or reuse an existing query if the page says one already exists), then click Build scheduled posts. On Schema, save the types you want and confirm the embed is enabled. On Rankings, set a monthly rank budget if you want daily position checks. Home itself does not call NeuronWriter or OpenAI when it first loads. It does not spend credits. # Home Home Home is the store profile and control page. The left nav label is Home. There is no separate Settings tab. Store settings live here under Local SEO settings. Setup checklist If the store is missing a business name and town, keywords, or NeuronWriter, Home shows a checklist with Done or To do for each item. Links jump to the store profile, target keywords, or the NeuronWriter project field on Products. The checklist hides when all three items are complete. Suggested topics After the first paint, Home loads tags from this store's blogs that match the store category or a target keyword. Run now can use those tags as extra topics when a ready NeuronWriter query already exists. If no tags match yet, add overlapping tags on blog posts in Shopify. Run now Run now starts the background workers for this store: NeuronWriter research (reuse only), content, and meta. It does not create a paid NeuronWriter analysis. Run now is blocked when: Pause workers is checked You have not saved at least one keyword and one town A run is already in progress Watch the activity log for progress. This month's published post count loads after the first paint. NeuronWriter analyses on Home Scheduled jobs and Run now reuse ready queries. They never create a paid analysis unless you click Create missing NeuronWriter analyses and then Confirm create analyses. That confirm step can create one analysis per keyword and town pair that does not already have a ready query. It uses your monthly NeuronWriter plan (default 75 new analyses per month). Local SEO settings See Settings (/docs/settings) for every field. Save settings writes them for this store only. DataForSEO location, monthly cap, Test connection, month-to-date spend, the Daily email digest toggle, and Send test digest now live here too. Opening Home does not call DataForSEO. Search Console and Rankings Home shows whether Search Console is connected (from stored data only) and a Rankings card with tracked keywords and the last check. Connect and Check now live on Rankings. Competitors compares Google Business Profiles. Opening Home does not call Google, Serper, or DataForSEO. This month Shows blog posts built or scheduled this calendar month against the posts-per-month cap (default 8). Home, Blogs, and Reports use the same count. Planned topics from the Blogs content planner do not count until they are built. Extra selected ideas stay queued for next month. Also shows whether workers are paused or idle, the last run time, and the last run error if one exists. If ZIP and Where or Towns look like different US states (for example ZIP 81416 is CO while Ringgold, GA is 30736), Home shows a warning. Saved values are not changed. Generation uses the profile city and state as written. Activity log Shows the latest 5 worker events (publish, skip, error). Click View all to expand. Each row can include a link to the store page that changed. Home's first load only reads store settings. Activity and the post count load afterward. Opening Home does not spend Generate, Optimize, or NeuronWriter quota. # Products Products Products lists this store's catalog and writes SEO copy after you review it. Monthly quotas The page shows: Generate (OpenAI). Default 350 calls per store per month. Shared with Collections, bulk Image alt suggestions, and Local pages. Optimize (NeuronWriter). Default 10 runs per store per month. If OPENAI_API_KEY is missing, Generate writes stub copy you can still review. If NEURONWRITER_API_KEY is missing, Optimize writes a stub draft. NeuronWriter project Optimize uses one NeuronWriter project. Set NEURONWRITER_PROJECT_ID on the host, or save a project id on this page. The Home checklist treats a saved id plus an API key as connected. Filters Search by title or tag, pick a tag, group by none / category / tag, and filter by Shopify category. Changes stay inside the embedded app and keep the shop and host query params. On mobile the same filters apply in the page. Picking a tag such as Sangria hides products that do not have that tag. Generate and Optimize Select up to 10 products. An 11th checkbox is blocked. Click Generate or Optimize in the page header. Click Review copy in the SEO column, or open the product title, when a draft is ready to review. Compare current vs proposed meta title, meta description, and description. Click Approve and write to Shopify, or Discard draft. Discard leaves Shopify unchanged. Generate writes meta title, meta description, and description from OpenAI and this store's facts. Keywords come from Shopify category, product type, tags, and metafields, not only the Home target keywords. A store-wide keyword is used only when that product actually supports it. Optimize takes generated copy, or raw product data if you have not generated yet, and revises toward the top 1 competitor score in NeuronWriter. You must approve a diff before anything is written to Shopify. Products are backed up to JSON before a catalog write. Image alt Preview Each row has Preview. That sends the product photos to OpenAI vision with title, product type, category, collection, and store town, then shows the 125-character alt. Save writes it with Shopify fileUpdate. Cancel drops the preview. It does not use the Generate quota. For a review-first batch of missing alt text, use the Image alt (/docs/image-alt) tab. Product editor Open a product to edit title, handle, description, SEO, and each image's alt text. Generate alt text on a card writes that one image immediately and says whether Save is still needed. Save uses the same write path. Generate and Optimize on the editor spend 1 of the matching monthly quota and create a draft for this product only. Check score If a ready NeuronWriter query matches this product, Check score runs evaluate-content on the current Shopify copy and shows the content score. That call does not create a query and does not spend Generate, Optimize, or analysis credits. If no ready query exists, the page says so and does not offer a score. # Collections Collections Collections works like Products for this store's collection pages. Quotas Generate and Optimize share the same monthly caps as Products: 350 Generate (OpenAI) and 10 Optimize (NeuronWriter) per store per month. Select up to 10 collections per run. The NeuronWriter project id on this page is the same store-wide project used on Products. Generate and Optimize Select collections. Click Generate or Optimize. Open a collection when the draft is ready. Approve the diff to write meta title, meta description, and description to Shopify, or discard it. Keywords are taken from the collection title and from the products in that collection (categories, types, tags). A Home target keyword is applied only when the collection actually supports it. Example: Red Wine can get Winery. Wine slushies or fruit wine are skipped unless that collection supports those terms. If none of the store keywords fit, Invenio uses collection-derived keywords and shows the source on the Keywords line. Image alt Each row has Preview for the collection image, then Save or Cancel. Bulk missing-alt work for products is on Image alt (/docs/image-alt). Collection editor Open a collection to edit its copy, review a Generate or Optimize draft, and write image alt. Approve still happens before Shopify is updated. Bottom of page Generate bottom content (on demand) writes a 300 to 600 word description plus a 4 to 6 item FAQ into a preview. The editor shows Saved on the collection when those metafields exist, and Draft, not saved only for an unsaved preview. Those two banners never show together. Save bottom content writes invenio.bottom_html and invenio.bottom_faq. The main collection Save writes title and description only. It does not publish a pending bottom draft. If the bottom write fails, the draft is kept and the error is shown. Nothing auto-publishes. Add the Collection page bottom theme app section under the Product grid (Add section, then Apps). On Frida Rothman, if the product grid does not accept @app blocks, add it as a standalone app section under Product grid. That section renders server-side and is the target placement. The Collection bottom app embed is a fallback: when the section is already on the template it outputs no markup and no FAQPage schema. Otherwise the embed stays visibility: hidden until JS inserts it after the .shopify-section that holds the product grid (including empty 0-product collections), or before the footer shopify-section group, never a bare