Warm-lead capture
VeritaMetrics can emit a cookieless, anonymous intent signal when a session looks ready to convert. Connect it to any tool: open a form, send the tier to your CRM or marketing platform, or POST it to your own endpoint. VeritaMetrics never sees the lead's details; it only says the session looks warm or hot. This guide uses KirokuForms (opens in a new tab) as a turnkey example.
The three pieces
Three things work together. Only the middle one is new code you add.
- VeritaMetrics is the signal. Its tracker, already on your page, fires a
veritametrics:intentevent in the visitor's browser when the session looks warm or hot. You turn it on by addingdata-warm-lead="true"to the VeritaMetrics script tag. - Your form or tool is the capture. KirokuForms, or any form, modal, or CRM, collects the email. This piece is yours; VeritaMetrics never touches it.
- The glue connects them. A few lines of JavaScript you paste once: they listen
for the VeritaMetrics event and open your form (or send the tier to your own server). With KirokuForms
this piece is built in: set the popup's trigger to
intent:hotand there is no glue to write. For any other tool, the glue is the only new code, and it runs on your page.
The signal is a browser event, not a webhook: VeritaMetrics does not call your server for this, and the event carries no personal data. (That is separate from VeritaMetrics' outbound webhooks, which fire server-side for analytics alerts.)
How it works
The tracker already watches the session it runs on: page depth, engaged time, scroll, source,
and clicks. With warm-lead capture enabled it scores the session into a tier (cold, warm, or
hot) in the browser, with no network round-trip and nothing stored across sessions. When the
session is warm or hot and the visitor shows exit intent (or lingers), the tracker fires one
anonymous veritametrics:intent event. Your code listens for it and decides what to
do: open a form, POST the anonymous tier to your CRM or marketing tool, or show a custom prompt.
Any personal data the visitor then enters goes to that tool, under its own notice, not to VeritaMetrics.
This keeps the VeritaMetrics promise intact: we ship no popup ourselves. Any form or prompt is one you chose to arm, on your own site.
How good is the detection?
Treat the tier as a starting heuristic, not a verdict. The score comes from signals the
tracker already collects (page depth, engaged time, scroll, source, and clicks), with
thresholds carried over from our lead-quality scorer. It is directional: it reliably separates
a quick bounce from an engaged, high-intent session, but it does not know a given visitor will
convert. In practice you tune it: start on the warm tier, watch how often the form
fires and how it converts, and move to hot if it shows too eagerly. A fitted per-site
model that learns from real conversions is a planned next step; today's tier is a sensible default,
not a trained prediction.
Turn it on
Add data-warm-lead="true" to your VeritaMetrics tracking script tag. That makes the
tracker emit the signal. Then act on it in one of two ways.
With KirokuForms: no glue needed
KirokuForms has a built-in trigger for this signal. Set your popup form's trigger to
intent:hot (or intent:warm) in its Display settings, or per
placement with data-kiroku-trigger on the embed tag. KirokuForms listens for the signal
and opens the form, so there is no glue script to write.
<!-- 1. VeritaMetrics, warm-lead capture opted in -->
<script
defer
data-site-id="YOUR-SITE-ID"
data-warm-lead="true"
src="https://www.veritametrics.com/api/tracker.js?siteId=YOUR-SITE-ID"></script>
<noscript>
<img
src="https://www.veritametrics.com/api/track-pageview?siteId=YOUR-SITE-ID"
referrerpolicy="unsafe-url"
alt=""
width="1"
height="1"
style="display: none"
aria-hidden="true"
/>
</noscript>
<!-- 2. Your KirokuForms popup form, set to the intent trigger. No glue. -->
<script src="https://www.kirokuforms.com/embed.js"
data-kiroku-form-id="YOUR_FORM_ID"
data-kiroku-trigger="intent:hot"
async></script> With any other tool: a few lines of glue
For any other form, CRM, or endpoint, listen for the event yourself and do what you need. This
example opens a form through KirokuForms' window.KirokuForms.open() API, but the same
event drives anything.
<!-- 1. VeritaMetrics, warm-lead capture opted in -->
<script
defer
data-site-id="YOUR-SITE-ID"
data-warm-lead="true"
src="https://www.veritametrics.com/api/tracker.js?siteId=YOUR-SITE-ID"></script>
<noscript>
<img
src="https://www.veritametrics.com/api/track-pageview?siteId=YOUR-SITE-ID"
referrerpolicy="unsafe-url"
alt=""
width="1"
height="1"
style="display: none"
aria-hidden="true"
/>
</noscript>
<!-- 2. Your KirokuForms embed (from your KirokuForms dashboard) -->
<script defer src="https://www.kirokuforms.com/js/kiroku-embed.js"></script>
<!-- 3. Open your KirokuForms form on a warm or hot exit-intent signal -->
<script>
document.addEventListener('veritametrics:intent', function (e) {
if (window.KirokuForms && (e.detail.tier === 'hot' || e.detail.tier === 'warm')) {
window.KirokuForms.open('YOUR_FORM_ID', { openNow: true });
}
});
</script> What the signal carries
The event carries a tier (cold, warm, or hot), a 0 to
100 score, and a short list of reasons. There is no identifier and no personal data.
// e.detail
{
tier: "hot",
score: 82,
reasons: ["scrolled halfway", "engaged time", "interacted"]
} You choose which tier to act on; the snippet above fires on warm and hot. You can register a callback instead of, or alongside, the DOM event:
window.verita('onIntent', function (detail) {
// detail = { tier, score, reasons }
}); Connect it to any tool
The event is a plain hook, so the handler can do anything: open a form, or send the anonymous tier to your own server, CRM, or marketing platform, which can then do whatever you need with it. KirokuForms is one turnkey option; here is the generic shape.
document.addEventListener('veritametrics:intent', function (e) {
// e.detail = { tier, score, reasons } (no personal data)
fetch('/api/warm-lead', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(e.detail),
});
}); Tuning
-
data-warm-lead-tier="hot"arms the signal only for hot sessions (the default iswarm). - The signal fires at most once per page, on exit intent or after 30 seconds at or above the threshold. An SPA navigation counts as a new page and re-arms it.
- Frequency-cap the popup itself in KirokuForms, which persists a short-lived do-not-reprompt window per form.
Privacy
With data-warm-lead absent, the tracker adds no listeners and stores nothing, so default
installs are unchanged. When you opt in, the tracker keeps a session-scoped page count in sessionStorage so depth reflects the whole visit; it clears when the tab closes and holds no personal data. The
tier decision uses no cross-session identity. Scoring a session and acting on it is still a decision
about that one visitor, which goes beyond a bare statistics exception; get consent before arming
this feature if your lawful basis depends on one. The capture is a visitor-initiated submission
to KirokuForms, which handles that data under its own notice. See
how a pageview works for the cookieless mechanism.
Explore the documentation
Jump to another guide.