ASKGPT — Complete Guide

Everything you need to build, train, and deploy an AI chatbot trained on your website content.

Setup Training Embedding WordPress Auto-Crawl

What is ASKGPT?

ASKGPT is an AI chatbot platform that trains on your website content and answers visitor questions in real time. You add a URL, the system crawls and indexes every page, then a chat widget on your site answers questions using only that content — no hallucinations, no generic responses.

🌐
Website Crawling
Paste your URL — ASKGPT maps and scrapes every page automatically, detects changes nightly.
🤖
GPT-4.1 Powered
Uses OpenAI's latest models with Pinecone vector search for accurate, contextual answers.
đŸ’Ŧ
Widget Embed
One line of code. Works on any site, WordPress, Shopify, Webflow — anywhere you can add HTML.
🔄
Auto-Crawl
Enable nightly re-indexing so your chatbot always reflects the latest content on your site.
🎨
Fully Branded
Custom colors, avatar, welcome message, chat position — match your brand completely.
📊
Analytics
See every conversation, question, and page indexed. Know what visitors are asking.

Quick Start — 5 Minutes to Live Chat

  1. Create your account

    Go to signup, enter your email and password. Your 7-day free trial starts immediately — no credit card required.

  2. Add your website URL

    In the dashboard, open the Links tab. Paste your homepage URL (e.g. https://yourcompany.com) and click Crawl Website. The system finds all pages and starts indexing in the background — this takes 2–10 minutes depending on site size.

  3. Copy your Bot ID

    Go to the Customization tab. Your Bot ID is shown in the "Your Bot ID" panel. This is the unique identifier for your chatbot.

  4. Embed the widget

    Paste the embed script (from the Installation section below) just before </body> on your website, or install the WordPress plugin.

  5. Test it

    Visit your website. The chat bubble appears in the corner — ask it something about your business. Once your site is indexed, it answers from your actual content.


Dashboard Walkthrough

After logging in, you land on the dashboard. The left sidebar lets you switch between your chatbots. Each chatbot has these tabs:

Overview Tab

Shows live stats for the selected chatbot: total conversations, messages sent, pages indexed, and data sources. The activity chart shows message volume over the last 30 days.

Customization Tab

Controls the appearance and behavior of your chat widget:

SettingWhat it does
Bot NameName displayed in the chat header (e.g. "Support Bot")
Welcome MessageFirst message the bot sends when chat opens
Primary ColorColor of the chat header and send button
Chat IconEmoji or character shown on the floating button
PositionBottom-right or bottom-left
AI ModelGPT-4.1-mini (fast) or GPT-4.1 (best quality)
Temperature0 = precise/factual, 1 = creative/varied
System PromptCustom instructions for bot behavior (e.g. "Always respond in formal English")
Your Bot IDUUID used in the embed script. Copy it from here.
â„šī¸

Click Save Changes at the bottom of Customization after making any changes. Changes apply immediately — no re-deploy needed.

Links Tab

This is where you add training data from URLs. Each URL you add is crawled and all subpages are indexed. This tab also shows:

  • Training Sources — all URLs/files/text added, with status (pending, indexed, error)
  • Indexed Pages — every individual page scraped, with chunk count and last sync time
  • Crawl Run History — log of every crawl: when it ran, how long, pages changed vs unchanged
  • Auto-Crawl toggle — enable nightly re-indexing at UTC midnight

Settings Tab

Configure lead capture (collect visitor name/email before chat), escalation email (forward unresolved questions to a human), and chatbot status (active/inactive).

Advanced Tab

Custom CSS for the widget host container. Note: this CSS only affects the outer wrapper #askgpt-widget-host, not the internal chat window. For visual customization, use the Customization tab instead.

Installation Tab

Shows the embed code for your website and your Bot ID. Use this to copy the script tag.


Training with URLs (Website Crawling)

The most powerful training method. Add your website URL and ASKGPT:

  1. Calls Firecrawl to discover all subpages (up to 200 URLs)
  2. Scrapes the markdown content of each page
  3. Splits content into chunks of ~800 words
  4. Creates vector embeddings with OpenAI text-embedding-3-small
  5. Stores embeddings in Pinecone, keyed to your chatbot namespace
  6. Saves a content hash to detect future changes

How to add a URL

  1. Go to Links tab

    Select your chatbot from the sidebar, then click the Links tab.

  2. Enter your URL

    Type or paste your website URL (include https://). Leave "Crawl subpages" checked to index the full site.

  3. Click "Crawl Website"

    The status shows "pending" then "indexed" when done. Large sites (100+ pages) can take 5–10 minutes.

âš ī¸

First-time crawl: Status stays "pending" during crawling. Refresh the Indexed Pages table after a few minutes to confirm pages are appearing. If it stays pending >15 min, check the n8n workflow is activated and all credentials are configured in n8n.

What URLs work best

  • Public-facing pages (docs, blog, product pages, FAQs)
  • Plain HTML or server-rendered pages work best
  • JavaScript-heavy SPAs may have limited content if not server-rendered
  • Pages behind login are not accessible

Training with Custom Text

Paste any text content directly — company policies, product descriptions, FAQs, internal knowledge base entries. This is indexed immediately (no crawling needed).

In the Links tab, click Add Text Content, give it a name, paste your content, and save. The text is chunked and embedded the same way as website content.


Training with Files

Upload documents directly. Supported formats: .pdf, .txt, .md, .docx, .csv (max 20 MB).

The file content is extracted, chunked, embedded, and stored in Pinecone. Perfect for product manuals, onboarding guides, support documentation.


Q&A Pairs

Manually define specific question-answer pairs that the bot should always know. These are stored separately and matched first during chat queries. Use these for:

  • Exact answers to common questions ("What are your business hours?")
  • Pricing information that changes frequently
  • Answers that need precise wording (legal, compliance)

Go to the Q&A tab, click Add Pair, type the question and answer, save.


How Crawling Works

When you add a URL or trigger a re-crawl, this pipeline runs inside n8n:

Webhook Trigger
→
Validate Input
→
Firecrawl Map
→
Extract URLs
→
Split Batches (3)
→
Firecrawl Scrape
→
Hash Check
→
Changed?
→
Chunk (800w)
→
OpenAI Embed
→
Pinecone Upsert
→
Save Hash
→
Mark Indexed

Hash checking: Each page's content is hashed. On re-crawls, only changed pages are re-embedded — unchanged pages are skipped. This keeps re-crawls fast and reduces API costs.

Batching: Pages are scraped 3 at a time to avoid rate-limiting Firecrawl's API.

Chunking: Content is split at paragraph boundaries into ~800-word chunks. Each chunk gets its own vector in Pinecone, tagged with the source URL and chatbot namespace.


Crawl History & Indexed Pages

The Links tab shows two detailed tables:

Crawl Run History

Every crawl is logged with:

ColumnWhat it means
StartedWhen the crawl began (your local timezone)
Triggermanual (you clicked Crawl) or auto (nightly cron)
Statusrunning / completed / error
Pages FoundTotal pages in your site discovered during this run
ChangedPages whose content changed since last crawl (re-indexed)
UnchangedPages with identical content (skipped, saving API credits)
DurationTotal time the crawl took

Indexed Pages

Every individual page that has been scraped and stored:

ColumnWhat it means
URLThe exact page URL scraped
ChunksNumber of vector chunks stored for this page in Pinecone
Last SyncedWhen this page was last re-indexed

Auto-Crawl (Nightly Re-Indexing)

Enable auto-crawl to keep your chatbot up to date automatically. The system re-crawls your website every night at UTC 00:00 and only re-indexes pages that have changed.

Enable Auto-Crawl

  1. Open the Links tab

    Select your chatbot from the sidebar.

  2. Toggle "Auto-Crawl"

    Check the "Auto-Crawl Enabled" checkbox in the Links tab. The setting saves instantly.

  3. Verify in Crawl History

    The next morning (after UTC midnight), a new crawl run with trigger "auto" should appear in the Crawl Run History table.

✅

Server-side setup required: The auto-crawl cron must be running on your VPS. Add this to your server's crontab: 0 0 * * * node /opt/askgpt/backend/scripts/auto-crawl.js >> /var/log/askgpt-crawl.log 2>&1

What happens during auto-crawl

  • Runs for every chatbot with auto-crawl enabled
  • Skips sources that are currently being crawled (prevents double-runs)
  • Logs results in the Crawl Run History table with trigger = "auto"
  • Only changed pages are re-embedded — typically a fast run

Embedding the Widget

Add the chat widget to any website with a single script tag. The widget runs inside a Shadow DOM — it won't conflict with your site's CSS.

Standard Embed

Paste this just before </body> on every page where you want the chat widget:

<!-- ASKGPT Chat Widget --> <script src="https://askgpt.asksol.pk/widget/widget.js" data-client-id="YOUR-BOT-ID-HERE" ></script>

Replace YOUR-BOT-ID-HERE with your actual Bot ID from the Customization tab.

âš ī¸

Do not use defer or async on this script tag. The widget uses document.currentScript to read the Bot ID, which requires synchronous loading. Place it at the end of <body> instead — this gives the same performance benefit.

Multiple Chatbots on One Site

Include multiple script tags with different data-client-id values. Each loads independently in its own Shadow DOM.


WordPress Plugin

The ASKGPT WordPress plugin adds the chat widget to your site without touching any code. It also provides a settings page in the WordPress admin for easy configuration.

Installation

  1. Download the plugin

    Get askgpt-chat-widget.php from your dashboard or the ASKGPT website.

  2. Upload to WordPress

    Go to WordPress Admin → Plugins → Add New → Upload Plugin. Upload the .php file (or .zip), then click Activate.

  3. Configure the plugin

    Go to Settings → ASKGPT Chat Widget in your WordPress admin.

  4. Enter your Bot ID

    Paste your Bot ID (from the ASKGPT dashboard Customization tab). The API URL is pre-filled — leave it as is unless you're self-hosting.

  5. Save and test

    Click Save, then visit your site. The chat widget should appear in the bottom corner.

Plugin Settings

FieldDescription
Bot ID requiredYour chatbot's UUID from the ASKGPT dashboard
API URL optionalPre-filled with the default n8n chat webhook. Only change if self-hosting with a custom domain.
Custom CSS optionalCSS applied to #askgpt-widget-host (outer container). Use this to adjust position/z-index only — not internal widget styles.
Enable on all pagesWhen checked, widget loads on every page. Uncheck to use shortcode placement instead.
💡

Shortcode: Use [askgpt_chat] to embed the widget in a specific page or post instead of site-wide.

Troubleshooting WordPress

  • Widget not showing: Check that the plugin is active and Bot ID is saved. Open browser DevTools → Console for any JS errors.
  • Script loads but no button visible: Another plugin may be adding defer to scripts. Check if your caching or optimization plugin (WP Rocket, Autoptimize) defers widget.js — add it to the exclusion list.
  • Z-index conflicts: If the widget appears behind other elements, add #askgpt-widget-host { z-index: 99999 !important; } in the Custom CSS field.

Widget Customization

All visual and behavioral settings are controlled from the Customization tab in the dashboard. Changes take effect immediately — no re-deploy needed.

Colors

  • Primary Color — chat header background and send button
  • User Message Color — background color of visitor messages
  • Bot Message Color — background color of bot responses

Behavior Settings

SettingOptions / Notes
AI Modelgpt-4.1-mini (fast, cost-efficient) or gpt-4.1 (best quality)
Temperature0.0–1.0. Use 0.1–0.3 for factual support bots, 0.7+ for creative/conversational
Max TokensMaximum length of each bot response (default 512)
Persona Toneprofessional / friendly / casual — adjusts the system prompt tone
LanguageLanguage for bot responses (default: English)
System PromptCustom instructions prepended to every conversation
Show BrandingToggle "Powered by ASKGPT" footer text

Lead Capture

Enable in the Settings tab to show a form before the first message. Collect visitor name, email, phone — leads appear in your chatbot's conversation log.


AI Pipeline — How Chat Works

When a visitor asks a question in the widget, this happens:

  1. The question is sent to the n8n chat webhook (POST /webhook/askgpt-chat)
  2. The question text is embedded using OpenAI text-embedding-3-small
  3. The embedding is used to query Pinecone in your chatbot's namespace (cb_<chatbot_id>)
  4. The top-5 most similar chunks are retrieved as context
  5. GPT-4.1 receives: system prompt + retrieved context + conversation history + user question
  6. The response is streamed back to the widget
â„šī¸

The bot only answers from indexed content. If the answer isn't in your Pinecone namespace, the bot says it doesn't have that information rather than guessing. This prevents hallucinations.

Required n8n Environment Variables

Set these in your n8n instance (Settings → Environment Variables or in the .env file):

VariableWhere to get it
OPENAI_API_KEYplatform.openai.com/api-keys
PINECONE_API_KEYapp.pinecone.io
PINECONE_INDEX_HOSTYour index host URL from Pinecone console (e.g. https://my-index-xyz.svc.pinecone.io)
FIRECRAWL_API_KEYfirecrawl.dev — free tier available
âš ī¸

n8n workflows must be ACTIVATED. Imported workflows are inactive by default. Go to n8n → your workflow → toggle the Active switch in the top-right. Inactive workflows use the /webhook-test/ URL which does not respond to production requests.

n8n Postgres Credentials

The ingestion workflow writes directly to your PostgreSQL database. In n8n, go to Credentials → New → Postgres and set:

  • Host: localhost (or your DB host)
  • Database: askgpt_db
  • User: askgpt_user
  • Password: your DB password

Then open the workflow and select these credentials on every Postgres node.


Plans & Limits

PlanChatbotsPagesMessages/mo
Trial (7 days)150500
Starter11001,000
Pro550010,000
Business202,00050,000
EnterpriseUnlimitedUnlimitedUnlimited

Admin accounts are always Enterprise-level with no billing limits.


Troubleshooting

Crawl stuck at "pending"

  • Check that your n8n workflow askgpt-ingest is active (green toggle in n8n UI)
  • Verify all n8n environment variables are set (FIRECRAWL_API_KEY, OPENAI_API_KEY, PINECONE_API_KEY, PINECONE_INDEX_HOST)
  • Check n8n Postgres credentials are configured on every Postgres node in the workflow
  • Look at n8n → Executions for error details on the latest run
  • Run migration 002: psql -U askgpt_user askgpt_db < database/migrations/002_crawl_runs.sql

Chat widget not appearing

  • Open browser Console (F12) — look for ASKGPT errors
  • Ensure data-client-id is your correct Bot ID (UUID format)
  • Do NOT use defer or async on the script tag
  • WordPress: check your caching plugin isn't deferring widget.js
  • Check CORS — the widget domain must match the allowed origins on the backend

Bot gives wrong / generic answers

  • Confirm pages are indexed — check the Indexed Pages table in the Links tab
  • Your Pinecone index namespace must match cb_<chatbot_id>
  • If you recently updated your site, click Crawl Website again or wait for nightly auto-crawl

"Trial expired" shown when trial is active

  • This is a display bug fixed in recent deployments. Pull latest code and restart: git pull && systemctl restart askgpt
  • The JWT token may be caching an old status — log out and log back in

Admin panel access

Create your admin account with:

node backend/scripts/create-admin.js admin@yourdomain.com YourSecurePassword

Then go to /admin.html and log in. Admin accounts bypass all trial restrictions.

Stripe billing errors in console

If Stripe is not configured, all billing routes return a friendly 503 error — no crash. You can test all other features without Stripe. Add your Stripe keys to .env when ready to accept payments.


Need help? Contact sales@asksol.pk or open the contact form.

ASKGPT — Built on n8n, OpenAI, Pinecone, and PostgreSQL