Smart Channel Routing is an optimal way of sending multi-channel notifications without bombarding your users. In case of smart routing, you send notification sequentially on channels with a delay rather than bombarding users on all channels at once. Example, If you have a template with 4 channels, the delivery on rest of the channels are skipped if the user sees or interacts with the message on 1 channel. This way, you can achieve the uptick in engagement (delivery, seen and interaction rate) without unnecessary noise and also save cost of paid notification channels.

The content of the notification is designed with templates. In SuprSend, you can design the content of multiple channels within a single template group.

How Smart Channel Routing node is executed?

1

Identify Applicable Channels

The First step is to identify applicable channels for delivery in user profile. Applicable channels are the subset of the following:

  • Active channels on template

    Active channels are published and live channels in the template. For WhatsApp and SMS (Indian vendors), templates become live upon approval by the respective provider.

  • Active channels in user profile

    Available channels in user profile which are not marked inactive. A set channel becomes inactive in case the channel isremoved orunsetusing SDK or API or it is marked inactive by SuprSend.

  • Channels where user preference is set as opt-in

    If you are using SuprSend preference centre to take user preferences, check if the user preference isopt-infor the given channel and notification category (defined in workflow settings). You can check user preference using get user preference API.

2

Finalize channel order using routing rule

Currently, the order of channel is defined to optimize on cost (channels are tried from low to high cost picked from their vendor form). We’ll also be introducing options to optimize on engagement so that notifications is sent on the channel with higher chances of open and click first.

3

Send notification with delay between each trigger using time to live

Now, the notification will be delivered on each channel in the order with time-interval [time_to_live / (number_of_channels - 1)] apart . For example, if you have 3 active channels with time to live of 1 hour, notification will be delivered to each channel at 30 minutes apart till the success metric is not achieved. Once success metric is achieved, notification delivery on further channels is skipped.

Setting Routing Rules

Routing rules define how the notifications will be routed across channels.

Optimize on

This is used to define the order of channels based on the metric that you want to optimize. For example, if you want to optimize on cost, SuprSend will internally set the order of channel in the ascending order of cost where the lowest cost channel is tried first.

We’ll be introducing the option to manually set the channel order and optimize on other metrics like engagement.

Time to live

Time to live defines the delay in delivery between 2 subsequent channels. Notification will be delivered on each channel in the order with time-interval of [time_to_live / (number_of_channels - 1)] apart. For example, if you 3 channels with time to live of 1 hour, notification will be delivered to each channel at 20 minutes apart till the success metric is achieved.

Must send to

These are the channels on which notification has to be sent immediately, irrespective of the channel order.

Success Metric

Success metric can be any event which defines the target user activity that you want to drive with your sent notification. In case of channel routing, it stops delivery on further channels when success metric is achieved. You can define 2 types of success metrics:

  1. Notification Status

    Success metric can be notification status (delivery, seen, interaction / click) of any of the sent channels. For example, if the target of your notification is user opening the notification, you can set your success metric as Notification Status - Seen.

  2. Custom Event

    It can be any other custom event that you want your user to perform on the platform in response to the sent notification. For example, in case of payment reminder notification, you can set the success metric asInvoice Paid.

Override Channels

You can use this field to pass channel list dynamically using data in your event property. This feature comes in handy when user channels are dynamically defined at the user level for each workflow. For instance, when booking an appointment, your users are dynamically defining their preferred channel to receive booking updates for each appointment.

For more consistent channel preferences, like user wanting to receive all communication via email only, or defininf preferred communication channel for a notifications category (like booking updates), we recommend updating it using user preferences.

To override channels, include the channels array in event property and add the corresponding key in the override channels field on SuprSend workflow form.

The expected channel values are: \\\["email", "sms", "whatsapp", "androidpush", "iospush", "webpush", "slack", "inbox", "ms_teams"\\\]

You can add channel array as a JQ-expression. So, in case your channel values do not match with the one mentioned in the above table, you can transform it using the JQ-expression. Below are some examples of how to add duration key in JQ format:

  1. General format for duration key at parent level is.channels
  2. If channel is a nested event property key like shown below, enter it in the format .user.channels.
properties = {													  
  "user": {
    "name": "Steve",
    "channels": ["email","inbox]
  }

When the channel key specified is missing, or resolves to an invalid value, workflow execution will stop and corresponding error will be logged in the logs


Frequently asked questions