NPNotify Partners Docs

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

  1. Go to Push Templates and click "Create".
  2. Enter the template name (for internal use).
  3. 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.
  4. 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.

MacroDescriptionExample
{{app_name}}Application nameSuper Game
{{app_id}}Application ID42
{{app_link}}Application linkhttps://example.com
{{task_name}}Task name (scheduler)After Install 5 min
{{task_id}}Task ID7

User and Device Macros

Unique for each recipient. When used, the push is sent individually to each device.

MacroDescriptionExample
{{external_id}}User ID in your systemuser_12345
{{language}}Device languageen
{{country}}CountryUS
{{platform}}Platformandroid
{{platform_name}}Device modelPixel 8 Pro
{{timezone}}TimezoneUTC+3
{{tag:key}}Custom tagtag 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

OperatorDescriptionExample
{a|b|c}Random selection of one variant per deviceGet {100|200|500} coins!
{Random=[min,max]}Random number from min to max per deviceYou earned {Random=[10,100]} bonuses!

Date and Time Operators

Same for all recipients within a single send.

OperatorDescriptionExample
{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 weekSale 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

OperatorDescriptionExample
{Upper:text}Convert text to UPPER CASE{Upper:important}: read now
{Lower:TEXT}Convert text to lower caseclick {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.