What a product analytics platform should answer
Traffic tools tell you how many people visited. A product analytics platform tells you what they did after they arrived. For a startup or a solo builder, that usually comes down to four questions:
- Are people using the features we shipped?
- Where do they drop off on the way to signing up or paying?
- Which of the people who converted are worth a follow up?
- Which campaign brought them, and what did it cost?
Orwel is built around those four questions. It is an event analytics SDK that maps feature adoption and conversion funnels, scores leads, attributes them to campaigns and hands the results to your AI agent through MCP. It is one script and one plan, so you do not stitch together three product analytics tools to get one answer.
What Orwel measures
Everything starts with events. The SDK captures two kinds.
Automatic events. With the default settings the SDK records page_view, click, scroll and element_visible, including route changes in single page apps. Turn on autoMonitor and it also records JavaScript errors, console errors, failed network requests and page timings. orwel.form() observes a form and can record focus, input, submit attempts, successes, errors and abandons.
Catalog events. For the actions that matter to your business, you call orwel.track() with a code from Orwel's semantic catalog of 257 events. The catalog covers sign up, onboarding, activation, collaboration, billing, ecommerce, lead capture, support and more, with a note on when each event should fire. If your product needs a code the catalog does not have, you register it as a custom event.
import orwel from 'orwel';
orwel.init({ apiKey: import.meta.env.VITE_ORWEL_KEY, autoMonitor: true });
// after the API confirms the project was saved
orwel.track('project_created', { template: 'blank' });
Every event is tied to a visitor and a session. When someone signs in or submits a form, orwel.identify() and orwel.conversion() attach a real identity to that history.
Feature adoption
A feature in Orwel is a named group of events. "Projects" might be project_created plus time_on_screen filtered to the projects section. Any of those events counts as using the feature.
Orwel then reports feature adoption: the share of active users who used each feature in a rolling window, the unique users behind it and its weekly usage. Features that nobody uses rise to the top as needing attention, which is usually where the next round of work should go.
You define features in the dashboard, in Features setup. You pick events from the catalog, set the active users window, and Orwel generates the code to send them. Each catalog code carries a tier (reach, activation, core loop, outcome or health) so you can see whether a feature is measured from first contact through to business results.
Conversion funnels with steps in any order
Orwel calls its conversion funnels journeys. A journey is a list of milestones that ends in a conversion, for example "Viewed pricing, signed up, created a workspace, paid". The Journeys report shows how many people entered, how many converted, the conversion rate, the reach of each milestone and the biggest drop between two steps.
The difference from most funnel tools is that steps count in any order within the period. A person who invites a teammate before creating their first project still counts for both. Rigid ordered funnels drop those people from every later step, which makes real progress look like churn.
Read more about how this works and how to set one up on the conversion funnels page.
Leads with a score and the whole story
When someone converts, they arrive in Orwel as a lead, not as a bare form fill. Each lead has:
- A score from 0 to 100, built from their conversions, engagement, recency and how consistent their visits are.
- Intent signals, behaviour patterns read from each session such as decisive, skeptical, curious or lost, each with a suggested response.
- Their full session history: pages, events, sessions and conversions from the first visit.
- The source and campaign that brought them.
Orwel identifies people only when they sign in or submit a form. It does not resolve anonymous visitors to companies by IP. New leads can go to HubSpot, Hyperflow, Zapier, Brevo or your inbox the moment they convert.
The lead scoring page explains the score and the signals in detail.
Ad attribution and cost per qualified lead
The SDK reads UTM parameters and ad click IDs (gclid, gbraid and wbraid from Google, fbclid from Meta, plus ttclid, msclkid and li_fat_id) when a visitor lands. It keeps a first touch and a last touch across sessions and sends both with every conversion, so you never pass UTMs by hand.
Connect Google Ads and Meta Ads and Orwel syncs campaign spend every 3 hours. The Campaigns screen then shows, per campaign, cost per lead, cost per qualified lead and spend that produced no qualified leads. Orwel only reads from your ad accounts. It never creates, edits or pauses anything.
See the marketing attribution page for how leads are matched to campaigns on each platform.
MCP analytics and the agent loop
Orwel runs a remote MCP server at https://api.orwel.io/mcp. Connect Claude Code, Claude Desktop, Cursor or any MCP client with an API key that has the mcp scope, and the agent can search leads, read a lead's full profile, pull lead analytics, list recent visitors, read conversions and campaign totals, and see issues such as funnel drops.
There is also an agent skill. Run npx skills add hyperlabs-ai/hyper-skills/orwel and your coding agent knows the whole SDK: it installs the package, reads the key from an environment variable, initializes once and instruments your business events where each action succeeds.
Together they close the vibe coding feedback loop: ship a feature, measure what people did with it, and let the agent read that real usage before the next prompt.
Dev mode and development keys
Every workspace has a production API key and a development key. Data sent with the development key goes through the same pipeline but is marked as test data. Leads it creates get a Dev badge, no notification email is sent and no integration runs.
Dev mode shows each request sent with the development key as it arrives: the payload, the table it was written to, and errors or warnings with a suggested fix. It flags things like an event code that is not in your catalog, a conversion with no email, or a lead that will count as direct because it has no attribution. You can fix your install before real traffic depends on it.
How Orwel installs
Installation takes about 2 minutes:
- Create a workspace and copy your production API key (it starts with
orwel_pk_). - Install with your AI agent, with npm, or with a script tag on any site with no build step.
- Call
orwel.identify({ email })when a user signs in andorwel.conversion('lead', { email })when a form is submitted. - Open Dev mode to watch events arrive.
const { success, reason } = await orwel.conversion('demo_request', {
email: form.email,
company: form.company,
});
There are guides for Next.js, SvelteKit, Astro, Vite, plain HTML, Shopify, WordPress, Webflow and Lovable on the install page.
Who Orwel is for
Orwel is product analytics software for small teams that ship fast and need answers without a data team:
- Startup founders and product teams who want to know which features get used and where signups stall.
- Developers and vibe coders building with Claude, Cursor or Lovable, who want their agent to see real usage.
- Growth and marketing teams who need funnels, scored leads and cost per qualified lead in one place.
What Orwel does not do
Knowing the gaps saves you a trial:
- No session replay and no heatmaps.
- No A/B tests and no feature flags.
- No IP based identification of anonymous visitors or companies.
- The documented SDK is JavaScript for websites and web apps.
If you need those, pair Orwel with a dedicated tool for them.
Pricing
One Pro plan includes everything above. It costs 49 USD per month and drops 2 USD every month you pay on time, down to 35 USD, or 420 USD once a year. Fair use applies and there are no caps on leads or visitors. The first 14 days are free, with a card to start. Details are on the pricing page.