Lead Capture
Turn conversations into contacts — capture leads with beautiful inline forms or natural conversation, store them anywhere.
How It Works
Lead Capture gives your bot two ways to collect visitor information:
- Inline Form (recommended) — The bot displays a styled form directly inside the chat. The visitor fills it out and submits. Clean, fast, and familiar.
- Conversational — The bot asks for details one by one through natural conversation, then saves everything at once. Best for channels that can't render forms (e.g., WhatsApp).
Both methods save leads to the same destination and trigger the same notifications. You configure everything through Lead Lists — each list has its own fields, destination, form appearance, and bot assignment.
The inline form (
show_form tool) is the recommended approach for web chat. It provides a polished user experience with validation, custom colors, and a clear success message. The conversational approach (save_lead tool) is available as a fallback for non-visual channels or when you prefer a more organic flow.
Quick Start (4 Steps)
1. Enable the Add-on
Go to AxiaChat AI → Settings → Add-ons and activate "Lead Capture". A default lead list is created automatically.
2. Configure Your Lead List
Go to AxiaChat AI → Leads → Lists Settings. Click your list to edit it. At minimum, review the Fields (what data to collect) and Save Destination (where leads are stored).
3. Enable on Your Bot
Go to AxiaChat AI → AI Tools, select your bot, and in the Bot Skills tab, toggle on "Lead Capture".
4. Instruct the Bot
In your bot's instructions (AxiaChat AI → Training), tell the bot when to show the form. The lead list settings page shows a ready-to-copy instruction example:
When the user shows interest in our services, use the tool show_form_default
to ask for their contact details.
Without explicit instructions in your bot's prompt, the bot won't know when to capture leads. The tool gives it the ability — the instructions tell it when to use it. Every lead list shows a suggested instruction you can copy directly.
Lead Lists
Lead Lists are the core of the system. Each list is an independent lead capture unit with its own fields, destination, form design, and settings. You can have one list or many.
Why Multiple Lists?
Different use cases need different data. For example:
- Contact Requests — Name, email, phone, message
- Course Enrollment — Name, email, preferred schedule, experience level
- Quote Requests — Company, email, budget range, project description
Each list registers its own AI tools (show_form_slug and save_lead_slug), so the bot knows exactly which form to show depending on the context.
Manage all lists at AxiaChat AI → Leads → Lists Settings.
Creating a List
- Go to AxiaChat AI → Leads → Lists Settings and click "New List".
- Enter a Name (e.g., "Course Enrollment"). A Slug is auto-generated (e.g.,
course_enrollment). The slug determines the tool names. - Configure the Fields you want to collect.
- Choose a Save Destination.
- Customize the Form Appearance in the Advanced section (optional).
- Click Save.
List Settings Overview
| Setting | Description |
|---|---|
| Name | Display name for the list (shown in admin and can be used in form headers) |
| Slug | Unique identifier (a-z, 0-9, _). Determines tool names: show_form_slug |
| Description | Internal note about the list's purpose |
| Status | Active or Inactive. Inactive lists don't register AI tools. |
Custom Fields
Each list defines its own set of fields. You can add, remove, and reorder fields freely.
| Column | Description |
|---|---|
| Key | Internal identifier (e.g., email, budget). Lowercase, underscores only. |
| Label | The label the user sees (e.g., "Email Address", "Your Budget Range") |
| Type | Text, Email, Phone, Textarea, Number, or URL |
| Required | If checked, the field must be filled before submission. A red asterisk (*) appears next to the label. |
| AI Description | Helps the AI understand what this field is for when using save_lead conversationally. |
Default fields for a new list: Name, Email, Phone, Company, Interest, Notes. You can modify or replace them entirely.
Choosing the right type enables proper validation. Email fields are validated for email format, Phone fields show a phone keyboard on mobile, and Textarea fields give the user more room for longer answers.
Inline Form (show_form)
The inline form is the primary way to capture leads. When the bot calls show_form, a styled form appears inside the chat conversation. The visitor fills it out and clicks submit — no page reloads, no popups.
How the Form Flow Works
- The visitor is chatting with the bot and shows interest.
- The bot calls the
show_formtool. An attractive form slides into the chat. - The visitor fills in the fields. Required fields are validated instantly.
- On submit, the data is saved to your chosen destination.
- The form is replaced by a customizable success message with a green checkmark (✓).
- The conversation continues normally.
While the form is visible, the chat input is temporarily disabled to focus the visitor's attention on the form.
Form Appearance
Each list has a Form Appearance card in the Advanced section where you can fully customize how the form looks:
| Setting | Description | Default |
|---|---|---|
| Display Mode | Full: labels + placeholders. Compact: placeholders only (saves space). | Full |
| Form Header | HTML displayed above the form. Supports <h3>, <p>, <strong>, <em> tags. Leave empty for no header. | (list name + subtitle) |
| Submit Button Text | Label for the submit button. | "Send" |
| Success Message | Shown after successful submission, with a green ✓ checkmark. | "Thank you! Your information has been saved." |
| Background Color | The form container background. Uses a dark theme by default for contrast. | #1f2937 |
| Button Color | The submit button color. | #0073aa |
A live preview on the right side updates in real-time as you change settings, so you can see exactly how the form will look before saving.
Use the header to add context, a title, or a short call-to-action:
<h3>Request a Free Quote</h3>
<p>Fill in your details and we'll get back to you within 24 hours.</p>
Conversational Capture (save_lead)
For channels that can't render forms (WhatsApp, SMS, voice) or when you prefer a more natural interaction, the bot can collect information through conversation and save it with the save_lead tool.
How It Works
- The bot asks for each piece of information naturally ("What's your email?")
- The visitor responds in their own words
- Once the bot has enough data, it calls
save_leadwith structured parameters - The lead is saved to the same destination as the form would use
User: I'm interested in the Professional plan
Bot: Great choice! The Professional plan includes 20 sites and LiveChat. Would you like our team to contact you?
User: Yes, please
Bot: Sure! What's your email so we can reach out?
User: [email protected]
Bot: And your phone number?
User: +1 555 0123
Bot: Thanks John! Our team will contact you soon. Anything else I can help with?
(Lead saved automatically via save_lead)
The save_lead tool parameters are built automatically from your list's fields. The AI knows each field's name, type, and description, so it can extract the right data from the conversation.
Storage Destinations
Each list saves leads to one destination. All methods — form and conversational — use the same destination.
| Destination | Description |
|---|---|
| Internal Database | Plugin's built-in table. Manage leads at AxiaChat AI → Leads → Lead List. No external dependencies. |
| Google Sheets | Each lead becomes a new row in your spreadsheet. Headers added automatically. Real-time sync. |
| WordPress (CPT) | Saves as native WordPress custom posts. Works with other WordPress plugins and workflows. |
| Contact Form 7 | Sends leads through a CF7 form. Maintains your existing CF7 automations and notifications. |
| WPForms | Sends leads through a WPForms form. Compatible with WPForms conditional logic and integrations. |
Setting Up Google Sheets
- In your list settings, select Google Sheets as the destination.
- Click "Connect with Google" and authorize the app via OAuth.
- Create a spreadsheet in Google Sheets (or use an existing one).
- Copy the full URL from your browser and paste it in the "Google Sheet URL" field.
- Click "Test Connection" to verify access.
- (Optional) Enter a specific Sheet Name if you don't want to use the first tab.
Headers are added automatically with the first lead. Each new lead becomes a new row. Each list can connect to a different spreadsheet.
Setting Up CF7 or WPForms
- Make sure Contact Form 7 or WPForms is installed and active.
- Select the destination in your lead list settings.
- Choose the specific form from the dropdown.
- The AI tool schema is automatically adapted to match the form's fields.
Bot Assignment
Each lead list can be assigned to all bots or a specific bot. This is configured in the AI Tools card within the list's Advanced section.
- All bots — Every bot on your site can trigger this list's form/tool.
- Specific bot — Only the selected bot has access. Other bots won't see the tool.
This is useful when you have multiple bots for different purposes (e.g., a sales bot and a support bot) and want each one to capture leads with different forms.
You can create a "Contact Requests" list assigned to the support bot and a "Quote Requests" list assigned to the sales bot. Each bot only sees its own form and saves to its own destination.
AI Tools & Tool Names
When you save a lead list, two AI tools are registered automatically:
| Tool | Name Pattern | Purpose |
|---|---|---|
| Show Form | show_form or show_form_slug | Displays the inline form in the chat widget |
| Save Lead | save_lead or save_lead_slug | Saves lead data collected conversationally |
If you have a single list, the tools are named simply show_form and save_lead. With multiple lists, the slug is appended: show_form_course_enrollment, save_lead_quote_requests, etc.
Both tools can be enabled or disabled per list via the Enable Lead Capture checkbox in the AI Tools card. The Registered Tool Names badges update in real-time as you change the slug.
Enabling on a Bot
In addition to list-level settings, you need to enable the Lead Capture skill on each bot:
- Go to AxiaChat AI → AI Tools.
- Select your bot from the dropdown.
- In the Bot Skills tab, check "Lead Capture".
- Click Save Skills.
Writing Bot Instructions
Every lead list shows a "How to use in bot instructions" panel with a ready-to-copy example. Add similar instructions to your bot's system prompt at AxiaChat AI → Training.
Examples by Use Case
Sales / Pricing Bot
When the user asks about pricing, requests a quote, or shows interest in
purchasing, use the tool show_form_contact to ask for their contact details.
Support Bot
If the user has a complex issue that requires human assistance, offer to
connect them with our team. If they agree, use show_form_support to collect
their information.
Course / Event Registration
When the user wants to register for a course or event, use the tool
show_form_registration to collect their enrollment details.
Multiple Lists on One Bot
You have access to two forms:
- When the user wants a quote, use show_form_quotes
- When the user wants to subscribe to the newsletter, use show_form_newsletter
Tell the bot exactly when to show the form. Vague instructions like "capture leads when appropriate" will produce inconsistent results. Tie the form to specific user intents like asking for pricing, wanting to be contacted, or requesting a demo.
Managing Leads
Go to AxiaChat AI → Leads → Lead List to manage all captured leads.
Table Columns
| Column | Description |
|---|---|
| Name | Lead's name (+ company as subtitle if present) |
| Clickable mailto link | |
| Phone | Clickable tel link |
| List | Which lead list captured this lead |
| Bot | The bot that captured the lead |
| Status | Inline dropdown — change status without leaving the page |
| Date | When the lead was captured |
| Actions | View details, view conversation log, delete |
Lead Statuses
| Status | Description |
|---|---|
| New | Just captured. No action taken yet. |
| Contacted | You've reached out to this lead. |
| Converted | Lead became a customer or achieved the goal. |
| Discarded | Not interested or not qualified. |
Filtering & Search
- Search — Search by name, email, phone, or company
- Status filter — Show only leads with a specific status
- List filter — Show leads from a specific list (appears when you have multiple lists)
Export
Click "Export CSV" to download all leads matching the current filters. The file is UTF-8 encoded for Excel compatibility.
Email Notifications
Get notified by email every time a new lead is captured. Each list has its own notification settings.
- In your list settings, find the Notifications card.
- Check "Send email notification".
- Click "Edit Template" to customize the email subject and body.
- The recipient defaults to your site's admin email. You can change it in the template editor.
Template Placeholders
| Placeholder | Value |
|---|---|
{name} | Lead's name |
{email} | Lead's email |
{phone} | Phone number |
{company} | Company name |
{message} | Notes or message content |
{date} | Capture date and time |
{bot} | Bot that captured the lead |
{admin_url} | Direct link to the leads admin page |
The Lead Capture add-on has its own email notification system. If you also have the Email Alerts tool enabled, there's no need to set up alerts for "lead captured" events — the lead add-on already handles that.
Webhook Integration
Send lead data to external services via webhook. This works in addition to the chosen destination — the lead is saved to your destination AND sent to the webhook URL.
Compatible Platforms
- n8n — Self-hosted automation workflows
- Zapier — Connect with thousands of apps
- Make (Integromat) — Complex automation flows
- Custom APIs — Your own CRM, ERP, or backend
Setup
- In your list settings, scroll to the Webhook Integration card (Advanced section).
- Check "Send webhook on new lead".
- Paste your webhook URL (e.g.,
https://your-n8n.com/webhook/abc123). - Save the list. Every new lead will now POST a JSON payload to that URL.
Webhook Payload
The webhook sends a JSON POST with this structure:
{
"name": "John Smith",
"email": "[email protected]",
"phone": "+1 555 0123",
"company": "Acme Inc.",
"interest": "Professional plan",
"notes": "",
"bot": "sales_bot",
"list": "contact_requests",
"list_name": "Contact Requests",
"date": "2026-03-10T14:30:00+01:00",
"source": "https://yoursite.com",
"lead_id": 42
}
GDPR & Privacy
Lead Capture includes built-in privacy controls to help you comply with GDPR and similar regulations.
Privacy Settings (per list)
| Setting | Description |
|---|---|
| Store IP hash | Stores a SHA-256 hash of the visitor's IP address (not the actual IP). Useful for identifying repeat visitors without storing personal data. |
| Data retention | Automatically delete leads older than X days (1–365). Set to 0 to keep leads forever. |
Data Management
- View — Click the eye icon on any lead to see all stored data.
- Delete — Delete individual leads or select multiple and bulk delete.
- Export — Export to CSV for data portability requests.
GDPR Contacts
The AxiaChat AI → Leads → GDPR Contacts tab shows contacts captured via the GDPR email consent widget (a separate system from lead lists).
Troubleshooting
Bot doesn't show the form
- Check that Lead Capture is enabled in AI Tools → Bot Skills for your bot.
- Check that the list's Status is "Active" and Enable Lead Capture is checked in the AI Tools card.
- Verify your bot's instructions reference the correct tool name (e.g.,
show_form_default). - If using bot assignment, make sure the list is assigned to the right bot.
Form appears but data isn't saved
- Check the browser console for JavaScript errors.
- Make sure the form destination is properly configured (e.g., Google Sheets is connected).
Lead count shows 0 in the Lists table
- If using the CPT destination, leads are saved as WordPress posts, not in the internal leads table. The count only reflects internal leads.
- Test by submitting a form and checking the Lead List tab.
Webhook not firing
- Verify the URL is correct and accessible from your server.
- Check that "Send webhook on new lead" is enabled in the list settings.