This guide covers how to create and use templates. For details on performance tracking, see Template Analytics.
Create templates
Templates can be created in multiple ways:Dashboard
Go to Messages > Templates and click New Template.
API
Create templates programmatically using the Create Template API.
Email Template Forwarding
Migrate email templates from another email platform.
Copy Between Apps API
Move templates between OneSignal apps. Helpful if you have someone create the templates in another app before moving to your production app.
Note: This is a one-time copy, not a live sync.
Design guidelines
Templates support Liquid syntax for advanced personalization, letting you insert dynamic, user-specific content.Template data can be overwritten. You can use a template as a starting point and update the content on a per-message basis before sending.
Push Notification Design
Details on push notification design, features, and creation.
SMS Messaging
SMS design, features, and creation.
Email HTML Design
Create emails with HTML.
Email Drag and Drop Design
Create emails with our drag and drop editor.
Send messages using templates
You can send a template in multiple ways:- From the Compose Screen: When creating a new message in the Dashboard, choose to start from a template.
- From the Templates Page: Go to Messages > Templates, select Options (3 dots) > New Message.
- API: Include the
template_id
in your send request.
Template ID
Each template has a unique OneSignal-generatedtemplate_id
(UUID v4). You can find it:
- Using the View Templates API
- In the OneSignal Dashboard under Messages > Templates > Options > Copy Template ID

Copy Template ID
Track performance
The Templates page shows aggregate performance across all sends using the template. The data on this page is for the lifetime of the template. For individual template performance, see Template Analytics.Column | Description |
---|---|
Name | The template’s name. |
Labels | Unique Labels you can use to group and filter templates. |
Type | Push, Email, or SMS. |
Last Sent | The last date and time the template was used in a sent message. |
Delivered | Push: Total of successful sends to the push services (FCM, APNs, etc.) Email: Total delivered to the recipient’s inbox. SMS: Total of successful sends to the SMS carriers. |
Opened | Push: Not applicable. Email: Total number of times the email was opened (not unique). SMS: Not applicable. |
Clicked | Push: Total number of times the push was clicked. Email: Total number of times a link within the email was clicked. SMS: Total number of times a link within the SMS was clicked. |
CTR | (Clicked ÷ Delivered) × 100% . |
Update templates
You can update templates via:- Dashboard: Go to Messages > Templates > Options > Edit.
- API: Use the Update Template API.
content
, it will override the template message.
Delete templates
You can delete templates via:- Dashboard: Go to Messages > Templates > Options > Delete.
- API: Use the Delete Template API.
Once the template is deleted, all data associated with it is deleted and cannot be recovered.You cannot delete templates used within a Journey. Either delete the Journey or remove the template from the Journey.
FAQ
How long is template data stored?
- Template content data is stored for the lifetime of the template until it is deleted.
- Template overview analytics found on the Templates page are for the lifetime of the template.
- Individual template analytics subject to your plan type. See Template analytics for details.
Can I duplicate templates across apps?
Yes:- Use the Copy Template to Another App API for any template type.
- For Email specifically, use Email Template Forwarding.