A good notification service is more than a communication channel; it can bridge the gap between the product and the users, increasing product adoption.
Think of it this way: timely and relevant #alerts can nudge users with some actionable intent for your product.
But frankly, notification services are not business use cases for most companies, and hence the grunt work of building and maintaining that service is not preferred by developers, well.... too much.
We shifted these 7 functional components from developers to product teams in our notification service.
1) Multichannel Delivery: Doing multiple API integrations was a headache for devs who would be working on core business use-cases. It's freed now, since SuprSend already supports these providers, hence a product person can easily configure the API tokens and start using the vendor.
2) User Preferences: Letting users customize their experience is like giving them the remote control. Who doesn't love being in charge? We do it at two levels, our customers and then their customers all from our embedded notification center, which devs don't need to build or maintain.
3) Templating Engine: Say goodbye to template headaches in codebases! Our central engine is like your notification toolkit, all in one place for all channels. It has always been challenging to later find and change one customer's template because their mood changed.
4) Multi-tenancy: It's like serving up personalized experiences for multiple customers at once. No extra coding required! Fully maintained at SuprSend.
5) Workflow Engine: We make notification magic happen smoothly, like a well-oiled machine... or a really good toaster.
6) Observability: Ever had someone swear they didn't get a notification? With us, we'll track it down to that user level faster than your keys in the couch cushions. This is a nasty request coming from product teams to developers. Should we really leave our work, and catch the mouse for you?
7) Batching/Digests: Multiple notifications in one neat package? At least that's what I would want at the end of the day.
More details in this guide around notification services
You may want to check out other SuprSend SDKs too. Consider giving us a star after usage. It's free and open.
suprsend / suprsend-go
SuprSend SDK for go
suprsend-go
SuprSend Go SDK
Installation
go get github.com/suprsend/suprsend-go
Usage
Initialize the SuprSend SDK
import (
"log"
suprsend "github.com/suprsend/suprsend-go"
)
func main() {
opts := []suprsend.ClientOption{
// suprsend.WithDebug(true),
}
suprClient, err := suprsend.NewClient("__api_key__", "__api_secret__", opts...)
if err != nil {
log.Println(err)
}
}
Trigger Workflow
package main
import (
"log"
suprsend "github.com/suprsend/suprsend-go"
)
func main() {
// Instantiate Client
suprClient, err := suprsend.NewClient("__api_key__", "__api_secret__")
if err != nil {
log.Println(err)
return
}
// Create WorkflowTriggerRequest body
wfReqBody := map[string]interface{}{
"workflow": "workflow-slug",
"recipients": []map[string]interface{}{
{
"distinct_id": "0f988f74-6982-41c5-8752-facb6911fb08",
// if $channels is present, communication will be tried on mentioned channels only (for this request).
// "$channels": []string{"email"},
…suprsend / suprsend-py-sdk
SuprSend SDK for python3
suprsend-py-sdk
This package can be included in a python3 project to easily integrate
with SuprSend
platform.
Installation
suprsend-py-sdk
is available on PyPI. You can install using pip.
pip install suprsend-py-sdk
This SDK depends on a system package called libmagic
. You can install it as follows:
# On debian based systems
sudo apt install libmagic
# If you are using macOS
brew install libmagic
Usage
Initialize the SuprSend SDK
from suprsend import Suprsend
# Initialize SDK
supr_client = Suprsend("workspace_key", "workspace_secret")
Following example shows a sample request for triggering a workflow.
It triggers a pre-created workflow purchase-made
to a recipient with id: distinct_id
,
email: user@example.com
& androidpush(fcm-token): __android_push_fcm_token__
from suprsend import WorkflowTriggerRequest
# Prepare Workflow body
wf = WorkflowTriggerRequest(
body={
"workflow": "purchase-made"
"recipients": [
{
"distinct_id": "0f988f74-6982-41c5-8752-facb6911fb08",
# if $channels is present, communication will be tried on mentioned
…suprsend / suprsend-node-sdk
Official SuprSend SDK for Node.js
suprsend-node-sdk
This package can be included in a node project to easily integrate with SuprSend platform.
Installation
npm install @suprsend/node-sdk@latest
Initialization
const { Suprsend } = require("@suprsend/node-sdk");
const supr_client = new Suprsend("workspace_key", "workspace_secret");
It is a unified API to trigger workflow and doesn't require user creation before hand. If you are using our frontend SDK's to configure notifications and passing events and user properties from third-party data platforms like Segment, then event-based trigger would be a better choice.
const { Suprsend, WorkflowTriggerRequest } = require("@suprsend/node-sdk");
const supr_client = new Suprsend("workspace_key", "workspace_secret");
// workflow payload
const body = {
workflow: "_workflow_slug_",
actor: {
distinct_id: "0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08",
name: "actor_1",
},
recipients: [
{
distinct_id: "0gxxx9f14-xxxx-23c5-1902-xxxcb6912ab09",
$email: ["abc@example.com"
…suprsend / suprsend-react-inbox
SuprSend SDK for integrating inbox functionality in React applications
@suprsend/react-inbox
Integrating SuprSend Inbox channel in React websites can be done in two ways:
- SuprSendInbox component which comes with UI and customizing props.
- SuprSendProvider headless component and hooks, incase you want to totally take control of UI. (example: Full page notifications).
Detailed documentation can be found here: https://docs.suprsend.com/docs/inbox-react
Installation
You can install SuprSend inbox SDK using npm/yarn
npm install @suprsend/react-inbox
SuprSendInbox Integration
After installing, Import the component in your code and use it as given below. Replace the variables with actual values.
import SuprSendInbox from '@suprsend/react-inbox'
import 'react-toastify/dist/ReactToastify.css' // needed for toast notifications, can be ignored if hideToast=true
// add to your react component;
<SuprSendInbox
workspaceKey='<workspace_key>'
subscriberId='<subscriber_id>'
distinctId='<distinct_id>'
/>
interface ISuprSendInbox {
workspaceKey: string
distinctId: string | null
subscriberId: string | null
tenantId?: string
stores?: IStore[]
pageSize?: number
pagination?: boolean
…
Top comments (0)