Geoffroy
Just a simple guy discovering the power of AI
Templates by Geoffroy
Generate SEO/AEO-optimized Shopify blog articles with GPT-4 and Google Sheets
This n8n template demonstrates how to automatically generate and publish SEO/AEO-optimized Shopify blog articles from a list of keywords using AI for content creation, image generation, and metadata optimization. Who’s it for Shopify marketers, content teams, and solo founders who want consistent, hands-off blog production with built-in SEO/AEO hygiene and internal linking. What it does The workflow picks a keyword from your Google Sheet based on priority, search volume, and difficulty. It then checks your Shopify blog for existing slugs to avoid duplicate, drafts a 900+ word article optimized for SEO/AEO, generates a hero image, creates the article in Shopify, sets SEO metafields (title/description), and logs the result to your Sheets for tracking and future internal links. How it works Google Sheets → Candidate selection: Reads Keywords, Links, and Published tabs: ranks by priority → volume → difficulty. (In the workflow it is explained how to exactly set up the Google Sheets) De-dupe slugs: Paginates your blog via Shopify GraphQL to collect existing handles and make sure to use a different one. OpenAI content + image: Builds a structured prompt (SEO/AEO and internal linking), calls Chat Completions and Image Generation for a hero image. Shopify publish: Creates the article via REST and updates titletag / descriptiontag metafields via GraphQL. Log + link graph: Appends to Published tab to keep track of articles posted and Links tab for ongoing internal-link suggestions. How to set up Open Set – Config and fill: shopDomain, siteBaseUrl, blogId, blogHandle, sheetId, author. Optional: autoPublish, maxPerRun, tz. Create the Google Sheet with Keywords, Links, Published tabs using the provided column structure. I have personally used Semrush to generate that list of keywords. Add credentials: Shopify Admin token (Header/Bearer), OpenAI API key, and Google Service Account. Requirements Shopify store with Blog API access OpenAI API key Google Service Account with access to Google Sheets API (can be activated here here) How to customize Change the cron in Schedule Trigger for different days/times. Adjust maxPerRun, autoPublish, language or any other variables in the "Set - Config" node. Adjust the prompt from the "Code - Build Prompt" node. Extend the Sheets schema with extra scoring signals if needed.
Workflow for submitting changed sitemap URLs using Google Indexing API and Bing IndexNow
This n8n template saves you hours of manual SEO work by automatically parsing your sitemap and submitting updated URLs to Google and Bing (IndexNow). Who’s it for Site owners, SEOs, and marketers who want a single automation to notify Google (Indexing API) and Bing (via IndexNow) whenever site URLs are added or updated. No more need to update it manually. Hours saved What it does This workflow parses your sitemap.xml, and for each URLs that have been changed on the last X days (this is a setting from Config node), submit them to Google and Bing via IndexNow. Before submitting to Google it checks the status. For IndexNow it just submits based on the last updated date it can find on the sitemap. How it works Parses your sitemap(s)to generate a list of urls ordered by lastmod date. Create a batch of the urls updated in the last X days (settings DAYS_BACK from the "Config" node) For Google, it first aks the current indexing notification status of this exact URL. If the sitemap shows the page was modified after the last submission, the workflow sends a new "URL_UPDATED" notification to Google. If Google has no record (404), it means the URL was never submitted and the workflow treats it as new and submits it. For Bing through IndexNow, it only sends “recently changed URLs” based on the sitemap’s <lastmod> and the variable DAYS_BACK from the Config Node, by batches of 500 (current limit recommendation by Bing). IndexNow doesn't have an API to check the status of the url. Requirements Google Indexing API credentials (Service Account with https://www.googleapis.com/auth/indexing scope, added as Owner in Search Console). IndexNow API key: you can create it here https://www.bing.com/indexnow/getstarted. How to use Edit the "Config" node with your data & preferences (everything explain in the workflow). Edit the "Check status (Google)" and "URL updated (Google)" node with your Google service account credentials. Execute the workflow to test it Set up a cron with the "Schedule Trigger" node depending on your needs
Automated meta token renewal system with Graph API and data storage
Meta long-lived user tokens typically expire after ~60 days. If a token expires, any workflows that rely on it start failing. Manual renewal is easy to forget and time consuming. This template monitors the token you store in an n8n Data Table and refreshes it automatically before expiration, so your social automations keep running without surprises or late-night fire drills. Who’s it for Agencies, marketing team, creators managing Meta apps or scheduled social automations Anyone tired of “token expired” errors breaking flows at 2 a.m. How it works / What it does Triggers: scheduled every 10 days, plus a Manual Trigger for testing. Reads: pulls the current token row from your "Meta credential" Data Table (fields: token and expires_at). Decides: IF the token expires in ≤ 15 days, proceed to renewal; otherwise do nothing. Calls the Graph API to get a new access token Updates: computes the new ISO expiresat from expiresin and writes the fresh token + expires_at back to the Data Table. Note: Meta typically issues ~60-day long-lived tokens; confirm for your app. Requirements A Meta app with an initial (short-lived or long-lived) user access token n8n Data Tables enabled (you might need to update your instance to see the option) and a table named "Meta credential" with: token (string) expires_at (datetime) How to set up Create the data table: name it "Meta credential" with columns "token" and "expires_at". Insert one row with your current token and its expiration date. Configure the IF node "Needs renewal?": keep (or tweak) the 15-day threshold logic. Run once with the Manual Trigger to validate, then enable the Schedule Trigger (10-day cadence by default). How to customize the workflow Change the Schedule Trigger interval and hour. Notify on renewal: Add a Slack/Email node after "Update Record" to alert on token refreshes.
Auto-generate Shopify blog related articles with OpenAI text-embedding-3-small
🪐 Use case Automatically surface and insert the three most relevant “Related articles” at the end of every Shopify blog post to boost session depth, SEO, and reader engagement. --- ⚙️ What this workflow does Pulls all published articles from a selected Shopify Blog using the Admin API. Cleans the HTML content (removes existing .related-articles blocks) and extracts text for embeddings. Generates OpenAI embeddings (text-embedding-3-small) and stores them in n8n Data Tables. Calculates semantic similarity (cosine distance) between articles to identify the top matches. Selects the Top 3 most relevant related posts for each article (configurable). Dynamically builds a <div> HTML section and updates the article on Shopify. Runs on a weekly schedule to keep relations fresh as new content is added. --- 🧩 Setup Create 3 Data Tables: articles article_relations articlerelatedlinks_snapshot Add credentials: Shopify Admin API Access Token OpenAI API Key Set environment variables in the Workflow Configuration node: shopifyBlogId shopifyBlogDomain shopifyStoreName shopApiVersion percentminimumsimilarity (default 70) (Optional) Keep or modify the Schedule Trigger (default: every week at 20:00). --- 🛠️ How to adjust this template Modify the similarity threshold or number of related posts displayed. Edit the HTML snippet or CSS classes for the related section. Integrate a second OpenAI model to rewrite link titles or summaries for better UX. --- 💡 Ideal for Shopify content teams and SEO strategists who want automated, context-aware internal linking to improve engagement and organic ranking.