Notifications still disappoint! It needs to be re-invented
Tags: javascript, notification, react
Published: 2024-03-17 19:50:22

In every app (web/mobile) development project I worked, there wasn't a single one that didn't need notification.

Notification in the sense, any form of communication with the user. It's **not** just push notifications! It could be email, it could be SMS, call, slack or anything.

It could be triggered from the product such as welcome emails, or subscription reminders or even when two users interact within the product such as liking or replying to someone else's content.

Usually, for web apps, we try to deliver these messages through email and for mobile apps, we stick to push notifications because that's the norm.

## Finding the best communication channel!
Think of yourself. You know what's the best way to reach your friends. Some of them are active on email, some of them are best reached via WhatsApp, some of them like calls, Facebook, LinkedIn.

But what about the apps we make? Unfortunately, our apps don't have this ability. Why? Because the app developers can't just integrate a dozen of communication APIs to their backend!

**It could result in**

1. Sending the same message across every other channel, annoying your users or

2. Users not getting the right message at the right time, thus leading to delayed replies or actions!

## What's the fix?

Accept the fact that, there is no one best channel to reach your user. And having too many channels won't be good either.

The best thing is to find the right channel based on the context and the message. Let's take a look at few examples.

#### Sending a welcome message.

Email is widely used for this. But, users are already on your app. Why send an email? They might read it later. But if it has some information to help the user NOW, you lost the context. You should have shown the message inside the app.

#### Sending offers or promotions to an e-commerce app
Usually, this is sent as push notifications. But do you know how many push notifications stacked on your phone's notification tray? And at the end of the day you clear them all at once and boom! Where are the offers now?

Again, the best way here is to have a message inbox that sits inside your app with the entire message history. So if a user wants that promo code you sent via push, they can find it there.

**Have you observed the pattern here?**

The best channel depends on the context. If users are spending more time on the app, In-App is undoubtedly the best channel. If not, then the next best might be Push. If they're offline, and if it's really urgent, it could be SMS, or else Email.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/00vetkfyq8zdibj15kfm.jpg)

## What does this means for developers?

So, for developers, it's not easy as integrating an Email API or an SMS API. You need to build a smart communication layer that understands what's the best channel to reach and when.

Let's consider this scenario. We have a support ticketing app and the support agent gets a new ticket from a customer.

**What's the best way to notify the agent so he can proactively take action?**

1. If the agent is currently online and working on the app, then a realtime In-App message would be the best to get their attention.

2. If the agent is online, but away from the app, a push notification will do the job!

3. If the agent has snoozed all notifications, then sending it in an email, and a copy inside the In-App inbox makes sure they see it when they're back.

4. If it's top priority (like your server is on fire), call might be the best channel ever!


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c08sohvm64wi1c0kl28p.jpg)

**Delivering a message doesn't ends with a single step. It's a workflow!**

## Identifying the communication triggers
Most likely, you're under communicating with your users. No I'm not talking about the mass promotional notifications or emails you sent. That you should limit anyways!

I mean the important messages that your users needs to know. For example if you're building a server deployment tool, what are some important communication triggers that adds value?

1. How do you let users know when a deployment fails?
2. How do they know when a health-check fails?
3. How do they know if a deployment is waiting approval?
4. What if a infrastructure fails when the user is offline?
5. How do they take action out of the alert they received?

Unless you effectively communicate with the user about these events, they're missing something. These communication triggers are not a luxury but a necessary feature of your product.

**So, developers must make sure it is easy to build new communication triggers as required**

## Respect the user's preferences.
This is important. Even if your system is smart enough to find the best channel to notify a user, it's ultimately their choice.

How do you do this? Allow them to set their preferences on every communication trigger from your app. Let them choose the frequency. For less-important messages, allow them to get multiple messages batched together instead of sending them one by one!


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yomw9h7ekh2dwgitm4a4.png)

## Building a developer-first notification infrastructure!
A problem that appeared to be very trivial in the beginning has now become a huge project with several months of effort.

Now the question is about whether you should spend at least 6 months of your engineering team's effort in building this from scratch or just buy the API?

Well, engineering teams at companies are almost always occupied. So, trying to build this in-house will probably take you at least an year if you start planning now.

At Engagespot, we are building a [notification infrastructure](https://engagespot.co?ref=dev_to_article) for developers to help them build a delightful communication experience in minutes!

And unlike our competitors, we focus on making notifications actionable, and provides deep integration capabilities with your existing code.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ql66bknt4lyrcvp42o9g.png)

To learn more about Engagespot, check our website - [https://engagespot.co](https://engagespot.co). And good news, we got selected to Techstars NYC 24 batch, one of the top startup accelerators in the world!

## Conclusion

Having a great communication experience is a necessity for your product's success. It's not just about regular marketing communication. It's about how your users get informed about the things that they should know, and how quickly they can take action.