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.
- Open the console and create a message.
- Fill in the heading and the text.
- Scroll to the Additional Data block (in some console versions it is hidden under Advanced Settings).
- 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.
{
"headings": { "en": "Headphones on sale" },
"contents": { "en": "Today only" },
"data": { "command": "catalog.openProduct('123')" }
}
Command syntax
The command name, followed by data in brackets.
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:
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.openCardcommand 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/123gives123.
Related pages
- Push command examples: ready strings for common campaigns
- Command reference: the full list of commands and their parameters
- Deep links: links into the app from a website, an email or a QR code