Lead capture
Turn chatbot conversations into leads. Your bot shows an inline contact form when a visitor signals buying intent, and every submission lands in a dashboard you can export to CSV.
Lead Capture turns your chatbot into a lead-generation channel. When a visitor shows interest — asks about pricing, requests a demo, wants to be contacted — your bot displays a short contact form right inside the chat. The fields they fill show up on the Leads tab, and you can export them to a CSV any time.
You decide when the form appears and which fields are on it. The bot decides the exact moment based on the conversation.
Before you start
- Plan: Lead Capture is part of AI Tools, available on the Growth plan and above.
- Channels: today Lead Capture runs on the Web widget only. WhatsApp and Telegram visitors won't see the form yet.
Enable it on a chatbot
- Open a chatbot and go to the Tools tab.
- Find the Lead Capture card and click Enable.
- Review the configuration below (the defaults are sensible for most use cases), then click Enable Tool.
Once enabled, a new Leads tab appears in the chatbot sub-nav — that's where you'll review everything that gets captured.
Lead Capture is off by default on every chatbot. Enabling it on one chatbot doesn't affect any others.
Configure it
The configuration form has six sections. You can change them later from Tools → Configure.
1. When to trigger
A short instruction in plain English telling the bot when to show the form. The default is:
Trigger this when the user asks about pricing, requests a demo, asks to be contacted, or shows strong buying intent. Do NOT trigger during casual greetings, factual Q&A, or troubleshooting.
Write this the way you'd brief a sales rep. Examples of good triggers:
- "Show the form when a visitor asks about pricing, availability, or wants a callback."
- "Ask for contact info only after the visitor has asked at least two product questions."
- "Trigger when a visitor mentions their business name, team size, or wants a custom quote."
The bot reads this every turn and decides whether the current message qualifies.
2. Form fields
Three fields are supported — Name, Email, and Phone. Each has two toggles:
- Enable — include the field on the form.
- Required — visitor must fill it to submit. Disabled fields automatically clear their Required flag.
Defaults: Name and Email are enabled and required. Phone is off.
You can't add custom fields. This keeps the form short, which keeps submit rates high.
3. Success message
What the bot says in the chat after a visitor submits the form. Default:
Thanks! We'll be in touch shortly.
Keep it warm and short. The bot posts it as a normal reply, so it shows up in the conversation transcript.
4. Dismiss message
What the bot says when a visitor closes the form without submitting (the × button at the top of the form). Default:
No problem — let me know if you change your mind.
5. Only capture once per conversation
On by default. When on, if the same visitor triggers the form a second time in the same conversation after already submitting, the bot will say something like "We already have your contact info on file — someone from our team will follow up shortly" instead of showing the form again.
Turn this off if you want to re-capture or update contact info mid-conversation.
6. Enabled channels
Defaults to widget. Leave it as-is. WhatsApp and Telegram support is planned but not live yet.
What the visitor sees
When the bot decides it's time, the visitor sees:
- A short reply from the bot (e.g. "Sure — please share a few details below and we'll be in touch.").
- A contact form inline in the chat, with the fields you enabled and an × in the top-right corner to dismiss.
- After submit: the form disappears and the success message shows up as a normal chat reply.
- If they dismiss: the form disappears and the dismiss message shows up as a normal chat reply.
The form isn't a popup or a new page — it lives inside the chat bubble stream, so the visitor never loses context.
Review captured leads
Open the chatbot and click the Leads tab. You'll see a table with every lead captured:
- Date — when the visitor submitted the form.
- Name / Email / Phone — whatever they filled in. Email and phone are clickable (mailto: / tel:).
-
Source — which channel the lead came from (today: always
widget). - Conversation — a link to the full transcript of the chat where the lead was captured.
Missing fields show as —. The table is sorted newest first, paginated 50 per page.
The Leads tab only appears on a chatbot's sub-nav when Lead Capture is enabled on that chatbot. If you disable the tool later, the tab hides — but previously captured leads are preserved and still accessible by visiting
/app/chatbots/{id}/leadsdirectly.
Export to CSV
On the Leads page, click Export CSV in the top-right. You get one file with every lead this chatbot has captured:
| Column | Contents |
|---|---|
inserted_at |
Date and time of the submission |
name, email, phone |
As submitted (empty cell if the field wasn't collected) |
source |
widget |
conversation_id |
ID of the conversation — useful if you want to cross-reference in your CRM |
The filename is leads-. You can import this directly into HubSpot, Pipedrive, Mailchimp, Google Contacts, or any tool that accepts CSV.
Writing better trigger prompts
The trigger prompt drives everything. Some patterns that work well:
- Be specific. "After the visitor asks about pricing or plans" is clearer than "When they seem interested".
- Tell the bot when NOT to trigger. The default prompt excludes casual greetings, factual Q&A, and troubleshooting — add your own exclusions if you see false positives.
- Stage the ask. For longer consultative flows: "Only trigger after the visitor has described their business, team size, or use case."
- Offer a reason. "If the visitor asks about enterprise or custom pricing, capture their info so our sales team can reach out."
Read a week's worth of conversations under Conversations, then adjust your trigger prompt based on what real visitors are saying.
Common questions
Can visitors refuse to fill the form?
Yes — the × in the top-right of the form always dismisses it. The dismiss message posts automatically, and the visitor can keep chatting. You won't see anything on the Leads tab for dismissed forms.
What happens if a visitor enters fake info?
Whatever they type is stored as-is. Lead Capture does no validation beyond checking that required fields aren't empty. If your workflow depends on valid emails, run a quick verification step in your CRM or email tool after exporting the CSV.
Can I customize the field labels, order, or add a "Company" field?
Not today. The form is fixed at Name, Email, Phone (in that order). If you need richer capture (notes, company, custom dropdown), this is on the roadmap.
My chatbot doesn't show the form even when I trigger it manually. Why?
A few things to check:
- Is the tool enabled on this chatbot? Check the Tools tab — the Lead Capture card should show a green Enabled badge.
- Are you on the web widget? The form doesn't render on WhatsApp or Telegram yet.
- Have you already submitted a lead in this session? With Only capture once per conversation on, you won't see the form a second time. Start a fresh conversation (the New conversation button in the widget header).
- Does your trigger prompt match? Read your prompt out loud — would you think the visitor's latest message qualifies? If not, the bot probably agrees with you.
Where do I get notified when a new lead comes in?
Real-time push notifications aren't part of Lead Capture yet. For now, check the Leads tab or set up a daily/weekly CSV export and review. A webhook/email notification path is planned.
See also
- What are tools? — the Tools tab in general
- Human handoff — the other side of the coin: when the bot can't help, hand off to a real person
- Conversations overview — read the chats that produced each lead
- Plans & pricing — what's included in Growth