DEV Community

Cover image for 7 Components of our Notification Service we Shifted from Devs to PMs
Nik L. for SuprSend

Posted on

7 Components of our Notification Service we Shifted from Devs to PMs

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.

Image description

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.

GitHub logo suprsend / suprsend-go

SuprSend SDK for go

suprsend-go

SuprSend Go SDK

Installation

go get github.com/suprsend/suprsend-go
Enter fullscreen mode Exit fullscreen mode

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)
    }
}
Enter fullscreen mode Exit fullscreen mode

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 workflow body
    wfBody := map[string]interface{}{
        "name":                  "Workflow Name",
        "template":              "template slug",
        "notification_category": "category",
        // "delay":                 "15m", // Chek duration format in documentation
        "users": []map[string]interface{}{
            {
                "distinct_id": "0f988f74-6982-41c5-8752-facb6911fb08",
                
Enter fullscreen mode Exit fullscreen mode

GitHub logo 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.

We're working towards creating SDK in other languages as well.

SuprSend SDKs available in following languages

  • python3 >= 3.7 (suprsend-py-sdk)
  • node (suprsend-node-sdk)
  • java (suprsend-java-sdk)

Installation

suprsend-py-sdk is available on PyPI. You can install using pip.

pip install suprsend-py-sdk
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Usage

Initialize the SuprSend SDK

from suprsend import Suprsend
# Initialize SDK
supr_client = Suprsend("workspace_key", "workspace_secret")
Enter fullscreen mode Exit fullscreen mode

Following example shows a sample request for triggering a workflow It triggers a notification to a user with id: distinct_id, email: user@example.com & androidpush(fcm-token): __android_push_fcm_token__ using template purchase-made and notification_category system

from suprsend import Workflow
Enter fullscreen mode Exit fullscreen mode

GitHub logo suprsend / suprsend-node-sdk

SuprSend SDK for Node.js

suprsend-node-sdk

This package can be included in a node project to easily integrate with Suprsend platform.

Refer full documentation here

Installation

suprsend-node-sdk is available as npm package. You can install using npm or yarn.

npm install @suprsend/node-sdk
Enter fullscreen mode Exit fullscreen mode

Initialization

Initialize the Suprsend SDK

const {Suprsend} = require("@suprsend/node-sdk");

// Initialize SDK
const supr_client = new Suprsend("workspace_key", "workspace_secret");
Enter fullscreen mode Exit fullscreen mode

License

MIT © https://github.com/suprsend





GitHub logo suprsend / suprsend-react-inbox

SuprSend SDK for integrating inbox functionality in React applications

@suprsend/react-inbox

SuprSend SDK for integrating Inbox, and Toast notifications in React applications

Installation

npm install --save @suprsend/react-inbox
Enter fullscreen mode Exit fullscreen mode

Integration

import SuprSendInbox from '@suprsend/react-inbox'

function Example() {
  return (
    <SuprsendInbox
      workspaceKey='<workspace_key>'
      workspaceSecret='<workspace_secret>'
      subscriberId='<subscriber_id>'
      distinctId='<distinct_id>'
    />
  )
}
Enter fullscreen mode Exit fullscreen mode

License

MIT © https://github.com/suprsend




Top comments (0)