# Dynamic content

<YouTube id="A7l1_gK5yOA" playlabel="Youtube Video: 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 and emails 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 their preferences in the message to make it relevant for every single user.

## Use case

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

To draw users' 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, so it's unlikely this push will be opened by everyone who receives it. To significantly increase the push open rate, notifications should be sent to the right audience with the right message. To send the most relevant messages, _collect the following information from users by calling_ [`setTags`](/developer/api-reference/device-api#settags):

* Name (sends _Alias_ tag value to Pushwoosh)
* Favorite Restaurant (sends _Restaurant_ tag value)

## How to personalize a push

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

<img src="/personalization-dynamic-content-1.webp" alt="Personalization button located at the top right of the message input field"/>

<Aside type="note">
You can personalize not only the text of the message but other push content as well. You can personalize **titles**, **subtitles**, **headers**, **icons**, and **root params** from the platform-specific push settings. Also, **button URLs** for Chrome pushes can be personalized. The flow is the same as for push content, so follow the steps below to add a personal touch to every notification's element.
</Aside>

1. Choose a Tag

First, choose a Tag whose 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.

<img src="/personalization-dynamic-content-2.webp" alt="Tag selection dialog showing available tags with Insert button to add selected tag to message"/>

<Aside type="caution">
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, [send messages via API](/developer/api-reference/messages-api) or insert list-type tags into [Liquid Templates](/product/personalization/liquid-templates).
</Aside>

2. Choose a format modifier

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

<img src="/personalization-dynamic-content-3.webp" alt="Format modifier selection showing CapitalizeFirst option for capitalizing the first letter of tag value"/>

<Aside type="note">
**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
</Aside>

3. Specify a default value

You 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 a default value for those who didn't provide it, for example, "friend".

<img src="/personalization-dynamic-content-4.webp" alt="Default tag value input field showing example default value for users who did not provide tag information"/>

4. Finally, click **Insert**.

<img src="/personalization-dynamic-content-5.webp" alt="Insert button to finalize and add personalized tag to message content"/>

## Insert User ID

Besides Tags, you can insert the [User ID](/product/pushwoosh-knowledge-hub/users-userids/) into push content. Pushwoosh resolves it for each recipient at send time, so you don't need to store it as a Tag.

1. Click **Personalization** on the field you want to personalize (title, message text, or other supported push content).
2. In the list, select **User ID**. Use the search box to find it quickly.
3. Choose a format modifier and, if needed, a default value (see step 3 in [How to personalize a push](#how-to-personalize-a-push)).
4. Click **Insert**.



## Personalization guides by channel

If you want to personalize messages across multiple channels, check out our detailed how-to guides for different channels:

<CardGrid>
  <LinkCard 
    title="How to send a personalized push notification" 
    href="/product/how-to-guides/how-to-send-a-personalized-message/how-to-send-a-personalized-push-notification/" 
  />
  <LinkCard 
    title="How to send a personalized in-app message" 
    href="/product/how-to-guides/how-to-send-a-personalized-message/how-to-send-a-personalized-in-app-message/" 
  />
  <LinkCard 
    title="How to send a personalized email" 
    href="/product/how-to-guides/how-to-send-a-personalized-message/how-to-send-a-personalized-email/" 
  />
  <LinkCard 
    title="How to send a personalized SMS" 
    href="/product/how-to-guides/how-to-send-a-personalized-message/how-to-send-a-personalized-sms/" 
  />
</CardGrid>