Create Message

Learn how to create a Push campaign using the CleverTap dashboard.

Create a New Push Campaign

Create a campaign to deliver your push message.
To create a new campaign:

  1. From the dashboard, select Campaigns.
  2. Click + Campaign.
  3. From the Messaging Channels list, select the messaging channel.

Select Messaging Channel

The campaign page displays.


Create Campaign

  1. Define all the sections and publish the campaign.

Start Campaign Setup

The Start here section displays the setup information.

This section has the following parts:

  • Start here: Displays the information for platforms such as FCM, Xiaomi, or iOS. Check that the required platforms are integrated and ready for campaigns.
  • Qualification criteria: Deliver the notification by Past Behavior, Custom List, or Live behavior. For more information about segmenting users, refer to Segments.
  • Set a Goal: You can track your campaign conversion by setting up a goal. This is optional. You can define your conversion goal further by selecting the Event and Conversion time. Setting a goal allows you to measure your campaign effectively against what you want to achieve in the campaign.

The campaign goal can be as generic or as specific as you want. It can answer questions from How many users were influenced to purchase an X amount? to How many first-time visitors purchased red shoes worth a minimum of X amount and blue jackets worth a minimum of Y amount? ".


Set a Goal

Define the Audience

You must indicate the target audience for your campaign from the Who section. You can specify your target audience from the Target segment section. You can create a new segment or use a previously saved user segment from the segment list.

For Past Behavior segments, you also calculate the estimated reach.


Define Target Segment - Who


If you want to create an ad-hoc segment, you can select a type of segment on which to base your campaign. You can create the target based on past user behavior and user properties or live (ongoing) user behavior. The latter is helpful to send out real-time, triggered campaigns.

For instance, you can create a live Inaction within time campaign that targets users as soon as they add a product to their cart but do not finish transacting within 10 minutes; that is the golden window within which most users transact on iOS and Android app platforms.

On this basis, you would then set up the Who by sending this campaign to all users who qualify or limit the users who qualify under Estimated reach.


Event Source

To trigger push campaigns, the event source should be from a mobile device rather than the web.

Deliver Action Based Messages

You can trigger a message based on an action. Users receive messages when they perform an action in the app instead of waiting for the next app launch. It makes the messages more contextual and increases conversion. Campaigns with delays and app inbox coupled with a push message do not trigger instant messages.

Deliver Messages based on Past Behavior (PBS)

You can also target users their past user behavior. For past behavior campaigns, you also have an option to calculate estimated reach. The estimated reach shows the number of users that qualify for the campaign criteria and the number of reachable users via mobile push.

Filter by User Properties

Using the With user properties filter in the Who section, you can segment your campaign to reach users who meet specific criteria.

For example, you can send a push notification to English-speaking female users who live in the United States.


Filter by User Properties

The following table explains the various property types:

Property TypeDescriptionExample
User PropertiesCustom user profile properties that you define and send to CleverTap.Customer Type = Platinum
DemographicsDemographics filters include Age and Gender.Age = 25 to 40 years
Gender = Female
GeographyUser's coarse location. Filters include Country, Region, and City. CleverTap's SDK can automatically detect this from the user's IP address.Country = United States
State = California
City = San Francisco
Geography RadiusUser's exact location. You can select a city, and then define the target radius. You can also select multiple cities. You can send this information using CleverTap's SDK. For more information, refer to the iOS and Android developer guides.Locations = San Francisco, USA; Paris, France
ReachabilityReachability filters include Has email address, Has phone number, Unsubscribed email, and Unsubscribed SMS.Unsubscribed email = No
App FieldsApp fields filters include App Version, Device Make, Device Model, OS Version, and CleverTap SDK Version. This information is sent by CleverTap's SDK for each device that has your app which means a single user can have multiple devices associated with their user profile.OS Version = 10

To know more about what segments can be used, see Segments.

Constant event property

This is an advanced feature that allows you to hold a property constant across the selected events. For more information, refer to Constant Event Property.

Control Group

You can define the control group to compare and measure the results of your campaign. For more information on control groups, see Control Groups.

Control Group

Control Group

Targeting Cap

You can limit the number of users receiving the message.

A relevant use case is a limited offer where you want to distribute a fixed number of coupon codes. If the total reach for your campaign exceeds the number of coupon codes you can distribute, then you can limit the number of users who will receive the message to precisely the number of coupons you want to distribute.


Campaign Limit

Ensure that you set up a limit of 100 or more, regardless of the qualified user segment size. If the limit specified is less than 100, an error occurs.

