Concepts for BIG OutSystems Projects (Part II)

# 2 - Multi-Channel Notifications

Overview

This series is a compilation of challenges, approaches, and solutions that were part of our path as OutSystems Developers throughout different projects. Keep in mind that many resources, tips, tricks, and techniques were also shared with us in various articles and forums by peers and colleagues. We decided to share what we have been learning in our journeys in the hope that it can also bring value to you.

As we face different challenges, this series will include various random topics. Stay tuned.

 

Multi-Channel Notifications

How can you manage different communication channels?

As applications evolve, user expectations are greater: several types of notifications such as confirmation emails, mobile push notifications, and SMS are common requests. One should respond quickly to customer needs by providing multiple communication options, empowering customers to select their preferred communication channels.

Adopting a Multi-Channel strategy is crucial as it brings versatility and eclecticism to the applications!

 

The two main topics that we bring are:

  1. What communication channels will be part of the solution?

  2. How to build a robust and scalable solution architecture-wise?

What communication channels will be part of the solution?

For the first topic, we gathered information about the common channels used to communicate within web/mobile applications and came up with a list:

  • Email (2-way communication)
    An email service can send automated emails to users from the application, for example, when a process needs manual intervention or when it's concluded. It's usual to send links inside the content of the email to redirect the user to the desired place of the application. 
    A different possibility is integrating multiple emails as part of a case or a conversation; an example of this is Case Management Systems, which can automatically assign a case number and reply to a user email.

  • SMS (2-way communication)
    SMS notifications can be helpful, for example, to allow 2-factor authentication in some systems. Furthermore, there are some use cases when users can reply with predefined messages to trigger, for instance, response messages to confirm or cancel appointments. In these cases, the system can automatically do some action based on the user feedback without any other manual assistance.

  • InApp Chat (2-way communication)
    The InApp chats can benefit users with assistance and valuable information. In some cases, users can press buttons in the middle of the conversation to perform actions or receive suggestions.

  • Social Media Application's Chat (2-way communication)
    This channel allows real-time communication between users.

  • Browser Notification (1-way communication)
    This type of communication is valuable even if the user does not have the source application open.

  • Mobile Push Notification (1-way communication)
    Alerts users of specific events on their mobile devices.

 

How to build a robust and scalable solution architecture-wise?

Regarding the second topic, one of the best approaches is to create a concept of drivers and plug-and-play per service to avoid having strong dependencies for the consumers and giving the possibility of switching in an easier way to a different service provider when needed.

This way, the product can have as many drivers as desired and switch to a different service provider if needed by using an endpoint for each channel, making it possible for multiple applications to use the service without the need to reference the entire notification's service. 

The following diagram explains the architecture mentioned above. Each channel has its own service, providing an API that any application can use without direct dependencies.

 
 
 

Pre-development topics to have in consideration:

  • Ask end-users to sign up to receive notifications within your application will give them a sense of control, increasing engagement and trust.

  • Allow the user to select preferable communication channels and give them the opportunity to opt-in and opt-out from a variety of options. 

  • Configure some details like the appropriate time, frequency, and channel to communicate when sending a message.

Take into consideration end-users' location, as you don't want to disturb anyone with a message at 3 in the morning. Some say to avoid sending messages before 9 am or after 9 pm.

Measure the urgency of the notification: a receipt can be sent through an email; however, a payment notification for a delivery you just ordered or a service delay is better suited with an in-app notification or an SMS.

  • Groom the content of your notifications. Having dynamic and configurable templates will enable you to send personalized notifications for specific occasions; message personalization increases trust over the application.

  • Develop a back office to handle message delivery failures, track and log the occurrences.

Resources

 

Like this article? Share it:

Previous
Previous

How to deal with URL parameters: to hide, or to validate, that is the question

Next
Next

OutSystems Javascript API: Security and Logger