An AI-powered customer service layer for your website.
WidgIq is an embeddable customer service widget — drop one <script> tag into your site and your visitors get an intelligent AI assistant that actually knows your product, your pages, and your content. It resolves the majority of visitor queries instantly, and anything it can't handle — bugs, feature requests, complaints — gets automatically routed to a structured feedback and contact form, so nothing falls through the cracks.
Every conversation is logged to your dashboard, giving you request analytics, full question history, and a weekly AI analysis of what your visitors are actually looking for.
Your knowledge base isn't static — add, update, or remove content anytime as your product evolves, and the assistant stays in sync.
How It Works
Create a project
Add your website to the WidgIq dashboard — or skip the crawl entirely. Build your knowledge base your way: let Firecrawl crawl your pages, add multiple description snippets (title + long-form content), or upload documents like pdf, txt, md, docx, csv, xls, xlsx — mix and match as needed. You can update your knowledge base anytime — crawl specific pages, refresh existing ones, run a full re-crawl, or delete a page's content whenever you want.
Grab your API key
Each project gets a unique API key. This is what connects the widget on your site to your knowledge base in the cloud.
Embed the script
Paste one <script> tag into your site with your API key. Once deployed on your verified domain, the widget appears and responds instantly — it won't respond on localhost since we validate origin for security.
Customize the widget
Choose a theme type, color scheme and other options to match your site. You can customize anytime from the dashboard — no development site needed, changes apply instantly.
Your visitors get answers
When someone asks a question, the RAG system retrieves the most relevantcontent and streams a precise, grounded answer back in real time. If the assistant can't resolve a query, the visitor is guided to a feedback orcontact form — so bugs, feature requests, and complaints reach you directly instead of getting lost.
Your Restricted Pages Are Always Safe
If you choose to crawl your website, our crawler only accesses pages that are publicly available — the same pages any visitor could open in their browser without logging in.
Pages behind authentication — your dashboard, admin panel, user account pages, or any route that requires signing in — are never crawled. This is intentional.
Why this is a feature, not a limitation:
Your restricted pages contain sensitive user data, internal workflows, and private information that should never end up in a public-facing AI assistant's knowledge base. By crawling only public content, your private pages stay completely secure — no risk of exposing confidential data through AI responses.
What this means for you:
Your knowledge base will contain exactly what your visitors need — your product docs, landing pages, pricing, blog posts, and support content — with zero risk of leaking anything behind your login wall.
Ensuring Complete Page Discovery
When you connect your website, our crawler automatically discovers pages through sitemaps and link extraction. However, if your website uses dynamic routes (e.g. /blog/[slug], /services/[id], /docs/[category]/[page]), some pages may not be discovered automatically.
Why does this happen?
Modern websites built with frameworks like Next.js, React, or Vue often generate page URLs dynamically using JavaScript. These links may not be visible to crawlers until the page is fully rendered — and even then, deeply nested routes can sometimes be missed.
What you can do:
The simplest and most reliable fix is to add a sitemap.xml to your website. A sitemap explicitly lists every page you want indexed, ensuring nothing is missed — regardless of how your routes are structured. Most website frameworks support this natively or via a plugin.
If adding a sitemap is not possible right now, don't worry. After crawling, you can:
Get Started
In the dev environment, the widget stays in test mode:
If you're seeing this widget, it means everything's working — go ahead and deploy your changes.
After deployment:
Customizing the widget
Every visual detail of your widget is controlled directly from the dashboard — no code, no redeploy, no waiting. Change anything, anytime, and see it reflected on your live site instantly.
No code required
Customize colors, fonts, layout, and more from simple dashboard controls — no editing your script tag or touching your codebase.
Real-time updates
Changes apply instantly on your live site the moment you save — no redeploy, no waiting for a build.
Change anytime
Come back and adjust your widget whenever your brand or preferences change — nothing is locked in after setup.
Widget theme type. Currently supports "assistant" & "compact".
Currently supports "modern", Default: "modern".
"auto" | "light" | "dark". Default: "auto".
Hex color for accent elements, e.g. "#8611a0". Default: Shadcn UI primary color.
URL to a logo image, you can find the url in dashboard itself if you have uploaded it.
I will recommend to choose the same font as your website. And if that is not avilable, contact us for more font options.
Icon name for the assistant launcher button, Default: agentIcon-1. check below for more agent icons
Add github, twitter, linkedin or custom links to your widget (max 4 links). Default: no links.
JSON array of paths where the widget should be hidden, e.g. '["/admin"]'. Excluding a path hides the widget on that path and everything under it — e.g. "/dashboard" excludes "/dashboard/settings", "/dashboard/billing", etc. Default: widget appears on all pages.
JSON array of paths where the widget should appear. Takes priority over exclude-page — so if a path is excluded but also listed here, it will still show. Useful for carving out exceptions, e.g. you exclude "/dashboard" entirely but still want the widget on "/dashboard/help". Default: widget appears on all pages.
This icon is for assistant launcher button. You can use any of the below icons for your assistant launcher button. Just copy the name of the icon and paste it in the "Agent Icon" field in the widget settings.
Knowledge Base Management
Your knowledge base isn't locked in at setup — every source can be added, updated, or removed at any time from the dashboard. Nothing is permanent, and nothing requires starting over.
Website Crawl
Crawl your entire website at setup to build the initial knowledge base — then keep it fresh anytime, without ever starting over.
Recrawl a specific page
Refresh just the pages that changed, without touching the rest of your knowledge base.
Full re-crawl
Re-crawl your entire website in one go, picking up content changes across every page.
Add new pages
Crawl pages that didn't exist, or weren't included, at setup — anytime after project creation.
Delete a page's content
Remove any crawled page from your knowledge base whenever it's no longer relevant.
Description
A custom description acts as a direct, structured source of truth for your assistant — up to 50,000 characters.
Write anytime
Add or edit your description whenever you want — no recrawl needed.
Instant effect
Changes take effect immediately, right after you save.
Documents
Upload documents of any type — pdf, txt, md, docx, csv, xls, xlsx — to your knowledge base. Each document is treated as a separate source of truth for your assistant.
Add
Upload a new document anytime.
Update
Replace any existing document with a newer version.
Delete
Remove any document you no longer need.
Full Control, Always
Whether it's a crawled page, your description, or documents — every piece of your knowledge base can be added, updated, or deleted at any time.
Always editable
As your product, pricing, or policies evolve, your assistant's knowledge evolves with them.
No lock-in
Nothing is a one-time snapshot — every source stays fully in your control after setup.
Securing Your API Key
Your WidgIq API key is a publishable key — it's designed to be embedded in your website's HTML and is visible to anyone who inspects your site. That's normal and safe, because we have multiple layers of protection in place:
Domain-locked by design
Every request is verified against the website URL registered to your project. Even if someone copies your API key and pastes it into their own site, the request will be rejected — it simply won't respond anywhere except your verified domain.
Hashed key storage
Your raw API key is never stored in our database. We store a one-way cryptographic hash instead, the same approach used for passwords — so even in the extremely unlikely event of a database compromise, your original key can't be reconstructed or reused.
Signed, short-lived session tokens
Beyond domain checks, every widget session is issued a cryptographically signed token with a short expiry window. This token must accompany every chat and form request, making it dramatically harder for automated scripts to replay or forge requests at scale — even if they somehow obtain a valid key and origin.
No open CORS policy
We never use wildcard (*) cross-origin permissions. Every response is scoped precisely to your verified domain, so browsers actively block any other site from reading responses meant for yours.
Layered rate limiting
Every endpoint — chat, contact form, and configuration — enforces independent rate limits tied to your project, not just to a raw key string. This stops abuse patterns like key-guessing or synthetic traffic spikes from ever reaching your usage quota or your visitors' experience.
Instant key rotation.
If you ever suspect your key has been exposed, you can regenerate it in one click from your dashboard. The old key is invalidated immediately and permanently — no waiting period, no support ticket required.
Isolated per-project data
Your knowledge base, conversation history, and analytics are strictly partitioned by project at the database level. There is no shared query path between customers — your data is never visible to, or retrievable by, another project.
Verified email delivery
Contact form submissions are validated, rate-limited per sender, and capped to prevent spam floods — so your inbox only receives genuine visitor messages, not scripted noise.
We treat every layer of this system as if the API key were already public — because for all practical purposes, it is. That's what lets us guarantee your widget stays exclusively yours, on exclusively your domain, with your data staying exclusively your own.
That said, we still recommend following these best practices:
Store your API key in a .env (or .env.local) file
Add .env* to your .gitignore file
Commit a .env.example file with placeholder values so your team knows what to set
One dashboard. Every advantage.
WidgIq isn't just a widget you embed and forget. From deep customization to real visitor insights, everything that makes your assistant smarter and your workflow easier lives right here.
Key Features
Deep customization
Customize colors, fonts, placement, visibility, and widget style from the dashboard—no developer required.
Turn Unanswered Questions Into Enquiries
The moment the assistant suggests reaching out for help, a clickable contact form button appears right inside the chat — no hunting for a contact link.
See Where Your AI Is Falling Short
Visitors can thumbs up or down any AI response. See exactly which answers fell short, update your knowledge base — right from the dashboard.
Flexible knowledge base
Crawl your site, write multiple description snippets, or upload documents — mix and match, then update anytime as your product evolves.
Extremely lightweight(~ 10 to 15 KB)
A single JS file. No npm install, no build step, no framework required. If your site can load a script tag, it can run WidgIq.
Streaming responses
Responses stream token by token — no waiting for the full answer to load. Feels instant, keeps users engaged, just like ChatGPT.
Excellent RAG pipeline
WidgIq searches your approved website content and documents before answering, helping it provide relevant answers specific to your business.
Support Customers in Their Language
Whether they ask in English, Hindi, Spanish, French, or another supported language, WidgIq responds in the same language automatically.
Conversation Analytics
Track daily and total request counts, so you can see engagement grow as your widget usage scales.
Discover What Customers Want to Know
Browse the recently asked questions, so you always know what your audience is curious about.
Weekly AI analysis
Every week, WidgIq analyzes your visitors' questions automatically and surfaces actionable insights.
Manage All Your Websites From One Account
Run separate widgets for separate sites or products, each with its own knowledge base, API key, and analytics — all from one dashboard.