VoyseDocumentation

Every attribute and option

Everything the embed reads, grouped by where it goes. This page is complete for the embed as it stands: every attribute below is one the script actually looks for, and there are no others.

Two groups behave differently and it is worth knowing which you are in. The script tag is installed once and rarely touched. Host markup is per-page, which is why it cannot come from your assistant's settings — only your page knows what your page is about.

On the script tag

Attribute Required Value
data-assistant-id Yes The assistant's id: 24 hexadecimal characters. A malformed value is ignored, leaving the embed with no assistant unless the older data-campaign attribute is present
data-mount No CSS selector for the launcher's parent element. The desktop backdrop still attaches to <body>
data-ats No pinpoint, which turns on Pinpoint careers-site behaviour: remounting after Turbo navigations, and inferring the role from /jobs/<id> or /postings/<id> paths when no job URL pattern is set
nonce No Standard HTML attribute, but load-bearing here: the script copies it onto everything it inserts, so a strict CSP can allow them

data-mount is for hosts that will not let you place a tag at the end of <body> — a template system's custom-code slot, for instance. One caveat: avoid a mount ancestor with a CSS transform, because it makes position: fixed resolve against that element rather than the viewport, and the launcher will sit somewhere you did not intend.

On your own markup

Attribute Goes on Does
data-voyse-open Any element Makes it open the assistant on click. Its value may be a role's ATS id
data-voyse-ask-text An element with data-voyse-open Question to send when it is clicked
data-voyse-ats-id Any element Declares the role for itself and its subtree. On a job page, <body>
data-voyse-ask-context Any element One line of context for questions asked from its subtree. Collapsed to a single line, capped at 500 characters
data-voyse-ask A <form> Hands the form to the assistant: submitting opens it with what was typed
data-voyse-placeholder A <form data-voyse-ask> Placeholder applied to the form's first text input on load
data-voyse-nudge Any element The line shown in a callout when the visitor reaches or lingers on it
data-voyse-nudge-prompt An element with data-voyse-nudge Question sent when the nudge is accepted. Defaults to the line
data-voyse-nudge-mode An element with data-voyse-nudge scroll (default) or linger
data-voyse-nudge-linger An element with data-voyse-nudge Seconds of visible time before a linger nudge shows. Default 5, clamped to 0.5–600
data-voyse-button-text An element with data-voyse-nudge The accept button's label. Default Ask this

Each has a page of its own behaviour and edge cases: Open the assistant from your own page, Tell the assistant which role a page is about, and Offer a question at the moment it fits.

Attributes the embed sets itself

Not for you to set. Useful for reading state in devtools, and worth knowing so you do not fight them:

Attribute Where Means
data-voyse-embed-loaded="1" <html> A copy of the script has run. Later copies return immediately
data-voyse-ask-wired="1" A <form data-voyse-ask> The form was found and taken over
data-voyse-embed Injected elements Marks the launcher, backdrop, panel, styles and nudge
data-voyse-shape The launcher The shape currently painted

What the admin controls instead

These are not attributes, and deliberately so: they arrive at runtime from the assistant's settings, so appearance can change without anyone re-pasting a snippet.

Setting Values
Launcher shape bubble (icon only), pill (icon and label, the default), tab (edge tab), bar (a composer bar)
Launcher position bottom-right, bottom-left, top-right, top-left
How it opens overlay (centred, behind a scrim — the default), classic (docked in the launcher's corner, page stays usable), command (a sheet rising from the base). Mobile ignores this and opens a tab
Mark voyse (the logotype) or icon (a plain chat glyph in the theme's text colour)
Message The label beside the mark
Theme Follows the visitor's system setting, or is pinned light or dark
Launcher surface colour A hex colour for the launcher only; the assistant's interior stays on the theme
Launcher text colour light or dark, for legibility against that surface
Job URL pattern A URL template containing {atsId} once, used to infer the role when no data-voyse-ats-id is declared

Your team sets these in the admin. If you need one changed, that is a conversation with them rather than a change to your markup.

Attributes older snippets carry

Snippets pasted before the configuration handshake existed set their values on the tag. Those installs still work, and nothing needs re-pasting for the sake of it — but do not add these to a new installation, because the admin is the better place for every one of them:

Attribute Now
data-campaign Superseded by data-assistant-id, and read only when that is absent
data-message The message setting
data-position The position setting
data-job-url-pattern The job URL pattern setting
data-analytics-token Supplied by the handshake
data-tenant-id Supplied by the handshake, which overwrites whatever the tag says. It only has an effect if the handshake never lands
data-api-url Supplied by the handshake — but a value here still wins, which is the one case where the tag overrides the admin

Everywhere else the handshake wins, so an attribute and a setting that disagree resolve to the setting.