Customize notifications per tenant
White-label notifications with per-tenant templates, preferences and providers. Fully managed by SuprSend with no custom logic in code required.
Let every tenant own their notification experience
Personalize templates for every tenant
Define headers, footers, and branding per tenant. Or let tenants customize templates themselves via an embedded UI in your app.
Route through tenant’s brand handles
Send emails and SMS using your customers' own domains and shortcodes for better recognition and trust.
Let customers set end-user notification preferences
Give tenants the power to manage their end user’s preferences with SuprSend’s preference center.
Unlock full observability for your customers
Provide real-time logs, delivery statuses, and insights so each of your customers always stay in the know.
Enable engagement campaigns directly from your platform
Offer campaign workflows and targeting controls using APIs and ready UI components.
Embed notification analytics inside your platform
Let your customers track, troubleshoot, and optimize notifications from within your platform.

Scale the right way—no rebuilding per tenant required
Deliver white-labeled notifications
Match each tenant’s guidelines with custom logos, colors, and layouts.

Send tenant-specific content
Customize template content per tenant, not just styling, but messaging too.

Let tenants run their own campaigns
Allow tenants to create and send one-off campaigns, like product launches and promotions, directly from your platform.

Route through tenant-owned handles
Send notifications via your customers’ verified domains for maximum deliverability and brand trust.

Centralize notifications across
channels, teams, and products

Centralize content with WYSIWYG templates
Build once, personalize with user data, send across any channel.

Put users in control with preferences
Support opt-ins by channel, category, and frequency out of the box.

Alert users within your application with in-app notification center
Easily alert users within your application.

Developers-first notification platform
Single API to send notifications on all channels
SDKs available in all major languages
Comprehensive documentation
Ready components and headless library available to build beautiful UI
Seamless integration with leading channel providers and third-party platforms
SDKs available in all major languages
const { Event } = require("@suprsend/node-sdk");
const distinct_id = "0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08”;
const event_name = "product_purchased”;
const properties = {
"order_id" : "123456",
"amount" : "$4900"
}
const event = new Event (distinct_id, event_name, properties, {brand_id : "default", idempotency_key = "__uniq_request_id__"});
const response = supr_client.track_event(event);
response.then((res) => console.log("response", res));
from suprsend import Event
distinct_id = "0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08”
event_name = "product_purchased”
properties = {
"order_id" : "#123456",
"amount" : "$4900"
}
event = Event (distinct_id = distinct_id, event_name = event_name, properties = properties, idempotency_key = "__uniq_request_id__", brand_id = "default")
response = supr_client.track_event(event)
print(response)
import suprsend.Suprsend;
import Suprsend.Event;
public class Event {
public static void main (String[] args) throws Exception {
trackEvent();
}
private static Subscriber trackEvent() throws SuprsendException {
Suprsend suprsendClient = new Suprsend("_workspace_key_", "_workspace_secret_");
String distinctId ="0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08";
String eventName = "product_purchased";
JSONObject eventProps = new JSONObject()
.put("order_id","#123456")
.put("amount", "$4900");
Event e = new Event(distinctId, eventName, eventProps);
JSONObject response = suprClient.trackEvent(e);
System.out.println(response);
}
}
package main
import (
"log"
"github.com/suprsend/suprsend-go"
"github.com/suprsend/suprsend-go"
)
func main() {
ev := &suprsend.Event {
Event name: "product purchased",
DistinctId: "0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08",
Properties: map[string]interface{}{
"order_id" : "#123456",
"amount" : "$4900"
},
}
_, err = suprClient.TrackEvent(ev)
if err != nil {
log.Fatalln(err)
}
}
curl --request POST \
--url https://hub.suprsend.com/event/ \
--header 'Authorization: Bearer SS.wAxxxxxxxx' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"distinct_id" : "0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08",
"event" : "product_purchased",
"properties" : {
"order_id" : "#123456",
"amount" : "$4900"
}
}
'
'



