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 → email
  • phone, tel, mobile, telephone → phone
  • name, fullname, full-name → full name
  • firstname, first-name, vorname → first name
  • lastname, last-name, nachname, surname → last name
  • company, 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

AttributeMaps to
data-bp-emailemail
data-bp-phonephone
data-bp-namefull name
data-bp-first-namefirst name
data-bp-last-namelast name
data-bp-companycompany
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=1 until consent is granted

See also