@notifizz/nodejs
v2.2.0
Published
JavaScript/TypeScript client for tracking events with Notifizz. Use it to emit events that drive campaigns server-side and to generate hashed user tokens for the Notification Center widget.
Readme
@notifizz/nodejs
JavaScript/TypeScript client for tracking events with Notifizz. Use it to emit events that drive campaigns server-side and to generate hashed user tokens for the Notification Center widget.
Installation
npm install @notifizz/nodejs
# or
yarn add @notifizz/nodejsUsage
Initialize the client
const { NotifizzClient } = require("@notifizz/nodejs");
// or ESM: import { NotifizzClient } from "@notifizz/nodejs";
const client = new NotifizzClient(
"AUTH_SECRET_KEY", // provided by Notifizz
"SDK_SECRET_KEY" // provided by Notifizz
);Track events
await client.track("user_signed_up", {
plan: "pro",
source: "landing_page",
});
// With a caller-supplied idempotency key (recommended for retried jobs):
await client.track("user_signed_up", { plan: "pro" }, { idempotencyKey: "job-42" });The Notifizz backend resolves campaigns by event name and runs each campaign's orchestrator server-side to build the recipient list — there is no client-side workflow or recipient targeting.
Generate a hashed user token
Use this for backend authentication (e.g. Notification Center).
const token = client.generateHashedToken("user_123");API summary
| Method | Description |
|--------|-------------|
| new NotifizzClient(authSecretKey, sdkSecretKey, webhookSigningSecret?) | Create a client. webhookSigningSecret is required only when exposing enrichers via handler(). |
| client.track(eventName, properties?, { idempotencyKey? }?) | Track an event. Properties default to {}; idempotency key auto-generated. |
| client.generateHashedToken(userId) | Generate a hashed token for the user. |
| client.enricher(name, options) | Register an enricher on this client. |
| client.handler() | Return a framework-agnostic HTTP handler for enricher discovery + execution. |
| client.config({ baseUrl? }) | Configure options (e.g. API base URL). |
| client.ready() | Signal that the dispatch endpoint is mounted and serving. Call once the server is listening (app.listen(port, () => client.ready())). Lets a non-production environment re-run discovery so freshly added enrichers / event properties are picked up immediately. No-op effect in production. |
