Capturing Leads
How lead intent detection works and how to forward leads to your CRM.
Your AI agent doesn't just answer questions — it turns conversations into leads. It recognises the moment a visitor is ready to be contacted, asks for their details right inside the chat, saves the lead to your dashboard, and delivers it to your inbox, CRM, or Slack. You don't add a separate form to your page.
Lead capture is included in the plans you can buy, and leads don't count against the message quota. How many leads each plan accepts a month is in the Lead Capture plan table; during a free trial a trial limit applies.
That's also what keeps the widget useful if you ever exhaust your monthly message quota: instead of disappearing, it switches to contact-only mode and, when Show native lead form to visitors is ticked (as it is on the default form), goes on collecting contacts until the quota has room again. See What happens when you run out.
There are two places you'll work with leads:
- Dashboard → Leads — the list of leads your widget has captured, where you work them like a pipeline.
- Dashboard → Integrations, the Lead Capture tile — where you configure the form (fields, native form, delivery). That is described in Lead Capture.
How the agent captures a lead
Capture is Smart Lead Capture — the agent reads the conversation and only asks for contact details when it makes sense, in the language the visitor is already speaking. It works two ways, and both can be active at once:
- Conversational capture. Mid-chat, when the agent senses genuine buying intent — a pricing question, a demo request, "can someone call me?" — it offers to put the visitor in touch and collects their details naturally, one question at a time. It reuses details the visitor already gave (an email they typed earlier, their name) instead of asking again.
- Native form. Optionally, the widget can show a structured contact form (an "Email the team" action, or a form that appears when the agent finds no answer in your content, or when the visitor asks for a person). You turn this on with a single toggle — see Configure the lead form below.
Fields are fully dynamic
There is no fixed set of fields. Your lead form is what you configure — you can rename fields, add your own, mark them required, or stop collecting the ones you don't need. Call a field "Company name", "Anliegen", or "how_can_we_help" and the agent uses the label you set, translated into the visitor's language.
The agent collects each answer in the visitor's own words and stores the lead. In the native form, an email must look like an email and a phone number must have enough digits. Required fields act as a gate — a lead is not submitted while a required field is blank — the submission is refused and the agent asks the visitor for the missing field.
Works in the visitor's language
Smart Lead Capture does not depend on word lists in one language. The agent reads buying intent, refusals ("not now", "позже", "más tarde") and frustration in the visitor's language, and it asks its questions in that language. You don't translate or reconfigure the lead form for visitors abroad.
It won't be pushy
Aggressive lead-grabbing drives visitors away, so the agent is deliberately restrained. Built-in guards mean it:
- doesn't ask on the first message or two — it answers first and asks later,
- respects a "no" — if a visitor declines, it backs off and waits (a cooldown period) before it could offer again,
- caps how many times it offers per conversation, and
- stops offering entirely if the visitor sounds frustrated.
These limits are set on our side — two offers per conversation, and a pause of eight messages after a "no" — so you don't configure them.
When a conversation needs a human
Some conversations are better handed to a person than answered by a bot. When a visitor asks for a human, sounds frustrated, or asks for something the agent has no answer for, the agent stops trying to answer and offers to collect the visitor's details so your team can follow up — the visitor is told a human will be in touch, and the result lands as a normal lead in Dashboard → Leads.
Want that handoff to happen live, inside the widget, instead of as a follow-up later? That's what Live Agent is for — when one of your operators is online, visitors chat with a real person in real time, and contact details they leave during that chat land in the same Leads list, tagged with their conversation (see Leads captured from live chat).
The Leads list
Dashboard → Leads lists the contacts your widget has captured for the selected website. Switch websites with the workspace switcher at the top of the left-hand navigation; for a paid site of your own, the plan badge on the switcher shows the active plan.
Each lead is a row with:
- Contact — the name, email, and phone the visitor provided, stacked with icons. The email is a one-click reply link.
- Message — a preview of what the visitor wrote.
- Source — where the lead came from.
- When — a relative time ("2h ago"), with the full date and time on hover.
- Status — a coloured status dropdown you change inline (see below).
- Reaction — how the lead responded to an automated follow-up, once one has gone out (see AI Assistant). There's an All reactions filter above the table to narrow by it.
Click a row to expand it. The expanded panel shows the full message, contact chips (clickable email and phone), the other fields your form collected, and a Delivery card telling you whether the lead was emailed and forwarded to your webhook — plus a Submission card with the time, site, and form.
On mobile, each lead becomes a stacked card with the same expand-to-detail behaviour — no sideways scrolling.
Statuses
A lead's status is set from the dropdown on its row. Use it to work leads like a lightweight pipeline:
| Status | Meaning |
|---|---|
| New | Just captured, not looked at yet. |
| Viewed | You've seen it. |
| In progress | You're working it. |
| Awaiting customer | Waiting on the visitor to reply. |
| Contacted | You've reached out. |
| Resolved | Done. |
Actions on a lead
From an expanded lead you can:
- Draft reply — opens your email app with a ready-to-edit draft to the visitor: their address, a subject, a greeting and their message.
- Copy email — copies the address to your clipboard.
- Delete — removes the lead and its captured data permanently, after you confirm.
You can also select multiple leads with the checkboxes and delete them in bulk. The list is paginated, newest first.
Above the table, Reply template sets the body the Draft reply button pre-fills, with insertable tokens such as the lead's name; it applies to the website's leads, and the subject stays automatic.
The expanded lead also has an AI follow-up card. Generate AI reply has the assistant write a personalised reply from the lead's conversation, using your monthly reply allowance. You read the draft, then Send through us or Discard it, or click Write another for a new draft; a draft goes out only when you click Send through us. Automating follow-ups is what AI Assistant does.
Operator access. If you're working a website you were invited to (rather than owning it), you can read leads, draft replies from your email app, and move one along by changing its status. The select and delete controls are hidden from you, and generating or sending an AI follow-up is the owner's; you can read a follow-up the assistant held for the owner. See Team & Operators.
Leads captured from live chat
When a visitor leaves their details during a live human chat, the lead is linked back to that conversation. On such a lead you'll see a "View conversation" button (which opens the thread in Dashboard → Live Chat) and a Source: Live chat line in the Submission card, so you have the context behind the lead — for as long as that conversation is kept under your site's retention window and your plan includes Live Agent. See Live Agent.
Exporting leads
Dashboard → Leads → Export downloads the leads of the period you're viewing as a CSV. Export is not reserved for a higher tier — your leads are yours. A single file holds up to the 10,000 newest leads in the period; if the period holds more, narrow it and export again. Each lead is one row and each form field has its own column, in the order your form asks for them. The file is UTF-8 with a byte-order mark, so Excel shows names and messages in non-Latin alphabets as typed.
When the file is ready, a notice names the section and the period and offers Save file. Your browser may block repeated automatic downloads; Save file is your own click, and if it is blocked too, allow downloads for this site in your browser settings.
Exports are not metered unless your plan states a monthly export allowance. Where it does and the allowance is used up, an export is refused and no file is written; the notice says so. The allowance refreshes on the day your plan's monthly allowance resets.
Captured leads are also cleared on a retention window. The period is published in the Data Retention Policy, so export the leads you need to keep beyond it.
If you also want the analytics numbers, use Dashboard → Analytics → Export (which plans include it); it downloads them as a file of their own, and there you can also pick specific leads before exporting. See Website Analytics.
Configure the lead form
How leads are collected and delivered is set on the Lead Capture tile in Dashboard → Integrations: the collected fields, the native form setting, the notification address, the primary form and where leads are delivered. Each setting, and how many fields your plan lets one form collect, is described in Lead Capture.
A default Contact Form with four required fields (name, email, phone, message) is created the first time we crawl your site, when the website has no other integration yet. It is switched on when the website is on a paid plan that includes lead capture, and created switched off otherwise. Where it is on, capture works out of the box — you only go there to tailor it.
Where leads are delivered
A captured lead is:
- Saved to Dashboard → Leads,
- Emailed to your lead-notification address (or your account email), with the visitor's email set as the reply-to so you can answer in one click,
- Forwarded to your webhook, if you've configured one — for HubSpot, Salesforce, Zapier, Make, n8n, a Slack incoming webhook, or your own endpoint, and
- Posted to Slack, if the Slack integration is connected and has a channel picked.
The Delivery card on each lead shows you at a glance whether the email was sent and whether the webhook was delivered.
Webhook delivery — signed and durable
When a lead is captured, we POST a JSON payload (the captured fields, plus context about the website, form, and session) to your endpoint. Each request is HMAC-SHA256 signed, so an endpoint of your own, or a tool that checks signatures, can verify it genuinely came from us — the signing key, the signing headers and how to verify a delivery are covered in Webhooks. Slack and Discord incoming webhooks do not check signatures, so a delivery to them is not verified.
Delivery is durable — we don't drop a lead the moment your server hiccups:
- Immediate retries — 3 attempts (immediately, then after 1s and 3s).
- Background recovery queue — if those fail, the delivery is queued and retried over a widening schedule: 5 min → 30 min → 2 h → 12 h → 24 h (about a day and a half of runway) before it's abandoned.
Native, no-plumbing integrations for CRMs are on the public roadmap — see novixagent.ai/roadmap.
Tuning capture for a specific business model, or wiring up a CRM? Email support@novixagent.ai — we'll help you set it up.