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:

  1. Inline Form (recommended) — The bot displays a styled form directly inside the chat. The visitor fills it out and submits. Clean, fast, and familiar.
  2. 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.

💡 Form vs. Conversation
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.
⚠️ Instructions are essential
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:

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

  1. Go to AxiaChat AI → Leads → Lists Settings and click "New List".
  2. Enter a Name (e.g., "Course Enrollment"). A Slug is auto-generated (e.g., course_enrollment). The slug determines the tool names.
  3. Configure the Fields you want to collect.
  4. Choose a Save Destination.
  5. Customize the Form Appearance in the Advanced section (optional).
  6. Click Save.

List Settings Overview

SettingDescription
NameDisplay name for the list (shown in admin and can be used in form headers)
SlugUnique identifier (a-z, 0-9, _). Determines tool names: show_form_slug
DescriptionInternal note about the list's purpose
StatusActive 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.

ColumnDescription
KeyInternal identifier (e.g., email, budget). Lowercase, underscores only.
LabelThe label the user sees (e.g., "Email Address", "Your Budget Range")
TypeText, Email, Phone, Textarea, Number, or URL
RequiredIf checked, the field must be filled before submission. A red asterisk (*) appears next to the label.
AI DescriptionHelps 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.

💡 Field types matter
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

  1. The visitor is chatting with the bot and shows interest.
  2. The bot calls the show_form tool. An attractive form slides into the chat.
  3. The visitor fills in the fields. Required fields are validated instantly.
  4. On submit, the data is saved to your chosen destination.
  5. The form is replaced by a customizable success message with a green checkmark (✓).
  6. 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:

SettingDescriptionDefault
Display ModeFull: labels + placeholders. Compact: placeholders only (saves space).Full
Form HeaderHTML displayed above the form. Supports <h3>, <p>, <strong>, <em> tags. Leave empty for no header.(list name + subtitle)
Submit Button TextLabel for the submit button."Send"
Success MessageShown after successful submission, with a green ✓ checkmark."Thank you! Your information has been saved."
Background ColorThe form container background. Uses a dark theme by default for contrast.#1f2937
Button ColorThe 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.

💡 Form Header Example
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

  1. The bot asks for each piece of information naturally ("What's your email?")
  2. The visitor responds in their own words
  3. Once the bot has enough data, it calls save_lead with structured parameters
  4. The lead is saved to the same destination as the form would use
Example Conversation

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.

DestinationDescription
Internal DatabasePlugin's built-in table. Manage leads at AxiaChat AI → Leads → Lead List. No external dependencies.
Google SheetsEach 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 7Sends leads through a CF7 form. Maintains your existing CF7 automations and notifications.
WPFormsSends leads through a WPForms form. Compatible with WPForms conditional logic and integrations.

Setting Up Google Sheets

  1. In your list settings, select Google Sheets as the destination.
  2. Click "Connect with Google" and authorize the app via OAuth.
  3. Create a spreadsheet in Google Sheets (or use an existing one).
  4. Copy the full URL from your browser and paste it in the "Google Sheet URL" field.
  5. Click "Test Connection" to verify access.
  6. (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

  1. Make sure Contact Form 7 or WPForms is installed and active.
  2. Select the destination in your lead list settings.
  3. Choose the specific form from the dropdown.
  4. 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.

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.

💡 Multiple Lists + Bot Assignment
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:

ToolName PatternPurpose
Show Formshow_form or show_form_slugDisplays the inline form in the chat widget
Save Leadsave_lead or save_lead_slugSaves 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:

  1. Go to AxiaChat AI → AI Tools.
  2. Select your bot from the dropdown.
  3. In the Bot Skills tab, check "Lead Capture".
  4. 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
⚠️ Be specific about triggers
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

ColumnDescription
NameLead's name (+ company as subtitle if present)
EmailClickable mailto link
PhoneClickable tel link
ListWhich lead list captured this lead
BotThe bot that captured the lead
StatusInline dropdown — change status without leaving the page
DateWhen the lead was captured
ActionsView details, view conversation log, delete

Lead Statuses

StatusDescription
NewJust captured. No action taken yet.
ContactedYou've reached out to this lead.
ConvertedLead became a customer or achieved the goal.
DiscardedNot interested or not qualified.

Filtering & Search

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.

  1. In your list settings, find the Notifications card.
  2. Check "Send email notification".
  3. Click "Edit Template" to customize the email subject and body.
  4. The recipient defaults to your site's admin email. You can change it in the template editor.

Template Placeholders

PlaceholderValue
{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
💡 Don't duplicate notifications
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

Setup

  1. In your list settings, scroll to the Webhook Integration card (Advanced section).
  2. Check "Send webhook on new lead".
  3. Paste your webhook URL (e.g., https://your-n8n.com/webhook/abc123).
  4. 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)

SettingDescription
Store IP hashStores a SHA-256 hash of the visitor's IP address (not the actual IP). Useful for identifying repeat visitors without storing personal data.
Data retentionAutomatically delete leads older than X days (1–365). Set to 0 to keep leads forever.

Data Management

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

Form appears but data isn't saved

Lead count shows 0 in the Lists table

Webhook not firing