Reduce interruptions & increase engagement with batched alerts

Aggregate multiple alerts and send them out in a single, well designed notification across multiple channels with SuprSend's batching component. Customize batch frequency to match your users' preferences.

Get Started For Free

Boost engagement with tailored batching rules

Send notifications after period of inactivity

Smartly batch events and send notifications when users pause their activity. For instance, send a summary to document owner after user stops commenting.

Send instant alert when a threshold is hit

Send a summary of activities as soon as it crosses a threshold number. For example, send anomaly alerts after a defined number of failures or errors occur.

Consolidate user actions into a digest, and send at users’ preferred notification frequency

Batch events over a predefined time frame and send transaction summaries exactly when the user needs them. Sort events and just show the highest 5 or lowest 5 activities in the notification.

Give your users the power of choice

Let your users define their notification batch schedule, whether they prefer hourly, daily, or weekly summaries.

Build clutter-free notification experience by grouping related notifications

SuprSend provides pre-built components for batching to keep users engaged without overwhelming them with frequent interruptions.

Social media activity

Get a summary of your social media activity in a single notification every hour, rather than receiving individual alerts on every action.

Cross-user Collaboration

Notify users or teams about other users’ actions. Set different frequency for different channels, send inbox alerts every hour and email summaries at the end of the day.

Incident Alerting

Inform internal teams about system issues and failures, when the failure count crosses a threshold.

Activity Report

Send a daily digest with all the messages and updates of user's activities or updates on tasks and groups they are part of.

Accelerate notification development while delivering superior user experience

SuprSend provides power of code & no-code, along with built-in components, so you can deliver the best notification experience without extensive in-house development.

Unify all notifications in one place

Reduce complexity of managing multiple systems in code with right abstractions. Centralize notifications across all channels, products & teams.
Learn more

Craft personalized messages with Visual Template Engine

Get a powerful template engine to make notifications personalized & consistent with your brand. Completely eliminate template management & rendering in code.
Learn more

Allow users to control notification preferences

SuprSend provides ready-made UI components and APIs for notification preferences so your users can decide which notifications they want to receive, and on which channels.
Learn more

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
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)
import suprsend.Suprsend;
import Suprsend.Event;
public class Event {
public static void main (String[] args) throws Exception {
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("amount", "$4900");
Event e = new Event(distinctId, eventName, eventProps);
JSONObject response = suprClient.trackEvent(e);
package main
import (

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 {
curl --request POST \
--url \
--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"

Implement a powerful stack for your notifications

By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.