Skip to content

Namakina Landing Page SDK

Your form, with someone
on the other side.

The agent reads the form you already have, talks the visitor through it one question at a time, writes their answers into your real inputs, and hands them back to your own submit button.

Four lines added, in the file you already have.

It is four lines.

This is the whole difference between a real estimate form and the same form with the agent on it. The opening tag re-wraps so the attributes can sit under it; nothing is removed, and the action, every field and the submit button are untouched.

      <form action="/lead" method="get" id="EstimateForm" novalidate
        data-nam-landing-page="kestrel"
        data-nam-key="lp_live_xxxxxxxx"
        data-nam-rollout="100">

        ... your fieldsets, exactly as they were ...

      </form>

<script src="https://your-host/landing-page.iife.js"
        data-intake-url="https://intake.example.core.namakina.com"
        data-messaging-url="https://messaging.example.core.namakina.com" defer></script>

There is an npm package too, if you would rather import it. Same bundle, same three attributes.

The whole thing, end to end.

A real conversation with a real agent, on a page that had an ordinary form on it a minute ago. No voiceover — there is nothing to talk over.

What the visitor gets.

One question at a time

A choice becomes a question the way a quiz asks it — a heading, a line of help, answers as rows or as image tiles. The text box is always there, so they can ask something of their own at any moment.

Options, with a reason

Cards carry a "Why it fits" line and the facts behind it. Where the campaign allows a partner offer, exactly one card is marked Sponsored and says why they are seeing it.

Something to keep

A plan, a result or a reflection the visitor can copy and take with them — then back to the form, to the field that is still empty.

Three industries, one bundle.

The same three attributes and the same script tag, on pages with nothing to do with each other. The moment to watch is the same in all three: the visitor says it is too much, hears what actually happens next, and carries on.

B2B demo request

Quarterlight

“Something lighter” — the usual way out of a demo form

Twelve minutes, no call, and nobody chases you afterwards.

They looked at both options and pressed Request demo.

Free estimate

Kestrel Home Solar

“Just email it to me” — where an estimate form loses people

No call, no visit, and nobody follows up unless you reply.

They came back for both ways, chose one, and pressed Get my free estimate.

Program finder

Trellis Academy

“Something smaller first” — the polite no

Forty-five minutes online, and nobody asks you for anything at the end of it.

They asked to see the programs again and pressed Request the details.

All three finished the form

The lead arrives the way it always did — through the page's own submit button, into whatever you already have behind it.

Walk through all three →

It stays your form.

  • The <form>, its action, its inputs and its submit button are never replaced. Fields are hidden while the agent is asking about them, and put back after.
  • Answers are written into the real inputs through the prototype setter, firing input and change, so your own masks and validators run exactly as they do today.
  • Your disclosure and its consent checkbox are protected: never hidden, never written, never ticked on the visitor's behalf.
  • Every failure path calls restore(). Every hidden element comes back and the widget unmounts, so the worst case is the form the visitor would have had anyway.
  • The interface renders into a shadow root. Nothing of yours reaches in, and nothing of ours leaks out.

How you will know.

Every page carries a holdout. data-nam-rollout is the share of visitors who get the agent; the rest get the page exactly as it was, and both arms get a session, a profile and the same funnel events — so completion is directly comparable.

The split is decided on the server from a hash of the visitor's own token, which means a reload, a second form on the page and a re-created session all land on the same side, and the browser cannot choose its own arm. Set the rollout to 0 to register a page dark: everyone is control, nothing renders, and the funnel still records views.

There are no numbers on this page, because there are not any yet. The holdout is here so that when there are, they will be yours and not ours.

  • ~24 KBgzipped, Preact included
  • Oneruntime dependency
  • Fourlines to add to your page
  • ES2020Chrome 87+, Edge 88+, Firefox 78+, Safari 14+

Start with the form you already have.

Proprietary. All rights reserved.