Omnichannel User Profiles

Joel Oliveira
Mar 29 2021
Posted in Best Practices

Building rich user profiles in a mobile-first world

Mobile devices took over our lives. From the way we communicate and learn to the way we do business, we have come to rely on our smartphones for our relationships, finances, health, and well-being. This has led to some major shifts in such long-established industries such as banking, retail, and travel, as well as creation of new areas of opportunity outside of them. More businesses are adopting a comprehensive, mobile-first strategy to meet the challenges of the new age.

If a mobile app is your business's primary touchpoint, congratulations! You now have the possibility to engage your users on their most personal devices. With Notificare, you have also the possibility to transform the way you communicate using 3 main channels: Push, Email and SMS.

But before you can harness all the possibilities we have to offer, it is imperative that you create a strong foundation that you can then build upon. In this post, we will cover just that. How can you create rich user profiles containing all the recipients to build an omnichannel landscape? And with that, this is also how you can store all data you will ever need to orchestrate to reach your users on multiple channels and create highly personal and relevant messaging campaigns.

In this post, we assume your business is capable of running server-side applications and you are able to integrate our REST API into that stack.

User Registration

This is the very first step towards creating rich user profiles. We will guide you through the process of preventing your mobile from being able to complete user registrations and instead, you will delegate that job to your server-side application. This is also the most secure way to assign devices, email addresses and phone numbers to a user profile. It will also prevent any bad actors from assigning their devices to a user identifier and impersonating that user.

For that, you start by configuring your Notificare app to only allow user registrations at the API Level. This is done in Settings > Configure App by selecting the following option:

As soon as you save this configuration, your front-end application will no longer be able to assign devices to a user identifier. Instead, your app will be sending the device identifier (provided by our SDK) to your server-side application, which will be responsible to assign a device to an user whenever they sign-up or login in your mobile app:

AUTH=$(echo -ne "APPLICATION_KEY:MASTER_SECRET" | base64 --wrap 0)

curl \
  --header "Content-Type: application/json" \
  --header "Authorization: Basic $AUTH" \
  --request PUT \
  --data  '{"userID":"U123456789", "userName":"John Doe"}' \
  https://push.notifica.re/device/{deviceID}/user

Pretty much the same way, you can remove a device from a user whenever users logout from your app:

AUTH=$(echo -ne "APPLICATION_KEY:MASTER_SECRET" | base64 --wrap 0)

curl \
  --header "Content-Type: application/json" \
  --header "Authorization: Basic $AUTH" \
  --request DELETE \
  https://push.notifica.re/device/{deviceID}/user

After this point, your mobile app (via your server-side application) will be able to creat a user profile in a secure manner and that profile will contain a push enabled device.

Email Contacts & Phone Numbers

Like many other businesses, you are probably also collecting an email address and/or phone number when users create an account or login in your mobile app. This means that you will have those bits of information also ready to be added to the user profile when that happens. Pretty much like the example above, you can then easily add those to a user profile using our REST API:

Email Contacts

AUTH=$(echo -ne "APPLICATION_KEY:MASTER_SECRET" | base64 --wrap 0)

curl \
  --header "Content-Type: application/json" \
  --header "Authorization: Basic $AUTH" \
  --request POST \
  --data  '{"email": "myemail@domain.com", "userID":"U123456789", "userName":"John Doe", "language": "en", "region": "NL"}' \
  https://push.notifica.re/email

Phone Numbers

AUTH=$(echo -ne "APPLICATION_KEY:MASTER_SECRET" | base64 --wrap 0)

curl \
  --header "Content-Type: application/json" \
  --header "Authorization: Basic $AUTH" \
  --request POST \
  --data  '{"phone": "+31123456789", "userID":"U123456789", "userName":"John Doe", "language": "en", "region": "NL"}' \
  https://push.notifica.re/sms

At this point, you would have added 2 new recipients to your user profile. You are now able to engage with your users using 3 different channels: Push, Email and SMS.

User Data Fields

Finally, we will be enriching user profiles with data that might become useful when you want to add a personal touch to your messages. These are pre-defined fields added to your Notificare's app configuration that can extend user profiles with data like the name components (Given Name or Family Name), birthdate, gender, etc.

To enable this, you first must define all these fields in Settings > Configure App:

Then you can easily add this data to all the push devices, email addresses and phone numbers in a user profile, via our REST API, by doing the following:

AUTH=$(echo -ne "APPLICATION_KEY:MASTER_SECRET" | base64 --wrap 0)

curl \
  --header "Content-Type: application/json" \
  --header "Authorization: Basic $AUTH" \
  --request PUT \
  --data  '{"firstName":"John", "lastName":"Doe", "birthdate":"1997-03-10", "gender":"Male"}' \
  https://push.notifica.re/device/{deviceID}/userdata/override

Great! You can now include these as placeholders in the content of your messaging campaigns. Personalizing your messages will become much easier. In the end of the day, a rich user profile will look like this:

Conclusion

As you can see, in a few steps, you will be ready to reach users across multiple channels. And because Notificare is able to work seamlessly between all of them, you will be able to create experiences that bridge the gap between those channels. Take advantage of our Links to redirect users directly from an email or SMS message directly to your app, orchestrate how you reach them using their preferred channel and easily create meaningful interactions whenever your users intact with your content independently of the channel they use.

If you have any questions or you simply want to see all this in action, don't hesitate and request a demo today.

Keep up-to-date with the latest news