Push Templates
Creating push notification templates, translations for different languages, macros and personalization operators
Push templates are ready-made notification texts with support for translations, personalization and dynamic content. A single template can contain translations for multiple languages — the system automatically selects the appropriate one by device language.
Creating a Template
- Go to Push Templates and click "Create".
- Enter the template name (for internal use).
- Add translations — click "Add language" and fill in for each language:
- Title — notification heading.
- Body — notification text.
- Link — URL that opens on tap (if different from the application link).
- Icon — notification icon URL.
- Save the template.
A template can be used in any scheduler type and attached to one or more schedulers. The system selects the translation by device language; if no translation is available — it takes the first available one.
Macros
Macros are variables in text that are substituted with values at send time. Syntax: {{macro_name}}.
Application and Task Macros
Same for all recipients. Substituted automatically at send time.
| Macro | Description | Example |
|---|---|---|
{{app_name}} | Application name | Super Game |
{{app_id}} | Application ID | 42 |
{{app_link}} | Application link | https://example.com |
{{task_name}} | Task name (scheduler) | After Install 5 min |
{{task_id}} | Task ID | 7 |
User and Device Macros
Unique for each recipient. When used, the push is sent individually to each device.
| Macro | Description | Example |
|---|---|---|
{{external_id}} | User ID in your system | user_12345 |
{{language}} | Device language | en |
{{country}} | Country | US |
{{platform}} | Platform | android |
{{platform_name}} | Device model | Pixel 8 Pro |
{{timezone}} | Timezone | UTC+3 |
{{tag:key}} | Custom tag | tag value |
In link URLs, spaces in macro values are automatically replaced with underscores (
_).
Operators
Operators are constructs for dynamic text modification. They work only in title, body and link fields. Processing order: operators first, then macros.
Random Selection Operators
| Operator | Description | Example |
|---|---|---|
{a|b|c} | Random selection of one variant per device | Get {100|200|500} coins! |
{Random=[min,max]} | Random number from min to max per device | You earned {Random=[10,100]} bonuses! |
Date and Time Operators
Same for all recipients within a single send.
| Operator | Description | Example |
|---|---|---|
{Date:FORMAT} | Current date. Formats: DD (day), MM (month), YYYY (4-digit year), YY (2-digit year) | Sale ends {Date:DD.MM.YYYY} |
{Weekday} | Day of week in device language (10 languages) | Come back on {Weekday}! |
{Weekday:short} | Abbreviated day of week | Sale on {Weekday:short} |
{TimeOfDay} | Time of day by device timezone: 6–11 → "morning", 12–17 → "afternoon", 18–22 → "evening", 23–5 → "night". 10 languages. | Good {TimeOfDay}! Claim your bonus |
Text Transformation Operators
| Operator | Description | Example |
|---|---|---|
{Upper:text} | Convert text to UPPER CASE | {Upper:important}: read now |
{Lower:TEXT} | Convert text to lower case | click {Lower:HERE} |
Push Rotation
{Push={Variant_A|Variant_B|Variant_C}}Round-robin content rotation between sends (A → B → C → A). Used for A/B testing at the template level.
Example:
{Push={Welcome to {{app_name}}!|Hi {{external_id}}, we missed you!}}More about A/B testing with variants and weights — in the A/B Split Tests section.