Target Cap in Campaign

Target Cap in Campaign

Define Message Content

You can have up to four variations of message content in the What section:

Click Go To Editor to create your message.

Push Editor

The Push Editor allows you to create and edit beautiful and timely messages for your push campaign. From the What section, click Go To Editor to create your message. This section displays the editor to create your push message. You can see various options that will help you create a contextual and timely message.

Enter the details. You can use the @ personalization or {{}} to add personalization for your message. Enter the required details to create the message.


Message Editor

You can add a fixed (or with dynamic replacements) URL for Android (Image only) and iOS (Image and video) for rich push notifications.

Screen shows single message editor with image URL selected

Rich Push Notifications

You can add an image carousel with each image having its own caption, sub-caption, and call-to-action URL (fixed or with dynamic replacements) to your iOS push notifications.


Adding Images to Push Notifications

You can add default or custom (fixed or with dynamic replacements) sound files to your Android and iOS push notifications.

You can add a deep link (fixed or with dynamic replacement) to the Android or iOS push notification and lead the users to specific screens when they click it.

Push notification delivery

You can further increase the delivery of push notifications by sending a copy of the same message to App Inbox. For more information, see Optimize Delivery.

Advanced iOS Settings

Rich Media

Upload, add images, or a carousel for your push notifications.

Other Media

Sound File

You have to specify the name of the sound file which is included in your app bundle. Apple supports .aiff, .caf and .wav extensions.

Badge Count

This updates the badge count for your app to the one specified while creating the campaign. Please note that this does not increment the badge count or set the value to 0 (zero) to hide the badge number. This should be handled manually at the application level.


You can input the name of the category while creating the campaign. Each category has to be registered with the app. Each such category is associated with actions that the user can perform when a notification of a rich media type is delivered. Each category can have up to four actions associated with it, although the number of actions actually displayed depends on the type of notification delivered. This provides users the ability to take multiple actions for the notification.


Multiple Buttons Example

A single media push notification can have two buttons such as, Buy Now and Save for Later.

Content Available

If you include the content-available key with a value of 1 to send out a silent notification to your users. It will not alert the user in any way (update badge count/play a sound/show a notification), but it will wake your app up in the background so you can fetch new content and prepare it for the next time the user opens your app.

Key: content-available
Value: 1

Deep Link/Open URL

Deep links allow you to land the user to a particular part of your app. Your app’s OpenURL method is called with the deep link specified here. If you want to use external URLs, then you have to whitelist the IPs or provide http/https before the URL so they can be handled properly by the SDK.

Mutable Content

Check this box if you would like to send the mutable-content flag along with your payload. This invokes your app’s notification service extension. For more information, refer to Modifying Content in Newly Delivered Notifications in the Apple documentation.

Advanced Android Settings

Add Custom Actions to Android Notifications

A simple way to urge users to respond to your calls to action is by adding button-like actions right into your Android push notifications.

Screen shows adding button actions into your notification

Custom Actions for Android Notifications

Once set up, the various calls to action would display below the push as displayed below.


Sample Push Notification

Notification Priority

You can set these priority levels from the CleverTap dashboard as you create your Android push campaigns.

Notification Priority

Notification Priority

Have your app running our latest SDK (versions v3.1.4 or higher) and follow the steps outlined above to send actionable push notifications and set notification priority on Android devices.

Notification Tray Priority

On Android, you can also set a priority level for each notification to influence how prominently it is displayed. The higher the priority, the more noticeable it will be.

Default Priority

Use most of your messages that are not time-sensitive, such as general notifications and promotional offers.

High Priority

Use for important communications that require extra attention, such as chat messages. These will also display as heads-up notifications and be given a higher priority in the user’s tray. Heads up notifications are notifications that pop up on your screen from the top even when you are using other apps. For example, receive a message on your chat app when you’re using the food delivery app. This feature is available for Android N (API 25) and below. For Android Oreo and above, define the priority in the Notification Channel.

Maximum Priority

Use for urgent, time-sensitive notifications. These notifications will get higher placement inside the user’s tray and display as heads-up notifications.

Notification Delivery Priority

