Core logic for detecting user intent such as exit, conversion, hesitation, and confusion via event tracking.
npm install @user-intent-detector/corebash
npm install @user-intent-detector/core
or
pnpm add @user-intent-detector/core
or
yarn add @user-intent-detector/core
`
---
๐ Usage
`ts
import { UserIntentTracker } from '@user-intent-detector/core';
const tracker = new UserIntentTracker({
onIntentDetected: (intent) => {
console.log('User intent detected:', intent);
// Possible values: "exit", "conversion", "hesitation", "confusion", "idle"
},
});
// Start tracking
tracker.startTracking();
// Optional: Stop tracking later
// tracker.stopTracking();
`
---
โ๏ธ Options
The UserIntentTracker accepts the following options:
| Option | Type | Description |
|-------------------|-------------------------------|-------------------------------------------------|
| onIntentDetected| (intent: string) => void | Callback triggered when an intent is detected |
| idleTimeMs | number _(default: 60000)_ | Time in ms to consider user as idle |
| debug | boolean _(default: false)_ | Enable logs for debugging |
---
๐ Intent Types
The tracker detects and emits one of the following intents:
- exit โ User moves mouse toward closing or switching tab
- conversion โ User performs meaningful actions (e.g., clicks, hovers)
- hesitation โ User moves mouse slowly or lingers without clicking
- confusion โ User shows uncertain or erratic interaction patterns
- idle โ User stops interacting for a period
---
๐งช Example Use Cases
- Show exit-intent popups or offers
- Trigger auto-save when idle
- Improve UX with dynamic hints on hesitation
- Analyze user confusion or engagement
- Prefetch routes when user seems interested
---
๐ File Size
Less than 6KB minified, zero dependencies.
---
๐งฑ Related Packages
You can also use the UI binding package:
Add the below dependency for react.
`
@user-intent-detector/react
``