AI assistant for landing pages
Answer the question.
Capture the lead.
Finish the registration.
ChatX sits on your workshop, course or event page, answers visitors from what the page actually says, and walks interested people through registration: in the chat, or in the form you already have.
- Reads the page it is installed on
- Elementor and Contact Form 7 autofill
- One lead per person, across chat and form
- Google Sheets sync
Live demo
This is the real widget, running against a fictional workshop. Ask about the fee or the curriculum, say you want to register, then choose Not yet at the review step to watch it fill the form on the right. Nothing here is scripted.
How it works
-
Add one script tag
Paste a single line into the page, the theme footer, or an Elementor HTML widget. The chat runs in an isolated frame, so it cannot break your styles and your styles cannot break it.
-
ChatX reads the page
On the first visit it fetches the page, strips navigation, footers and scripts, and keeps what matters: headings, pricing, dates, curriculum, FAQs and the form. It caches the result and re-reads when the content changes.
-
Visitors ask, ChatX answers and converts
Questions are answered from the page first, then from notes you add. When someone wants to join, ChatX collects the details it does not already have, shows them for review, and submits only when the visitor says so.
A lead flow that respects the visitor
The first message offers help, not a form. Someone asking about the schedule gets an answer and nothing more. Someone asking about the fee gets the fee and one offer to help them register. Someone who says sign me up goes straight to registration, and anything they already mentioned is not asked again.
- VisitorReading the page
- EngagedAsking questions, sharing some details
- Details capturedEvery required field known
- SubmittedConfirmed in chat, or sent through the page's form
Knowing a visitor's details is recorded separately from the visitor actually registering. Reports never count one as the other.
Answers come from the page
ChatX knows which page the visitor is on and answers from that page. Client notes come second, and other pages you mark as trusted come third. If none of them say it, the assistant says it is not sure. It does not guess prices, dates, guarantees or placement promises, and it stays on topic when asked for anything else.
- Extracted
- Title, headings, paragraphs, lists, FAQs, pricing lines, dates, calls to action, form labels
- Ignored
- Navigation, footers, scripts, styles, hidden elements, cookie banners
- JavaScript pages
- Plain HTTP first; a headless browser only when the page returns too little text
- Untrusted by design
- Page text and visitor messages are treated as data, never as instructions
Prefers the form? ChatX fills it in
Some people want to press the page's own button. When a visitor declines to submit in the chat, ChatX fills the existing Elementor or Contact Form 7 form with the details they already gave, scrolls to it, and stops. The visitor reviews and submits it themselves. ChatX never submits a website form on anyone's behalf.
The chat frame and the page talk through postMessage with origin, bot ID and message-type checks on both sides. Only fields you mapped can be filled.
One person, one lead
Chat submissions and website form submissions go through the same lead service. Emails are lowercased, phone numbers are converted to one international format, and both are matched within the assistant. A second submission updates the existing lead and is recorded as a prevented duplicate.
| Channel | Visitor entered | Result |
|---|---|---|
| Chat | rahul@gmail.com, 98765 43210 | New lead, submitted via chatbot |
| Website form | Rahul@Gmail.com, +91 98765 43210 | Same lead, now chatbot + form, duplicate recorded |
What visitors actually ask
The admin shows visitors, chats, engaged visitors, captured and submitted leads, and conversion, all computed from stored events. It lists the most asked questions and, separately, the questions the page could not answer: a direct hint about what to add to the landing page.
Empty assistants show empty dashboards. ChatX never fills a chart with placeholder numbers.
Integrations
| Integration | What it does |
|---|---|
| Elementor Pro forms | Autofill, submission tracking via submit_success, webhook action support |
| Contact Form 7 | Autofill, submission tracking via wpcf7mailsent |
| WPForms, Gravity Forms, custom HTML | Autofill and submission tracking through configurable selectors |
| Google Sheets | Leads, conversations and events tabs; saved locally first, synced with retries |
| Webhooks | Server-to-server form notifications, merged with browser reports of the same submission |
| Thank-you pages | Redirect after chat submission with only lead_id and source in the URL |
Built for pages with one job
- Workshops and bootcamps. Fees, schedule, curriculum and eligibility, asked a hundred times a week.
- Online courses. Who it is for, what is included, refunds and certificates.
- Webinars and events. Timing across time zones, recordings, how to join.
- Training programs. Batch dates, prerequisites and the path to enrolment.
Under the hood
- Backend
- Python, FastAPI, SQLAlchemy. SQLite locally, PostgreSQL in production.
- AI
- Provider interface with Anthropic and OpenAI implementations, structured JSON replies, deterministic rules for field capture.
- Widget
- Vanilla JavaScript loader in a closed Shadow DOM, chat UI in a sandboxed frame with per-client
frame-ancestors. - Security
- Origin allow-lists, signed sessions, CSRF protection, rate limits, request size limits, prompt-injection filtering, tenant-scoped queries.
- Privacy
- Only an opaque visitor ID in the browser. No personal data in URLs or logs. Leads can be deleted with their conversations and events.
Set up your first assistant.
Add the landing page URL, check what ChatX learned, map the form, copy the script.
Open the setup