You can assign delivery priority on Android for Push messages as follows:

  • Normal: The data messages with normal priority are delivered immediately when the device is active. However, if the device is inactive to conserve battery, the delivery may be delayed until the device becomes active again. You must set the priority as Normal for less time-sensitive messages (such as notifications of new emails, keeping your UI in sync, or syncing app data in the background).
  • High: The messages with high priority are delivered immediately, even if the device is asleep. It wakes the device and allows limited processing (including minimal network use) to ensure the message is received. These messages are meant to provoke user action or response to your app or its notifications. You must set the priority as High for time-sensitive or user-visible content. CleverTap recommends setting the notification priority as High to ensure the time-sensitive content is rendered immediately on end-user devices. If FCM detects a pattern in which messages do not result in user-facing notifications, the messages are deprioritized to normal priority.

The value for this field is set to High by default.


Notification Priority for Cloned Campaigns

Cloned campaigns retain the priority setting from the original campaign.

Collapse Key

To replace an existing notification with the same collapse key, you can use the collapse notification option. For example, if push X and push Y have a collapse key A. Push X notification is present on the mobile device when push Y notification is received. The push X notification will no longer be visible (it will be collapsed), and push Y will be displayed. The collapse key must be added under the collapse notification field. For more information, see Collapse Key.

Custom key-value pair

Send custom data with the notification payload. This payload allows the app to perform any business logic preconfigured within the app. For example, you can send a key CouponCode and its value as FREE200. This key tells the app the user assigned for the coupon code.

Preview & Test

Once you are all done setting up the content of your campaign in the What section, you have the option to send a test push notification to any CleverTap user profile you have marked as a Test profile.
Click the Preview & Test button from the message editor to test a message.

Message Types

You can create the following types of messages:

  • Single Message
  • AB Test
  • Split Delivery
  • By User Property

Single Message

This message type allows a single message copy to be set up for the entire audience. This message copy can be personalized for each qualifying user. This message type is best suited for use cases where the message doesn’t vary much based on user properties such as language, geography, and so on.

A/B Testing

A/B testing helps you understand what type of message copy works best to get clicks from users.

You can test up to three message variants on a test group, and the variant that gets the most clicks is declared the winning variant and is automatically sent to the rest of your target audience.

When creating multiple variants for a campaign, you can also auto-copy what is already present in a current variant.

You can send up to 3 message variants to test groups to determine which campaign performs the best.


A/B Test Variant Distribution

Split Delivery

With split delivery, you can decide what percentage of your audience receives each message variant for the campaign duration. You can test up to three message variants.

Screen shows split Delivery Variant Distribution and message preview

Split Delivery Variant Distribution

Split Delivery to Past Behavior Segments

For campaigns sent to Past Behavior Segments (grouping of users based on what they have done in the past), you have two options: launch the A/B test to a percentage of your target audience or send out an absolute number of messages. In either case, we deliver the variants equally to the test audience.

For example:

  • If you test three messages (Variant A, Variant B, Variant C).
  • Your campaign reach is 2,000,000 users.
  • Your test population is 15% of the campaign reach (300,000 users).

Then, we send:

  • Variant A to 100,000 users.
  • Variant B to 100,000 users.
  • Variant C to 100,000 users.

After delivering 300,000 messages, we calculate the winning message over this test group based on the number of click-throughs. In this example, we then automatically send the winning message to the remainder of your target audience, which is 1,700,000 users.

Note that for A/B testing, we ensure there is always an equal number of messages sent for each variant, so there is no bias introduced during the test phase and that the best-performing message is always declared the winner.

Split Delivery to Live User Segments

With campaigns sent to live user segments (triggered campaigns), messages are delivered immediately when a user’s activity matches your selected criteria. For example, you can send a message when the user has completed a booking or purchase. Because it is impossible to determine the reach of triggered campaigns upfront, you need to decide how many total messages to send for A/B testing before a winner is declared.


Triggered Campaign Example

If you select 500 users as your test audience, we will alternate delivery of Variant A and Variant B as users qualify for the campaign. After a total of messages are sent (Variant A – 250 and Variant B – 250), we then decide the winner based on the number of clicks and continue only with this winning message for the duration of the campaign.

Deciding on a test audience for A/B testing triggered campaigns requires some estimation. We recommend you check the total messages sent for similar triggered campaigns in the past to get a sense of how many users may qualify. If you select a test audience that is too small such as 25 users, you will get a statistically insignificant sample. Suppose your test group size exceeds the total number of users who ultimately qualify for that campaign. In that case, no winner will be declared, and each message variant will be alternatively delivered for the campaign's duration.

By User Property

If you would like to send different message variants to your target audience based on the user properties they possess, this campaign type is your best bet. A good example would be sending a localized update to people based on their preferred language.

You can send up to 50 message variants to different users based on a user property.

Similar to creating A/B test variants, click + Variant to add multiple variants based on a user property value.


