Blogs
Blogs schedules real Shopify articles. Invenio creates them unpublished with a future publish date. Shopify publishes them when that date arrives.
Store inputs
The page shows the Home profile summary, how many posts you have used this month, and suggested topics from:
- Home keywords and towns
- Matching blog tags
- Collection titles
- The background content planner (collections, About page, homepage offer, store profile)
Posts this month counts built or scheduled Shopify articles only. Planned topics do not use a slot until they are built. The cap is the posts-per-month value on Home (1 to 4 per calendar month). After one built post with a cap of 2, the page shows 1 of 2 remaining.
Build without NeuronWriter writes posts with OpenAI from the store profile, towns, suggested topics, the content plan, and blog tags. It does not need a ready query and never creates a NeuronWriter analysis. Build with NeuronWriter still requires a ready query and only reuses it. The "topics ready" count matches the Suggested topics Ready query badges.
NeuronWriter analyses
NeuronWriter plans include 75 analyses per month by default (INVENIO_QUERY_CREATE_MONTHLY_CAP). The page shows how many Invenio created this month, and remaining analyses when the NeuronWriter API returns that number.
Create 1 NeuronWriter analysis (uses 1 analysis) checks for an existing query first. If one already exists (ready or still running), the page shows a banner such as A NeuronWriter query for fruit wine already exists, reusing it and does not ask you to confirm. If none exists, Confirm: this uses 1 analysis is the only click that creates a paid query. A success or error banner always stays on the page (plus a toast). Invenio never creates a duplicate query. Scheduling never creates an analysis on its own.
Build scheduled posts
The page shows how many Generate credits the next OpenAI-only build will use (1 per article) and how many Generate credits remain (default 350).
Build without NeuronWriter writes unpublished Shopify articles from the planned topic (title, intent, format, keywords, CTA) plus the store fact sheet. The writer opens with a 40 to 60 word answer, uses question-style H2s, follows the format template for that intent, links 2 to 5 catalog URLs, and ends with a short FAQ. Local hours and visit sections appear only in local audience mode. Code checks word count, SEO title (50 to 60 characters), meta (140 to 155), catalog links, fact-sheet prices, em dashes, and product adjectives that are not on the fact sheet. Up to 2 fix passes run with the measured numbers. Those retries do not spend extra Generate credits. If the post still fails, Invenio saves it as a Shopify draft and flags it in the queue.
It requests a Pixabay featured image when PIXABAY_API_KEY is set (Unsplash or Pexels if that is the first configured key). SEO title and meta description write to Shopify article metafields global.title_tag and global.description_tag. The slug becomes the article handle and never includes invenio. The excerpt becomes the Shopify summary. HTML is sanitized (no markdown fences, no H1 in the body). It never creates a NeuronWriter query.
Build with NeuronWriter runs only for topics that already have a ready query.
Both stay within this month's posts-per-month cap (1 to 4, set on Home). A notice appears if no stock photo key is configured.
Inline product and collection images in the article body use inline styles (max-width:320px) so Shopify themes cannot blow them up. The featured image is constrained (max-width:720px) with a Pixabay credit line directly under it: Photo credit: Name / Pixabay, linked to the Pixabay image page. Shop-the-collection items render as a simple card grid (image, then the link text under the image).
Content planner
A background planner keeps the Scheduled queue filled with upcoming topics. It always plans 8 store-unique topics, even when fewer posts are needed this month. Posts needed only decides which topics are scheduled first.
The planner builds keyword clusters from search modifiers (how to, best, vs, gift, near the town), expands with niche terms from the catalog, and assigns one intent per topic: how-to, informational, comparison, buyer guide, seasonal, gift, or local. Each topic maps to a real product or collection CTA. Topics whose primary keyword is owned by a collection, product, page, home page, or earlier post are dropped. $0, hidden, unavailable, and discontinued products are not used as CTAs.
Scoring is 100 points: keyword fit 30, commercial bridge 25, uniqueness 20, timing 15, local 10. When DataForSEO credentials are set, search volume and CPC for the store location add a bonus and can reorder topics. Volume is cached 30 days per keyword and location. Each month includes at least one traffic topic (how-to or informational) and one sales topic (buyer guide, comparison, or gift). Gift-heavy stores still get at least 2 non-gift topics. Audience mode is local storefront vs ships nationwide. Auto-detect uses hours, pickup, and shipping language on Home, and you can override it there.
The plan is validated in code (8 topics, unique primary keywords, no do-not-target overlap, real CTAs). If it fails, Invenio re-asks once. Refresh plan uses at most two gpt-4o-mini calls. It never calls NeuronWriter. Find competitor gaps is on demand. It compares the top 3 local competitors from rank history with DataForSEO Labs ranked keywords and adds missing keywords as planned suggestions. Phrases that are numeric noise, out-of-area places, directories, national chains, or off-niche for the store's keywords and categories are dropped, and near-duplicates are merged. The page shows a loading state, then a result with the count, examples, or error, and writes an activity log row. If credentials are missing or the monthly cap is hit, the button does nothing harmful.
Planned rows appear in the Scheduled queue with planned dates, intent, format, search volume, and CPC. If no store location is set, volumes use the United States. Build without NeuronWriter turns this month's remaining planned rows into unpublished Shopify articles. Next month stays planned until that month.
Catalog links
When a post is generated or rewritten, Invenio inserts 2 to 5 relevant products and 1 to 2 collections. Matching uses Shopify category, product type, tags, and title against the post topic and NeuronWriter terms. Store-wide keywords are not forced onto unrelated products. The same URL is never linked twice. Anchors are descriptive.
The scheduled queue lists those links. On an unpublished article you can Remove link before Shopify publishes it. That edits the unpublished article only.
Backlink suggestions
Older published Invenio posts that could link to the new post appear as suggestions only. Published posts are not edited.
Queue actions
Each row shows title, status, publish date, keyword, town, score, and a link to Shopify admin. Planned rows also show search intent. You can change the publish date or remove a built article from Shopify. Refresh formatting re-renders an existing Invenio-built article with the current template (small images, Photo credit: Name / Pixabay under the image, links under images, no body H1). It does not call an LLM and does not spend credits. If the refresh would write an empty body or cut more than half the visible text, Invenio aborts and shows an error. Restore article writes the stored generated HTML back to Shopify (no AI) and applies the current template. Posts built before v1.6.9 do not have a stored body, so restore is not available and those articles must be rebuilt. Removing a post that has not published yet returns that slot to this month's post quota. Planned rows do not have Shopify admin actions until they are built. Built posts are created unpublished with a future publish date.