๐Ÿ“Š Audit site AI search readiness and open fix tickets with Apify, OpenAI, Sheets and Telegram

โšก 2 views ยท ๐Ÿ“Š Market Research & Insights

Description

Quick overview

This workflow runs weekly to audit a websiteโ€™s SEO/GEO/AEO readiness with Apify, compares results to the previous run stored in Google Sheets, and uses OpenAI to generate prioritized fix tickets that are saved to a sheet and sent to Telegram.

How it works

  1. Runs every Monday at 7am on a schedule.
  2. Sends the configured website URL and page limit to an Apify actor to crawl and audit pages, returning scores and failed checks per URL.
  3. Reads last weekโ€™s scoreboard rows from Google Sheets to use as a baseline for comparison.
  4. Compares current vs. previous results per URL, flags pages that regressed by the configured point threshold, fall below the minimum score, or have critical issues, and writes all pages back to the Scoreboard tab for history.
  5. Limits the number of flagged pages to the maximum ticket count and uses OpenAI to generate a structured engineering ticket for each page based only on the failed checks.
  6. Appends each ticket to the Tickets tab in Google Sheets and sends the same ticket details to the configured Telegram chat.

Setup

  1. Create a free Apify account at https://apify.com/?fpr=youssef and connect it in the Apify node. The node runs the SEO, GEO and AEO Audit Actor (https://apify.com/fayoussef/seo-geo-aeo-audit?fpr=youssef), which renders each page, scores it on classic SEO, generative engine readiness and answerability, and returns every failed check with a recommendation attached.
  2. Add an OpenAI API credential for the chat model used to generate tickets.
  3. Create a Google Sheet with two tabs (for example, โ€œScoreboardโ€ and โ€œTicketsโ€), paste the sheet URL, and set the tab names in the workflow.
  4. Create a Telegram bot and connect Telegram credentials, then set your target chat ID in the workflow.
  5. Update the website URL and adjust maxPages, minScore, dropPoints, and maxTickets to match how many pages you want to audit and when a page should generate a ticket.

Requirements

Customization

Additional info

Run it once by hand before you schedule it. The first run has no previous audit to compare against, so every page is treated as a first audit and only the floor and critical rules apply, which is also when maxTickets matters most. The Read the last audit node has alwaysOutputData enabled on purpose: a Google Sheets read on an empty tab returns no items, and without that setting the whole workflow would stop on its very first run. Read the ticket steps before passing them to a developer. The recommendations come from the audit itself, but the wording around them is written by a model, which is told to build every step from a check that actually failed and to make no promises about rankings or traffic.

Need a custom version or another data source? See https://automationbyexperts.com

๐Ÿ”— Nodes Used

Google Sheets, Telegram, Schedule Trigger, Filter, Basic LLM Chain, OpenAI Chat Model

๐Ÿ“ฅ Import

Download workflow.json and import into n8n: Workflow menu โ†’ Import from File

๐Ÿ“– Importing guide ยท ๐Ÿ”‘ Credential setup