Form Field Hints
The widget watches form submissions and automatically extracts email, phone, name, and company. This stitches anonymous visitors to identified profiles without writing any code.
How auto-detect works
On any form submit, the widget scans the form's inputs and matches their name, id, placeholder, or label against a set of known patterns:
email,e-mail,mail→ emailphone,tel,mobile,telephone→ phonename,fullname,full-name→ full namefirstname,first-name,vorname→ first namelastname,last-name,nachname,surname→ last namecompany,firm,organization,unternehmen→ company
If your form uses these conventions (most do), it works automatically.
Custom forms — explicit markers
If your form uses unusual field names (#user_em or field-001), add explicit markers:
<form>
<input type="email" data-bp-email name="user_em">
<input type="tel" data-bp-phone name="ctc_p">
<input type="text" data-bp-name name="full">
<input type="text" data-bp-company name="org">
</form>Available data attributes
| Attribute | Maps to |
|---|---|
data-bp-email | |
data-bp-phone | phone |
data-bp-name | full name |
data-bp-first-name | first name |
data-bp-last-name | last name |
data-bp-company | company |
data-bp-field="email|phone|name|first-name|last-name|company" | generic fallback |
Disable auto-identify per form
Some forms shouldn't be tracked (e.g. an unsubscribe form, a delete-account confirmation, or a form on an admin page). Disable identity capture:
<form data-bp-identify="off">
<!-- ... -->
</form>Disable auto-identify globally
createWidget({ slug: "...", autoIdentify: false });Or:
<script async src="https://unpkg.com/@bitpalm/ai-agents"
data-slug="..."
data-auto-identify="false"></script>Per-page opt-out via localStorage
localStorage.setItem("_bp_optout", "1");This goes beyond just disabling auto-identify — it stops all tracking, beacons, and visitor-ID storage.
What gets sent
Auto-identify only sends fields it actually finds. Empty fields are skipped. The widget never reads passwords or hidden inputs.
The data is sent to the BitPalm backend over the same connection the chat widget uses (HTTPS, encrypted at rest). It joins the visitor's profile so the next time they open the chat, the AI knows their email and name.
Privacy considerations
- Auto-identify never runs for visitors who set
_bp_optout=1 - Field values are sent only when a form is submitted (not on input)
- Cookie banners that the visitor hasn't consented to should set
_bp_optout=1until consent is granted
See also
- Identify — manually identify logged-in users
- Configuration — disable autoIdentify globally