Overview#
Lead capture lets you collect visitor information — name, email, company, and any custom fields — directly inside the chat widget. When enabled, a form appears in the chat stream, either before the conversation starts or after the first exchange.
A visitor is asked only once. Once they submit, they are not asked again on that chatbot, even in later conversations. Submitted leads appear in the dashboard alongside the conversation history.
Enabling lead capture#
- Go to your chatbot's Settings > Lead capture tab.
- Turn on Collect leads. Everything below the toggle stays disabled until you do.
- Configure the timing, wording and fields (see below).
- Save your settings.
Timing#
Choose when the lead form appears:
| Option | Behavior |
|---|---|
| Before the conversation | The form appears as soon as the widget opens, before the first message. Collects the most leads. |
| After the first reply | The form appears after the visitor sends their first message and receives a response. Less intrusive — visitors engage with your content first. |
Tip: "After the first reply" typically converts better because visitors have already experienced value before being asked for their details.
Form fields#
Customize the fields your form collects:
| Property | Description |
|---|---|
| Label | What visitors see (e.g., "Company name"). |
| Placeholder | The greyed-out example inside the box. It follows the field type. |
| Type | Text, Email, Phone or Number. |
| Required | Whether the field must be filled in before submitting. |
Reorder rows with the arrows, remove one with ✕, and add up to five with Add field. The defaults are Name and Email.
Ask only for what you need — every extra field costs conversions.
Note: Once a field has been saved, the storage key behind it is fixed. Renaming its label is safe and will not orphan the details you have already collected — which is also why integrations should key off field keys rather than labels.
Form copy#
Customize every piece of text on the lead form:
- Headline — Shown above the form (e.g., "Before we start, tell us about yourself")
- Description — Shown below the headline
- Submit button — Default: "Submit"
- Skip link — Default: "Skip for now"
- Success message — Shown after submitting (e.g., "Thanks! We'll be in touch.")
Leaving the skip link empty removes it entirely and makes the form mandatory — visitors must submit before they can chat.
Form appearance#
Seven colors — card background, border, headline, description and labels, input background, submit button, and submit text. Each is AUTO, derived from your brand, until you override it; ↺ returns it to AUTO.
Changing your brand color or surface style in Design & copy resets these back to AUTO so the form keeps matching the rest of your widget.
Viewing captured leads#
Leads appear in the Widget conversations list. The "Visitor" column shows the name (if collected) instead of "Anonymous".
Open a conversation to see the full lead card with all submitted fields and the submission timestamp.
You can export conversations (with lead data) to XLSX or CSV for import into your CRM.
Sending leads to your own tools#
If you would rather not wait for an export, the widget can tell your page the moment a lead is captured — useful for
pushing straight into a CRM, an email tool, or your analytics. Add an onLeadSubmitted callback to the embed snippet:
<script
src="https://app.hyperhelp.ai/widget/chat.js"
async
onload='window.HyperhelpWidget.init({
"chatbotKey": "YOUR_WIDGET_KEY",
"callbacks": {
"onLeadSubmitted": function (payload) {
// payload.lead.data holds the submitted fields, keyed by field key.
analytics.track("lead_captured", payload.lead.data);
}
}
})'
></script>
It only fires once the lead is safely stored, so anything you trigger from it — a CRM record, a conversion pixel —
matches a lead you can find in your dashboard. Three more callbacks cover the rest of the form's life: onLeadShown,
onLeadDismissed and onLeadError.
See the developer reference for the full payload.
How often visitors are asked#
- Once they submit, they are never asked again on that chatbot — not in that conversation, and not in later ones.
- If they skip instead, the form stays gone for the rest of that visit, including any new conversation they start. Because they never gave you their details, a fresh page load may ask again.
- A visitor who skips can still chat normally, unless you made the form mandatory by clearing the skip link.
- Lead capture is available on all plans.
Privacy: The widget is only ever told whether a lead exists — never the details already on file. Collected details are visible to you in the dashboard and are never sent back to a visitor's browser. The one exception is the moment of submission, where what the visitor has just typed can be handed to your own page through the callbacks above.