Lead capture — turn visitor messages into contacts
When a visitor types their email or phone into the chat, Wilow recognises it and stores it as a lead. The visitor gets a small "Got your details — we'll be in touch" confirmation, and the lead appears on the admin Leads page with the full conversation attached. No form, no modal — the capture happens inline.
When to enable it
Turn lead capture on if any sales follow-up happens off-chat — you answer product questions in chat, but the actual pitch, the quote, the onboarding call, they happen over email or phone. Without lead capture, the visitor gets their answer and leaves. With it, you know who they were.
Turn it off if you're pure self-serve and a contact form would feel intrusive. The widget stays quieter.
How to enable it
- Admin → Widget → Lead capture.
- Toggle Enable lead capture on.
- Pick a preference: Email, Phone, or Both. This controls what Wilow asks for in its system prompt when escalation intent comes through. If you only work over phone, switching to Phone stops Wilow from volunteering email as an option.
- Hit Save.
Wilow now captures contacts in two ways — passively (the visitor types one unprompted) and actively (Wilow notices the visitor is a buying intent and asks). The ask is conservative: never in the first two turns, never repeated once captured, and skipped entirely if the visitor sounds frustrated.
What Wilow captures
Wilow runs a regex-based extractor on every user message. It picks up:
- email addresses (standard format —
[email protected]) - phone numbers (international
+…form, national formats for the countries we serve: DE, AT, CH, UK, US) - both if the visitor types both in one message
The extractor runs before PII redaction (see the Pitfalls below), so your Leads list always has the real contact even if the transcript is scrubbed.
Reading the Leads page
Every captured lead lands on admin → Leads. For each row:
- Email / phone — what Wilow captured.
- Captured at — when the contact was first seen.
- Last conversation — clickable, jumps to the full chat that produced the lead.
- Status —
newby default. Change tocontacted,qualified, orclosedas you work the lead. State only exists for your own tracking; it isn't surfaced to the visitor.
Leads export as CSV from the same page.
Re-engagement
If a visitor goes quiet for 30 days and comes back, we fire a lead.re_engaged event to your lead webhook so you can decide whether to reach out. See Lead webhook for the payload. The admin list doesn't create a duplicate row — it updates last conversation and bumps the lead back to the top.
Pitfalls
- Abuse caps — one visitor can submit at most 3 leads per hour. Serial drive-by submissions from a scraper don't flood your inbox. Per-message extraction still runs, but only the first three unique contacts from that visitor stick.
- PII redaction — if PII redaction is enabled (on by default), the stored message content has emails/phones replaced with
[REDACTED]. The lead record itself keeps the contact — you need it to reach out. This is deliberate: transcripts are for compliance-clean review, leads are for follow-up. - Missed captures — very unusual phone formats (extensions, local-only short codes) may not match the extractor. If you see patterns that aren't being caught, let us know and we'll extend the regex.
- Dev-mode emails — when you test with
[email protected]style addresses, they get captured like any other. Delete the test row or filterexample.comout before exporting.