Appearance
Attribute reference
Every data-nam-* attribute, in one table. The guide explains the ones that need explaining; this page is the complete list.
On the <form>
| Attribute | Required | Values | Default | Notes |
|---|---|---|---|---|
data-nam-landing-page | yes | Letters, digits, ., :, _, -; must start alphanumeric; ≤ 100 chars | — | The registered page id, and the routing key that resolves the campaign. The only attribute the SDK refuses to start without. |
data-nam-key | yes | The publishable key | — | Safe in page source. init({ key }) and window.__NAMAKINA_LANDING_PAGE__.key are fallbacks; the attribute wins. |
data-nam-goal | recommended | Free text, ≤ 500 | none | The visitor's outcome in one sentence. Also the panel header's subtitle. |
data-nam-goal-label | no | A few words | The submit button's text, sentence-cased; else Finish | The progress strip's label; the panel title when data-nam-brand is absent. |
data-nam-context | no | Free text, ≤ 300 | none | Background for the agent. Also valid on a field. |
data-nam-rollout | no | 0–100, clamped and rounded | 100 | The share of visitors who get the agent. |
data-nam-submit | no | confirm, auto | confirm | auto submits on the agent's request rather than waiting for the visitor. |
data-nam-layout | no | inline, panel | inline | panel mounts a full-height dialog on <body> and docks back inline at the confirm step. |
data-nam-brand | no | A name | falls back to the goal label | The panel header's title; its first letter is the mark. |
data-nam-theme | no | A JSON object; only string values under keys matching --[a-z0-9-]+ survive | none | CSS custom properties merged over the sampled theme. Malformed input silently yields no override. |
On the fields
| Attribute | Where | Values | Notes |
|---|---|---|---|
data-nam-label | Any control | Text, ≤ 120 | Overrides the whole label-resolution chain. |
data-nam-help | A control, or its <fieldset> | Text, ≤ 200 | The visitor-facing line under the question. |
data-nam-context | Any control | Text, ≤ 300 | Background for the agent about this field. Not shown. |
data-nam-image | An <option>, a radio, or the radio's <label> | A URL | Resolved against the page; must be http(s) or it is dropped. Any image on a choice makes it a visual question unit. |
data-nam-description | An <option>, a radio, or its <label> | Text, ≤ 200 | One line under that answer. |
data-nam-lock | Any control | Presence only | Extracted and visible, but set_field and ask_field are refused and it is left out of the recap. focus_field still works. |
data-nam-ignore | A control or any ancestor inside the form | Presence only | Never extracted. The agent does not know it exists. |
data-nam-wrapper | Any ancestor between the control and the <form> | Presence only | Names the element to hide in place of the field, overriding the automatic walk. |
data-nam-disclosure | Any element in the form | Presence only | Marks a legal disclosure: never hidden, never written, and checkboxes inside it are locked. |
Also read, and not a data-nam- attribute:
| Attribute | Notes |
|---|---|
data-mask | The jQuery-mask grammar — 0 digit, A letter, S alphanumeric — up to 64 characters. Read, never written. Drives completeness checks and the format of what the SDK writes back. |
Detected without any attribute
A checkbox is locked automatically when it is inside a disclosure block, or when its label matches agree, consent, authoriz, accept, terms or privacy. A disclosure block is any element carrying data-nam-disclosure or a class containing disclaimer, disclosure, consent or tcpa.
On the <script> tag
Read only by the self-booting IIFE bundle, from its own document.currentScript.
| Attribute | Type | Default | Notes |
|---|---|---|---|
data-intake-url | URL | — | Required. Trailing slashes trimmed. Must be your own origin, a *.core.namakina.com host over https, or a local dev host; anything else is ignored with a console warning. |
data-messaging-url | URL | — | Required. Same rule as above. |
data-typing-cps | Number | 25 | Reveal speed for agent text. 0 posts each message whole. A non-numeric value is ignored. |
data-test-profile | Presence only | absent | Sends X-Test-Profile: 1 on session create, so the profile is flagged as a test row. |
There is no data-key on the script tag — the key comes from the form.
Query parameters
| Parameter | Values | Notes |
|---|---|---|
nam_arm | assist, control | Forces a side of the holdout. Anything else is ignored. Honoured only where ALLOW_ARM_OVERRIDE is set, so it does nothing on a live page. |
Written by the SDK
Set on the host element. Read them in a test; do not style against them.
| Attribute | Values |
|---|---|
data-nam-host | Present, empty. Inside your form in inline layout; a child of <body> in panel, until it docks. |
data-nam-arm | assist. Only ever set when the SDK renders — a control visitor gets no host element at all. |
data-nam-layout | inline or panel. Rewritten to inline when a panel docks. |
Inside the shadow root the rendered markup carries data-nam-state (live / confirm / submitted), data-nam-field, data-nam-block, data-nam-card, data-nam-kind, data-nam-stage-action, data-nam-sheet-action, data-nam-recap, data-nam-not-sure, data-nam-unit-back, data-nam-unit-skip, data-nam-fill-on-form and data-nam-keep-form, plus data-role, data-layout and data-sponsored. These are implementation detail of the bundle and are not a supported integration surface.