Unadhi Guides

Website knowledge sheet for an AI chat assistant: check old prices, offers and short pages before your small business chatbot learns from your site

Updated 24 Oct 2026 · Disclosure: the website crawler linked below is an Unadhi product on the Apify Store. This guide is free, and the same sheet works with a crawl export from other tools. Current Apify pricing is only on the Store page. This page has no affiliate links and nobody paid to be mentioned.

What you get: a website knowledge sheet for an AI chat assistant in one Google Sheet. It has one row per page of your website: the page address, title, word count and status, plus flags for pages that mention an old year, mention a price or are too short to help. You mark each page Yes or No, and a knowledge tab gathers the Yes pages as clean text blocks (title, source address, page text) that you upload to your chat tool. You check the old prices, hours and offers before the assistant repeats them to customers. Formulas are below. The example rows are made up.

The finished sheet

check tab (example rows are made up; old years setting: 2010 to 2024)

PageWordsOld yearPriceIssuesUse?
/services/hair-colour540FALSETRUEHas a price: check itYes
/offers/diwali-2024180TRUETRUEOld year; Has a price: check itNo
/faq1,120FALSEFALSEYes
/blog/team-news60TRUEFALSEOld year; Short pageNo
/contact45FALSEFALSEShort pageYes (hours and address)

The Diwali 2024 offer page is the usual trap: it is still on the site, the crawler finds it, and without this check the assistant can quote last year's discount as if it were current.

Who this is for

Small businesses (salons, clinics, coaching centres, shops, accountants, trades) that are adding an AI chat assistant to their website or messaging channel and want it to answer from their own pages, and the freelancers and small agencies who set these up. Most chat tools let you upload files as knowledge. What you upload is what the assistant repeats, so a sheet that shows every page and flags the risky ones is quicker than reading the site page by page.

Step 1: crawl the site into a tab named crawl

With the website crawler

Open the Website Content Crawler (Half Price) on the Apify Store and use this input with your site's address:

{ "startUrls": [{ "url": "https://your-site.example/" }],
  "maxPagesPerSite": 300, "maxDepth": 5, "useSitemap": true,
  "minWords": 0, "outputMarkdown": true }

The crawler follows robots.txt. Run it on your own site or a client's site that you look after.

In the run, export the dataset as CSV. In your Google Sheet use File → Import → Upload, "Insert new sheet", and name the tab crawl. Do not rename the headers.

What the columns contain

A Google Sheets cell holds at most 50,000 characters. A very long page (a big price list or terms page) can be cut short in the sheet; the sheet flags those so you can take their text from the JSON export instead.

Free routes

For a small site you can copy each page's text into a document by hand. Free desktop crawlers such as the free version of Screaming Frog SEO Spider (up to 500 addresses) list your pages; paste a crawl tab with the headers url, title, wordCount, httpStatus and markdown (page text) and the formulas below work unchanged.

Step 2: the settings tab

Add a tab named settings. In B1 type the pattern for years you treat as old: 20(1[0-9]|2[0-4]) matches 2010 to 2024. In B2 type 80 (fewer words than this counts as a short page). Next year, change 2[0-4] to 2[0-5].

Step 3: build the check tab

Add a tab named check. Row 1 holds the headers below; row 2 holds the formulas, which you copy down one row per row of crawl.

ColHeaderFormula (row 2)
APage=IFERROR(INDEX(crawl!$A2:$ZZ2, MATCH("url", crawl!$A$1:$ZZ$1, 0)), "")
BTitlesame pattern with "title"
CWordssame pattern with "wordCount"
DStatussame pattern with "httpStatus"
ETextsame pattern with "markdown" (hide this column once it works)
FOld year=IF(A2="", "", REGEXMATCH(E2, "\b(" & settings!$B$1 & ")\b"))
GPrice=IF(A2="", "", REGEXMATCH(E2, "(₹|Rs\.?|INR|€|£|\$)\s?\d"))
HIssues=IF(A2="", "", TEXTJOIN("; ", TRUE, IF(AND(D2<>"", N(D2)<>200), "Status " & D2, ""), IF(F2=TRUE, "Old year", ""), IF(G2=TRUE, "Has a price: check it", ""), IF(N(C2)<settings!$B$2, "Short page", ""), IF(LEN(E2)>=49000, "Text may be cut: use JSON export", "")))
IUse?you type Yes or No
JBlock=IF(I2="Yes", "## " & B2 & CHAR(10) & "Source: " & A2 & CHAR(10) & CHAR(10) & E2, "")

Notes on the formulas:

Step 4: the knowledge tab and the upload

  1. Add a tab named knowledge and put =FILTER(check!J2:J, check!J2:J<>"") in A1. Each cell is one page: its title, its address and its text.
  2. Fix the website first where you can (old offers, old prices, old hours), then crawl again, so the site and the assistant say the same thing.
  3. Download the knowledge tab (File → Download → Comma-separated values, or Microsoft Excel) and upload it to your chat tool's knowledge or files section if it accepts that format. If it only takes documents, copy column A into a document and save it in a format the tool accepts. Check your tool's own help pages for file types and size limits.
  4. Add a short first line of your own, such as your opening hours, booking link and "if a price is not listed here, ask the customer to call", so the assistant has a safe answer when the pages do not cover a question.
  5. Re-run the crawl after any price or offer change and replace the upload. Note the date in the sheet.

If you serve customers in the EU

From 2 August 2026, Article 50 of the EU AI Act requires that people are told when they are talking to an AI system, unless it is obvious. Our chatbot disclosure checklist covers the wording.

Check before you act on it

Partner programme opening soon

Partner programme opening soon: join the free waitlist. Planned terms are 50% of each referred sale (75% once you have 5+ paying customers), single level, paid through Gumroad only from revenue received.

Sources

Related

← All guides

Unadhi Guides are free, independent explainers. We correct errors as soon as we find them: write to mininglife7@gmail.com.