Brands / Tenants

An overview of what brand stands for in SuprSend and how you can manage it

If you handle communications to end users on behalf of your customers, you might be tasked with handling custom styling in the messages. This can be quite cumbersome if you have to maintain these customisation for every brand in your codebase.

Brands empower you to send personalized communication on behalf of your customers using a single API. You just have to store brand guidelines like logo, name, colors, social links and other custom properties for your customers once and then use your brand variables in templates to dynamically render the template for each of your customer.

You can programatically create / update brand tenant using either one of our backend SDKs (Python, Node, Java, Go) or through SuprSend dashboard. We'll cover the method to create brand using SuprSend dashboard.


Creating / Updating Brand on SuprSend Platform

Go to Brands page from Side Navigation panel. On the brands page, you'll see a default brand created. For every organization, we create a default brand which represents org level settings like org logo, colors, social links etc.

You can create a new brand by clicking on "New Brand" button.


This will open a form to add "brand id" and "brand name". Add the required fields and click on "Create brand"

Brand id is a unique identifier for your brand and can't be changed once the brand is created. You'll have to pass brand_id in your workflow / event calls to render brand level customization in your templates. (if no brand_id is passed, default brand properties are picked). So, add a brand id which is unique and easily identifiable for you.

Brand name can be your customer company / organization name


This will open brand details page. Fill brand details and Save changes. You can always come back and edit it again later


Here are the form fields and its description

FieldTypeDescription
Brand IDstring of max character length of 64 characters with allowed characters ([a-z0-9_-] i.e. alphanumeric characters, _ (underscore) and - (hyphen).)brand_id is used to identify brand in workflow and event call
Brand Namesingle line textName of the company / organization
LogoimageBrand logo. Used to render logo in email brand header
Brand colors6 digit color codebrand color settings are mainly used while designing templates. Primary brand color is used in button, header and footer border in brand email template.
If you don't provide any of the colors for the brand, SuprSend will assume you want to use the default values, so color settings will automatically be set to the color settings of default brand.
Social LinksURLURLs of social media accounts of the brand

It is used to render social media logos in brand email footer. if the link is not passed, that logo will not be shown in the footer.
Custom PropertiesJSONCustom properties associated with the brand.
The option to add custom properties is currently not available on the dashboard but you can update it using backend SDK or APIs

You can use HTTP API or manage brands using one of our backend SDKs:

  1. Update brand using python SDK
  2. Update brand using node SDK
  3. Update brand using java SDK
  4. Update brand using go SDK

Using brand components in templates

1. Ready-to-use brand components in email

You can use brand component in email to add ready-to-use header, footer and buttons in your email template. Brand component automatically uses brand logo, social links and primary color to style the email template. You'll find the brand component in right side content menu in email editor.


You can add brand component and change block type to switch between header, footer and buttons

You can change the component using standard customization options like padding, background color etc. to best suit your email template.


2. Use brand variable for all channels

You can add brand variables in all channel templates as $brand.<property>. For example, if you have to add brand_name in your template, you can add it as $brand.brand_name.
Also, when you type {, brand variable will automatically come up in auto-suggestions for your to add in the template


Triggering notification for your brand

After adding the brand variables in your template, you can add brand_id in your workflow or event trigger to trigger notification for that brand. This will replace brand variables with the properties of that brand at run time.

1. Adding brand_id in workflow trigger

from suprsend import Workflow

# Prepare Workflow body
workflow_body = {...}   

# Add brand_id in workflow instance
wf = Workflow(body=workflow_body, brand_id='_brand_id')

# Trigger workflow
response = supr_client.trigger_workflow(wf)
print(response)
const { Workflow } = require("@suprsend/node-sdk")

// Prepare Workflow body
const workflow_body = {...}
                       
// Add brand_id in workflow instance
const wf = new Workflow(workflow_body, {brand_id: "_brand_id_"})

// Trigger workflow
const response =  supr_client.trigger_workflow(wf) // returns promise
response.then((res) => console.log("response", res));

// Create workflow body
wfBody := map[string]interface{}{...}

wf := &suprsend.Workflow{
  Body:           wfBody,
  BrandId:        "_brand_id_",
}

// Call TriggerWorkflow to send request to Suprsend
_, err = suprClient.TriggerWorkflow(wf)
if err != nil {
  log.Fatalln(err)
}




2. Adding brand_id in event trigger

from suprsend import Event

distinct_id = "distinct_id" # Mandatory, Unique id of user in your application
event_name = "event_name"   # Mandatory, name of the event you're tracking

# Properties:  Optional, default=None, a dict representing event-attributes
properties = {													
  "key1":"value1",
  "key2":"value2"
} 

# Add brand_id in event instance
event = Event(distinct_id=distinct_id, event_name=event_name, properties=properties, brand_id='_brand_id_')

# Track event
response = supr_client.track_event(event)
print(response)

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

const distinct_id = "distinct_id" // Mandatory, Unique id of user in your application
const event_name = "event_name"   // Mandatory, name of the event you're tracking

// Properties:  Optional, a dict representing event-attributes
const properties = {													
  "key1":"value1",
  "key2":"value2"
}  

// Add brand_id in event instance
const event = new Event(distinct_id, event_name, properties, {brand_id: "_brand_id_"})

// Track event
const response  = supr_client.track_event(event)
response.then((res) => console.log("response", res));

// Add brand_id in event instance
ev := &suprsend.Event{
  EventName:  "product_purchased", // Mandatory, name of the event you're tracking
  DistinctId: "0fxxx8f74-xxxx-41c5-8752-xxxcb6911fb08", // Mandatory, Unique id of user in your application
  Properties: map[string]interface{}{...},
  BrandId:        "_brand_id_",
  }

  
  // Send event to Suprsend by calling .TrackEvent
  _, err = suprClient.TrackEvent(ev)
  if err != nil {
    log.Fatalln(err)
  }




Possible customizations at brand level

  • Custom Template Designs for Each Brand - You can create unique template designs for each brand using brand-specific properties. Refer to the above section for details on how to implement this.
  • Route Brand messages from their own vendors - You can direct messages through a brand's designated vendors by configuring tenant vendors on the vendor settings page. Messages will be sent via the vendor associated with the brand_id provided in the trigger. If no tenant vendor is set, the system will use the default vendor settings.
  • Tenant level preference setting: Tenants can control what notifications should be sent to their associated users and the their default preference setting. It can be used for cases where admin wants to control the notifications that their teammates receive or when you are sending notifications to multiple tenant's users and tenant wants to control the notifications their users receive, on which channels and at what frequency. Read more about tenant preferences here.