Lead scoring from real behaviour | Orwel
Product Updated October 21, 2026

Lead scoring from real behaviour, with the whole session history

Lead scoring ranks leads by how likely they are to be worth a follow up. Orwel gives every lead a score from 0 to 100 built from their conversions, engagement, recency and visit consistency, adds intent signals read from each session, and keeps their full history from the first visit. Leads scoring 60 or more count as qualified.

Orwel is an event analytics SDK for startups, developers and vibe coders that maps feature adoption and conversion funnels, and feeds the results back to AI agents through MCP.

What lead scoring is for

A form fill on its own tells you almost nothing. Someone who read three docs pages, compared plans twice and came back from a search ad is not the same lead as someone who landed on the contact page and typed a fake company name. Lead scoring puts a number on that difference so you know who to call first.

Many lead scoring setups are built by hand: plus 10 for a pricing page view, minus 5 for a free email address. The rules drift away from what buyers actually do. Orwel scores from behaviour it already records, so there is no rulebook to maintain.

How the Orwel lead score works

Every lead in Orwel gets a lead score from 0 to 100. It combines four parts:

Part What it looks at
Conversions How many conversions the person has, how recent they are and the source they came from. This part weighs the most.
Engagement The events they triggered, with high value actions counting more than page views and clicks, plus the variety of what they did.
Recency How recently they were active. Activity today scores higher than activity three months ago.
Consistency Whether their visits follow a steady pattern and how much they do per session.

Each lead keeps a breakdown of those parts, which agents can read through MCP, so a high score can be explained, not just trusted. The score is updated as the person keeps coming back and generating events.

On the Campaigns screen, leads that score 60 or more count as qualified. That threshold is what turns raw lead counts into cost per qualified lead.

Intent signals

The score says how strong a lead is. Intent signals say what kind of visit it was. Orwel reads how someone behaves in a session (clicks, scroll, hovers, form inputs and pace) and matches it against 12 behaviour patterns. A visitor usually shows a mix, with one or two dominant signals. A few examples:

Signal What the session looks like A useful response
Decisive Few pages, straight to pricing or signup Keep the path short, put the CTA first
Skeptical Rereads pricing, opens comparisons and FAQs Show social proof, guarantees and docs
Lost Back and forth, repeated searches, no progress Offer chat or a guided tour
Anxious Starts forms and abandons them Reduce fields, reassure about price and data

Signals are statistical patterns of on-site behaviour, not a psychological profile. They never use sensitive categories, and nothing is shown to the visitor unless you build it.

The whole session history

When someone converts, the lead arrives with context. You see their sessions, the pages they viewed, the events they triggered, every conversion they made and where they came from, starting with the first visit. That history exists because Orwel was recording the visitor anonymously before they identified themselves. The conversion attaches it to a real person.

This makes the score useful in practice: a follow up can start from what the person actually looked at.

Identify and conversion

Two SDK calls connect behaviour to a person.

orwel.identify() attaches an email and traits to the current visitor, usually when they sign in. orwel.conversion() records a high value outcome such as a signup, a demo request or a purchase, and turns it into a lead.

async function onSubmit(form) {
  orwel.identify({ email: form.email, name: form.name });

  const { success, reason } = await orwel.conversion('demo_request', {
    email: form.email,
    company: form.company,
  });

  if (!success) console.warn('Orwel conversion not delivered:', reason);
}

A few details matter:

  • Always send an email. Without an email or phone in the conversion or the visitor's traits, the conversion is stored but the lead cannot be enriched, no notification email goes out and integrations skip it.
  • Retries do not duplicate. Each conversion gets a conversionId, and the server deduplicates on it, so a double submit creates one lead.
  • Attribution is automatic. First and last touch UTMs and ad click IDs travel with every conversion. See marketing attribution.
  • Payments move people to customer. A conversion with a payment signal (amount, plan, order_id, or a code like purchase) moves the visitor to the customer stage. Pass currency with amount.

You can also observe a form element with orwel.form() to record submit attempts, errors and abandons alongside the conversion.

From score to action

New leads can go out the moment they convert, to HubSpot, Hyperflow, Zapier, Brevo or a notification email. Through Orwel's MCP server, an agent such as Claude can answer "who are my top leads this month and why do they score high?" from your workspace data.

What Orwel lead scoring does not do

  • No IP de-anonymization. Orwel identifies people only when they sign in or submit a form. It does not resolve anonymous visitors to people or companies by IP address.
  • No hand-built scoring rules. The score comes from recorded behaviour, not from a points table you configure.

Marketing qualified leads and cost per lead

A marketing qualified lead is one that marketing considers ready for sales. In Orwel, that line is drawn by the score: on the Campaigns screen, a lead at 60 or above is qualified. Connect Google Ads or Meta Ads and you get cost per lead and cost per qualified lead per campaign, plus campaigns that spent money without producing a single qualified lead. To estimate those numbers before you connect anything, try the CAC calculator.

Why Orwel

One plan

49 USD a month, 2 USD less every paid month down to 35 USD, or 420 USD a year

No caps

Unlimited leads and visitors under fair use

2-minute install

One script or npm package, or ask your coding agent to do it

MCP server

Claude, Cursor or your own agent read real usage before the next prompt

Semantic catalog

257 ready events, so tracking is named the same in every project

Dev mode

A live debugger and development keys that keep tests out of real data

FAQ

What is a good lead score?

On a 0 to 100 scale, higher means a stronger lead. Orwel's Campaigns screen counts leads at 60 or above as qualified, which gives you a practical starting line for who gets a follow up first.

What data does the Orwel lead score use?

Conversions (count, recency and source), engagement (events, with high value actions counting more, and their variety), recency of activity and the consistency of visits. Each lead keeps a breakdown of these parts.

Does Orwel identify anonymous website visitors?

No. Orwel records anonymous visitors, but it only knows who someone is when they sign in or submit a form. It does not match IP addresses to people or companies.

Do I have to configure scoring rules?

No. The score is computed from behaviour the SDK already records. You only need to send conversions with an email, and ideally identify() when people sign in.

How is lead scoring connected to cost per lead?

Once Google Ads or Meta Ads is connected, Orwel joins each lead to the campaign that paid for it. Dividing spend by all leads gives cost per lead. Dividing by leads that score 60 or more gives cost per qualified lead.

Can I send scored leads to my CRM?

Yes. Leads can go to HubSpot, Hyperflow, Zapier or Brevo, or to your inbox as a notification email, as soon as they convert.

Keep reading

See what users do with what you shipped

Install in 2 minutes. 14-day free trial, one plan with everything.