Push tap actions

By default, tapping a push simply opens the app on the screen the shopper was on last time. To make a push lead to a product card, a catalogue section or the loyalty card, a command is attached to the notification.

A command is a short string like catalog.openProduct('123'). It is the same language as in interactive HTML blocks, so the same navigation can be reused in a banner and in a campaign.

How it works

The app reads the command parameter from the notification and runs it right after opening. It works in every state: the app closed, in the background or open. If the app was closed, the navigation happens once it has loaded.

Deep links (myshop://...) are not used for push. The app does not process the Launch URL field of the push service: that link is opened by the service itself, which is unreliable for screen navigation, as its own documentation warns. Always use a command to open a screen.

Where to set the command

In the cabinet

Open Push campaigns in the App group and create a campaign. The Message block has a Tap action field: put the command string there.

The section is not available if the app data comes from 1C-Bitrix. In that case send push from the push service console.

In the push service

A push can be sent straight from the push service console, which is convenient for one-off campaigns.

  1. Open the console and create a message.
  2. Fill in the heading and the text.
  3. Scroll to the Additional Data block (in some console versions it is hidden under Advanced Settings).
  4. Add a key and value pair:
Key Value
command catalog.openProduct('123')

The key is written in lower case and exactly as command, otherwise the app will not see it. The value is the whole command string.

The same key works when sending through the service's REST API: put it into the data object.

JSON
{ "headings": { "en": "Headphones on sale" }, "contents": { "en": "Today only" }, "data": { "command": "catalog.openProduct('123')" } }

Command syntax

The command name, followed by data in brackets.

TEXT
loyalty.openCard catalog.openProduct('123') catalog.openSection('12', 'New in')

Values are listed in the order given in the command reference. Strings go in single quotes.

If there are many values or nested data among them, pass an object. Inside an object the quotes are double:

TEXT
catalog.openSectionFiltered({"id":"12","title":"On sale","filter":{"sale":"Y"}})

Ready examples

Worked examples for common campaigns are on a separate page: Push command examples.

How to test

The campaign card has a "Test send" block: the push goes only to the given account, bypassing quiet hours and frequency limits. Send one to yourself, tap the notification and make sure the right screen opened.

Test on a phone where the app is in the background and on a phone where it is fully closed: those are two different scenarios.

Limits and caveats

  • Without a command, a push simply opens the app. That is a normal scenario for informational campaigns.
  • A typo in a command name does not break the app: it opens and goes nowhere. The shopper never sees the error, so always check with a test send.
  • The command length in the cabinet is up to 512 characters.
  • The loyalty.openCard command only works if the loyalty card is enabled in the app and available on your plan.
  • Product and section identifiers are the same numbers as in the admin panel address bar: /products/item/123 gives 123.

Related pages

Updated 04.09.2026 18:04