Dynamic Content

Add a personal touch to your messages with user-centric Dynamic Content

What is Dynamic Content?

This functionality allows you to personalize your push messages by modifying the message content with corresponding Tag values that you collect from your users. You can address your user by name, and use any of his or her preferences in the message to make it relevant for every single user, how cool is that?

Use case

Picture this: the application provides coupons for best restaurants in town every Friday.

In order to draw user's attention and bring them back to the app, you may send a basic push message that says "There are some coupons for you in the app, open it now!". However, such a message doesn't convey any specific information for a user, thus it's unlikely this push will be opened by everyone who receives it. In order to significantly increase the push open rate, notifications should be sent to the right audience with the right message. So, in order to send most relevant messages to users, the app collects the following information from users by calling setTags :

  • Name (sends Alias tag value to Pushwoosh)

  • Favorite Restaurant (sends Restaurant tag value)

How to personalize the push

With this info about users you can personalize push messages by using Dynamic Content. To add the Dynamic Content to your message text, press the Personalization button on the top right of the input field.

You can personalize not only the text of the message but other push content as well. Particularly, personalizing of titles, subtitles, headers, icons, and root params are available from the platform-specific push settings. Also, button URLs for Chrome pushes can be personalized. The flow is the very same as for push content, so follow the steps below to add a personal touch to every notification's element.

1. Choose a Tag

First, we choose a Tag which value will be used in the message. To apply, click Insert.

In our case, it's the Name tag so that each user will receive a personalized push notification.

Tags of string and integer types only are available for personalizing pushes sent from Control Panel. To extend the personalization capabilities with tags of other types, you can send messages via API or insert list-type tags into Liquid Templates.

2. Choose a format modifier

Then, we should pick a Format Modifier for the chosen tag value. Since it's the name, we capitalize the first character of the name, so "alexander" becomes "Alexander":

Modifier types

  • CapitalizeFirst – capitalizes the first letter in a tag value;

  • CapitalizeAllFirst – capitalizes the first letters in all words in a tag value if the value consists of more than one word;

  • UPPERCASE – switches all the letters to uppercase;

  • lowercase – switches all the letters to lowercase;

  • regular – inserts a tag value exactly as it's set for a user or device, with no modifications.

3. Specify a default value

We can also specify the Default Tag Value, which is used as a tag value in case a user didn’t specify it for some reason. Type in the name for those who didn't tell us their names, for example, as "friend".

4. Deal with non-tagged users

Control Panel

Let's complete the message with the restaurant name. But what if some of the users didn't specify their favorite restaurant yet? We covered this case as well – enable the Ignore non-tagged checkbox, and those devices that have no value for the chosen tag will not receive this push.


When sending messages via API, please make sure to use an appropriate syntax of Dynamic Content placeholders.

4.1. To reach out to non-tagged users with a message containing some default Tag value, use the following Dynamic Content syntax: {Tag_name|format_modifier|default_value}.

For example, the message "Hello {Alias|CapitalizeFirst|friend}!" will be sent to users with no alias specified and will look as "Hello friend!".


Please notice that the 4.2 and 4.3 options differ by a single "|" character but behave in all the contrary way to each other.

4.2. To ignore non-tagged users, add a Dynamic Content formatted as follows: {Tag_name|format_modifier}. When there is no closing "|" character, Ignore non-tagged considered to be checked.

For example, a message "Get a -20% coupon in {Restaurant|CapitalizeFirst} now!" will be sent only to those users who have any Tag value set on their devices or specified in "dynamic_content_placeholders" parameter of an API request. Non-tagged users won't receive any message.

4.3. To send a message to non-tagged users, format Dynamic Content as follows: {Tag_name|format_modifier|}. When there is a closing "|" character, Ignore non-tagged considered to be unchecked.

For example, a message "Get a -20% coupon in {Restaurant|CapitalizeFirst|} now!" will be sent to all the audience targeted including users with no Tag values specified. As a user has no Tag value and no default value is specified, non-tagged users will receive a message as is — "Get a -20% coupon in {Restaurant|CapitalizeFirst|} now!".


As a result, imaginary Klaus and Annie will receive push messages from the same campaign, but personalized with their names and preferences:

Last updated