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 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: no cookie banner, and no popup shipped by us. 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://veritametrics.com/tracker.js"></script>
<!-- 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://veritametrics.com/tracker.js"></script>
<!-- 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, so deciding to show the form needs no consent. 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.