{{variable_name}}).

iOS Push fields
Title — single-line heading. Keep under 30 characters — iOS truncates on the lock screen. Supports Handlebars variables. Body — multi-line message text. Front-load key info in the first line (4 lines visible in expanded view). Supports Handlebars variables. Image URL — optional. Public URL for a rich notification image (PNG, JPG, JPEG, min 1024x1024 for best rendering). GIFs play in the expanded view. Requires a Notification Service Extension in your app — the SuprSend iOS SDK includes this by default. See iOS SDK integration. Action URL — optional. URL opened on tap. Always set one — without it, tapping opens the app’s default screen. Supports deep links and Handlebars variables.Adding dynamic content
You can add variables in the template to personalise it for each recipient. Variables are replaced with actual data at send time.Add variables in the Variables panel
Add sample data in the Variables panel (Input Payload section) on the left side of the editor. This powers auto-suggestions and the live preview. For the full guide, see Adding dynamic content.
Use variables in the template
Type
{{ in any field — matching variables appear as auto-suggestions. You can also type variable names manually following Handlebars syntax.Examples using this sample data:- Nested variable:
{{event.location.city}}→ renders asSan Francisco - Variable with space in name:
{{event.[first name]}}
- The variable is defined in the Variables panel.
- The variable name matches the Handlebars syntax exactly.
Preview and test
The right panel shows a live iOS lock screen preview, updated in real time as you edit. Variables render using data from the Variables panel. Click Test in the top-right corner to send a real push notification to a real device. This uses the live version — commit your changes before testing. See Testing a Template for the full guide.Commit
Click Commit in the top bar to publish the current draft as a new live version. Add an optional description for versioning.Common scenarios
Delivery update
Delivery update
| Field | Value |
|---|---|
| Title | Your order is out for delivery |
| Body | Order #{{order_id}} will arrive by {{eta}}. Tap to track. |
| Image URL | {{product_image_url}} |
| Action URL | https://yourapp.com/track/{{order_id}} |
Social engagement
Social engagement
Restock reminder
Restock reminder
| Field | Value |
|---|---|
| Title | Running low? |
| Body | It might be time to restock {{product_name}}. |
| Image URL | {{product_image_url}} |
| Action URL | https://yourapp.com/product/{{product_id}} |
Frequently asked questions
Why aren't images showing in my push notification?
Why aren't images showing in my push notification?
Your app needs a Notification Service Extension to display rich media (images, GIFs). The SuprSend iOS SDK includes this by default. If you’re not using the SDK, add the extension manually. Supported formats: JPEG, PNG, GIF. Max size: 10 MB. Images display in the expanded notification view (long-press or swipe down). See iOS SDK integration.
How do deep links work in iOS push?
How do deep links work in iOS push?
The Action URL supports three URL types:
Prefer Universal Links — they work as both web fallback and in-app deep links.
| URL type | Format | Behaviour |
|---|---|---|
| Web URL | https://yourapp.com/orders/123 | Opens in Safari (or your app if Universal Links are configured) |
| Custom scheme | yourapp://orders/123 | Opens the matching view controller in your app |
| Universal Link | https://yourapp.com/orders/123 (Associated Domains) | Opens your app directly |
How does badge count work?
How does badge count work?
SuprSend increments the app badge by 1 for each notification. Clear the badge in your app when the user opens it or reads notifications.
What happens if a variable is missing at send time?
What happens if a variable is missing at send time?
SuprSend discards the iOS Push notification for that user. Other channels in the same template group are still sent if they render successfully.
{{actor_name}} liked your post"{{post_excerpt}}"yourapp://posts/{{post_id}}