Node
1. Install
npm install @perceptinsight/percept-node
or
yarn add @perceptinsight/percept-node
2. Initialize Percept SDK
import Percept from "@perceptinsight/percept-js";
Percept.init("Your Project Token");
init
method takes an optional initOptions
param as second argument.
initOptions
properties:
property | required | default value |
---|---|---|
autoFlushBatchSize | false | 50 |
autoFlushThresholdMs | false | 5000 |
maxApiRetry | false | 2 |
3. Capture Event
Let's get started by sending event data. You can send an event from anywhere in your application.
// Track only event-name. Second argument is the distinct user id. Pass it as undefined if it is not available. We use this id for all user analysis
Percept.capture('Referral Banner Click', 'USER123');
// Track event-name with property
Percept.capture('Screen View', 'USER123', {'screenName': 'Homepage'});
These calls are queued and flushed on regular interval based on the duration and batch size specified while initialising the sdk.
4. Capture Bulk Events
You can bypass the queue and capture multiple events in bulk with this call
await Percept.bulkCapture([
{
eventName: 'Page Viewed',
properties: {
'screenName': 'Homepage'
}
},
{
eventName: 'Order Placed',
properties: {
'orderId': 'order123f31',
'totalAmount': '1200'
}
}
], 'USER123');
The response is returned in this call, so that you can handle retry on failures. As such we suggest you to use this with await
5. Set user properties
use setUserProperties
method to set properties on the user profile
// sets user `isVerifiedAccount` property to true
Percept.setUserProperties('USER123', {isVerifiedAccount: true})
We expose some default user property keys in PERCEPT_DEFAULT_USER_PROPERTIES_KEYS
. Please use them as this helps in standarization and usage in the Engage feature provided by Percept.
import Percept, {PERCEPT_DEFAULT_USER_PROPERTIES_KEYS} from '@perceptinsight/percept-js'
// sets user `phone` property to '123456789' and `isVerifiedAccount` property to true
Percept.setUserProperties('USER234', {[PERCEPT_DEFAULT_USER_PROPERTIES_KEYS.PHONE]: 123456789, isVerifiedAccount: true})
6. Manually flush the queue
Percept inner events processing queue can be manually flushed by calling this method
Percept.flushPendingEvents();
7. Shut down
Call shutdown function before closing the server to flush any pending events in queue
await Percept.shutDown()
This flushes the events queue and resets the token.