Firebase - Create iOS message
Audience:
Low-code EngineersSkill Prerequisites:
Actions,Tokens,Firebase project
Builds the iOS (APNs) settings of a Firebase push notification and saves them as JSON in a token. It doesn't send anything. Pass the token into the iOS Specific Notification Json parameter of Firebase - Send push notification.
Use it to set iOS options such as the badge, sound, subtitle, category and thread, or to give iOS a different title or body than the other platforms.
This action is part of the Push Notifications add-on (DnnSharp.PushNotifications). The add-on is installed separately and needs the PUSHN feature in your license. If it isn't licensed, the action fails with a "not licensed" error. If you don't see the Push Notifications actions, the add-on isn't installed.
Typical Use Cases
- Set the badge number on the app icon, for example the count of unread messages
- Add a subtitle or play a custom sound
- Group notifications in a thread, or set a category so the app shows its own buttons
- Use localized strings from the app instead of text sent from the server
Don't use it to
- Send the notification. Use Firebase - Send push notification after this action.
- Set Android or browser options. Use Firebase - Create Android message or Firebase - Create WebPush message.
Related Actions
| Action Name | Description |
|---|---|
| Firebase - Send push notification | Sends the notification with the settings built by this action. |
| Firebase - Create Android message | Builds the Android settings of the notification. |
| Firebase - Create WebPush message | Builds the browser settings of the notification. |
Input Parameter Reference
| Parameter | Description | Supports Tokens | Default | Required |
|---|---|---|---|---|
| Thread Id | An app-specific ID that groups related notifications together, for example chat-[ChatId]. | Yes | empty string | No |
| Category | The notification type. It must match a category registered by the app, which decides the buttons shown. | Yes | empty string | No |
| Mutable Content | When checked, the app's notification service extension can change the notification before it's shown, for example to add an image. | No | Unchecked | No |
| Badge | The number to show on the app icon, for example [UnreadCount]. 0 removes the badge. See Considerations. | Yes | empty string | No |
| Title localization key | The key of a string in the app's resources to use as the title. When it has a value, Message Title is ignored. | Yes | empty string | No |
| Title localization args | Values that replace the format specifiers in the title string. One value per row. Shown when Title localization key has a value. | Yes | empty | No |
| Message Title | The iOS title. It replaces the Message Title of the Send action on iOS. Hidden when Title localization key has a value. | Yes | empty string | No |
| Subtitle localization key | The key of a string in the app's resources to use as the subtitle. In 1.28, it's only used when Title localization key also has a value. | Yes | empty string | No |
| Subtitle localization args | Values that replace the format specifiers in the subtitle string. One value per row. Shown when Subtitle localization key has a value. | Yes | empty | No |
| Message Subtitle | The subtitle shown under the title. In 1.28, it's ignored when Title localization key has a value. | Yes | empty string | No |
| Body localization key | The key of a string in the app's resources to use as the body. When it has a value, Message Body is ignored. | Yes | empty string | No |
| Body localization args | Values that replace the format specifiers in the body string. One value per row. Shown when Body localization key has a value. | Yes | empty | No |
| Message Body | The iOS body. It replaces the Message Body of the Send action on iOS. Hidden when Body localization key has a value. | Yes | empty string | No |
| Message Launch Image | The name of an image file in the app bundle to show while the app opens from the notification. | Yes | empty string | No |
| Message Action Localization Key | The key of a string in the app's resources to use as the text of the action button. | Yes | empty string | No |
| Message Sound | The name of a sound file in the app's main bundle or in its Library/Sounds folder, or default. | Yes | empty string | No |
| Data Input Type | Where the custom data comes from: Name Value Pairs or List Name. | No | Name Value Pairs | No |
| Data | Custom key/value pairs added to the APNs payload, next to aps. Shown when Data Input Type is Name Value Pairs. | Yes, keys and values | empty | No |
| Data List Name | The name of a list whose items have key and value fields. Shown when Data Input Type is List Name. | No | empty string | No |
| Output Token | The name of the token that receives the JSON, for example IosJson. Brackets are optional. | No | empty string | Yes |
Output Parameters Reference
| Parameter | Description |
|---|---|
[<Output Token>] | The APNs settings as JSON. Pass it into iOS Specific Notification Json of the Send action. |
Considerations
- Output Token is required. If Output Token is empty, the action does nothing and shows no error.
- The subtitle follows the title localization key. In 1.28, the action checks Title localization key instead of Subtitle localization key when it sets the subtitle. With no title localization key, Message Subtitle is used and Subtitle localization key is ignored. With a title localization key, Subtitle localization key is used and Message Subtitle is ignored.
- Badge is always sent. In 1.28, an empty Badge is sent as
-1instead of being left out. Always set the number you want, or0to clear the badge. - Missing list fails the action. In 1.28, when Data Input Type is
List Nameand the list doesn't exist, or Data List Name is empty, the action fails. The other Create message actions ignore a missing list. - Data list format. Every list item must have a
keyfield and avaluefield, and keys must be unique. Otherwise, the action fails. - Data goes into the APNs payload. The iOS data is added to the APNs payload next to
aps. Don't useapsas a key.
Examples
To understand how to use the below examples, please see Running Examples.
1. Build iOS settings with a badge and subtitle
This action builds iOS settings with the unread count as the badge, a subtitle, the default sound and a thread ID for the chat. It saves the JSON in IosJson. Pass [IosJson] into the Send action.
{
"Title": "Firebase - Create iOS message",
"ActionType": "Firebase.CreateIosFirebaseMessage",
"Description": "Build the iOS chat notification",
"Parameters": {
"ThreadId": "chat-[ChatId]",
"Category": "CHAT_MESSAGE",
"MutableContent": false,
"Badge": "[UnreadCount]",
"Title": "New message",
"Subtitle": "From [SenderName]",
"Body": "[MessagePreview]",
"Sound": "default",
"DataInputType": "NameValue",
"Data": {
"chatId": "[ChatId]"
},
"OutputToken": "IosJson"
}
}
Revised 10/03/2026