saastrialflow-sdk
v0.3.1
Published
JavaScript/TypeScript SDK for SaaS Trial Flow
Maintainers
Readme
SaaS Trial Flow SDK
JavaScript/TypeScript SDK for SaaS Trial Flow - the autonomous AI agent platform that nurtures your trial users to conversion.
Installation
npm install saastrialflow-sdk
# or
yarn add saastrialflow-sdkQuick Start
import { initSaasTrialFlow } from 'saastrialflow-sdk';
// Initialize the SDK
const analytics = initSaasTrialFlow({
apiKey: process.env.SAASTRIALFLOW_API_KEY
});
// Identify your user (after creating trial via API)
await analytics.identify("[email protected]");
// Track events
await analytics.track("feature_activated");Features
- 🚀 Simple Integration - Get started in minutes
- 📊 Auto-Collection - Automatically collect browser, device, and session data
- 💾 Offline Support - Queue events when offline, sync when back online
- 🔄 Automatic Retry - Built-in retry logic with exponential backoff
- 📦 Lightweight - < 25KB gzipped
- 🔒 Type Safe - Full TypeScript support
API Reference
Initialization
const analytics = initSaasTrialFlow({
apiKey: string; // Required: Your API key
baseUrl?: string; // Optional: API endpoint (default: https://saastrialflow.com/api)
autoCollect?: boolean; // Optional: Auto-collect browser data (default: true)
flushInterval?: number; // Optional: Auto-flush interval in ms (default: 10000)
debug?: boolean; // Optional: Enable debug logging (default: false)
onError?: Function; // Optional: Error callback
});Methods
identify(email: string, properties?: object): Promise<void>
Identify the current user. Must be called before tracking events.
await analytics.identify("[email protected]");track(event: string, properties?: object): Promise<TrackResult>
Track a user event.
const result = await analytics.track("button_clicked");
if (!result.success) {
console.error("Tracking failed:", result.error);
}flush(): Promise<void>
Manually flush all queued events.
// Flush before important actions
await analytics.flush();reset(): void
Clear user context and queued events.
// On user logout
analytics.reset();on(event: 'error', callback: Function): void
Register error callbacks.
analytics.on('error', (error) => {
console.error('Analytics error:', error);
});Auto-Collected Data
When autoCollect is enabled, the SDK automatically collects:
- Browser name and version
- Device type (desktop/mobile/tablet)
- Language preference
- Page URL and title
- Screen resolution
- Session ID
- User agent
Complete Example
import { initSaasTrialFlow } from 'saastrialflow-sdk';
// Initialize
const analytics = initSaasTrialFlow({
apiKey: process.env.SAASTRIALFLOW_API_KEY,
debug: true
});
// Error handling
analytics.on('error', (error) => {
console.error('Analytics error:', error);
});
async function handleUserSignup(userData) {
// 1. Create trial on your backend
const response = await fetch('/api/trials', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.SAASTRIALFLOW_API_KEY}`
},
body: JSON.stringify(userData)
});
if (response.ok) {
// 2. Identify user in SDK
await analytics.identify(userData.email);
// 3. Track registration
await analytics.track('user_registered');
}
}TypeScript Support
The SDK is written in TypeScript and provides full type definitions:
import { initSaasTrialFlow, TrackResult, UserContext } from 'saastrialflow-sdk';
const analytics = initSaasTrialFlow({
apiKey: process.env.SAASTRIALFLOW_API_KEY!
});
const result: TrackResult = await analytics.track("event_name");License
MIT