Message Variant by User Property

In the example below, we have used the Customer Type user property so users with different customer type property values receive corresponding copies of the campaign based on their different levels (Silver, Gold, or Platinum).


Message by Customer Type

Define Campaign Schedule

You can set up the When section to schedule the campaign start and end using the options below:

Past behavior campaigns can be scheduled to run:

  • On a specific date and time.
  • On multiple specified dates and times.
  • Recurring at a periodicity you set.

Live campaigns can be set up on a specific event:

  • In response to a user event.
  • User event/inaction combination (for example, abandoned cart scenario).
  • Based on a date event property value of an event (for example, a reminder for upcoming travel booking).

Delivery preferences

You can apply global campaign limits to determine how many push notifications each app user receives per day. If you want to override these settings for an important campaign, you can click on the Don’t apply global campaign limits to this campaign checkbox.

You can also click the Advanced checkbox to specify Do Not Disturb (DND) hours during which notifications from this push campaign are prevented from going out, either by discarding them or delaying delivery after DND hours such as 9 PM to 9 AM.

Since past behavior campaigns can have scheduled times, you have the option to stop a campaign delivery after a certain cut-off time or even deliver at the specified time in the user’s timezone. For more information, refer to Delivery in User’s Timezone.


Message Delivery Preference


Recurring Day

If you specify a recurring day for a campaign such as the 7th of each month, then the campaign will start for the specified day and ignore the creation date. This is a precaution to avoid sending a campaign unintentionally on a prior date.

Time to Live

Time to Live is the notification's persistence sent to an end user. Push services such as FCM, APNS, XPS, Baidu, and HMS manage Time to Live. They regulate the time the system monitors user device status to deliver a push notification. Whenever the user is online during the set TTL period, the notification is delivered. Any user not coming online will not receive the push notification, and no notifications are attempted after the TTL period is over.

There are two ways to configure the TTL for push notification delivery. Conceptually, they are referred to as Relative TTL or Absolute TTL.

  • Relative TTL: Push services attempt to send the notification only for the duration mentioned here. Specify the duration you want the notification to live.
    Select the first option to specify a TTL duration and ensure a push notification is active until the user is online if unavailable and there are no hard time limits.
  • Absolute TTL: Push services try and send the notification only until the specified time here. State the time until when you want the notification to live.
    Select the second option to specify a TTL time limit to ensure a push notification is active until that date and time.

Time to Live for a Message



Absolute TTL is available only for the following campaign types:

  • Send Now
  • Schedule for later except recurring schedules and Best time for every user.

Relative TTL is available for all campaign types.

Use Cases
Industry Type and Target GroupNeedDon't NeedTTL Selection
A ride-sharing app running campaigns to target office goers in the morning.They want the push notification to be sent to the office goers in the morning peak hours. Ideally between 7:30 to 10:30 am.Notification should not be sent in the afternoon as it loses the relevance.They would keep the campaign scheduled time at 7:30 am and set the relative TTL for 3 hours. This would ensure that the notification is sent between 7:30 am and 10:30 am.
A cricket information app wants to provide latest updates to their users' regarding the cricket match/es scheduled for the day.They want to send a push notification to their users advising on the coin toss of a particular match scheduled at 7pm.Notification should not be sent after 7:10 pm as it is no more relevant.Campaign will be triggered at 7 pm and the absolute TTL will be set to 7:10 pm. Any user who comes online after 7:10 pm will not get the notification even if they qualified initially.


The campaign cut-off time ensures no notifications are sent after the specified time. Clevertap does not send notifications to the push services after the cut-off. This is useful if the campaign is time-sensitive and a later time makes the notification irrelevant.
Select the Cut-off checkbox and specify the time to stop sending the notification when the number of target users is large, causing a significant delay in processing the user queue. This ensures that after the set time, there's no notification sent.


Campaign Cut-Off Time

Use Case
Industry Type and Target GroupNeedDon't NeedUsage Scenario
An e-commerce app has around 10 million users and is running a 'Discount' sales offer which would end at 12 am.They want to send the push notification to all of their users at the same time.Notification should not be sent after 12 am as the notification would lose its relevance.Assuming that the processing of the user queue takes 10 mins, set the cutoff to 11:50 pm.

Publish Campaign

After testing and once you are satisfied with the appearance of your campaign, finalize your campaign with the following steps:

  1. Click Continue to view your campaign summary. The overview page displays.
  2. View your campaign summary, then click Publish Campaign.

Publish Campaign