Skip to content

Stable Field Names

Each form field can have a user-defined name set in the form editor under Field settings → Name. When present, the widget surfaces this stable key in three places:

  1. DOM name="" attribute on the rendered input — enables stable CSS selectors.
  2. fieldName in event details — used by GTM triggers and analytics.
  3. name in webhook fieldContext and as a key in resolvedData — server-side handlers can look up by the same key.
<input id="field-abc12345" name="email" type="email" autocomplete="email" />

This means input[name="email"] works as a single CSS or GTM selector across every form on your domain — every form’s email field has the same stable selector.

Fields without a name set fall back to the field’s UUID (e.g., name="field-abc12345"). The UUID is stable within a form but different across forms — so unset names don’t give you cross-form selectors.

document.addEventListener('rl:form:field:blur', (e) => {
console.log('Field blurred:', e.detail.fieldName ?? e.detail.fieldId);
});

fieldName is undefined when the field has no name set. Always fall back to fieldId.

{
"fieldContext": {
"field-abc12345": {
"label": "E-Mail",
"type": "email",
"name": "email"
}
},
"resolvedData": {
"email": "user@example.com"
}
}

resolvedData keys by name when set, falling back to fieldId — so handlers can do body.resolvedData.email directly. See Webhooks → Resolved Data for caveats around key collisions.

In the form editor, open a field and set Field settings → Name to a short, stable key. Recommended conventions:

  • Lowercase, hyphen- or underscore-separatedemail, first-name, appointment_type.
  • Match destination column names when applicable — e.g., email, firstName, phone correspond to Lead-Pool columns.
  • Stable across forms — use the same name (e.g., email) for every form’s email field.
  • Embedding Overview — where Quick Start mounts the input that gets the name="" attribute.
  • Events — full event reference with fieldName semantics.
  • Webhooks — payload reference for fieldContext and resolvedData.
  • Field Typesname is part of the shared field config.