Loading...
Loading...
Create, update, search, and delete subscribers in Novu. Manage topics for group-based notification targeting. Set subscriber credentials for push and chat channels. Use when managing notification recipients, creating subscriber records, organizing subscribers into topics, or configuring channel-specific credentials.
npx skill4agent add novuhq/skills novu-manage-subscriberssubscriberIdimport { Novu } from "@novu/api";
const novu = new Novu({
secretKey: process.env.NOVU_SECRET_KEY,
});await novu.subscribers.create({
subscriberId: "user-123", // required — your system's user ID
email: "jane@example.com", // optional
firstName: "Jane", // optional
lastName: "Doe", // optional
phone: "+15551234567", // optional
avatar: "https://example.com/jane.jpg", // optional
locale: "en-US", // optional
timezone: "America/New_York", // optional
data: { // optional — custom key-value data
plan: "pro",
company: "Acme Inc",
},
});subscriberIdconst subscriber = await novu.subscribers.retrieve("user-123");const results = await novu.subscribers.search({
email: "jane@example.com",
});await novu.subscribers.patch(
{ firstName: "Jane", data: { plan: "enterprise" } },
// subscriberId
"user-123"
);await novu.subscribers.delete("user-123");await novu.subscribers.createBulk({
subscribers: [
{ subscriberId: "user-1", email: "alice@example.com", firstName: "Alice" },
{ subscriberId: "user-2", email: "bob@example.com", firstName: "Bob" },
{ subscriberId: "user-3", email: "carol@example.com", firstName: "Carol" },
],
});await novu.topics.create({
key: "engineering-team",
name: "Engineering Team",
});await novu.topics.subscriptions.create(
{ subscriptions: ["subscriberId-1", "subscriberId-2", "subscriberId-3"] },
"engineering-team-topic"
);await novu.topics.subscriptions.delete(
{ subscriptions: ["subscriberId-1", "subscriberId-2"] },
"engineering-team-topic"
);const topics = await novu.topics.list({
});await novu.topics.delete("engineering-team-topic");await novu.trigger({
workflowId: "project-update",
to: { type: "Topic", topicKey: "engineering-team-topic" },
payload: { message: "Sprint review at 3pm" },
});await novu.subscribers.credentials.update(
{
providerId: "fcm",
// use integrationIdentifier if there are multiple fcm type active integrations
integrationIdentifier: "fcm-abc-123",
credentials: { deviceTokens: ["fcm-device-token-here"] }
},
"subsriberId-1"
);await novu.subscribers.credentials.update(
{
providerId: "apns",
// use integrationIdentifier if there are multiple apns type active integrations
integrationIdentifier: "fcm-abc-123",
credentials: { deviceTokens: ["apns-device-token-here"] }
},
"user-123"
);subscriberIdto