preview_notification
Checks a message without sending it. Returns the cleaned content, how many devices it reaches, warnings, how it reads for a few real people (samples), when each wave goes out, what each platform receives, and a confirmToken (valid 30 minutes) that send_notification needs for anything beyond a few named users. Show the person this preview before sending.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"content": "<content>"
},
"name": "preview_notification"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Default marketing | |
| appId | No | The app to act on, from list_apps. Optional when the key belongs to one app. | |
| content | Yes | Text fields and links can use {{variables}}, each with an optional fallback: {{first_name|there}}, {{city}}, {{time_of_day}}, {{greeting}}, {{weekday}}, {{weather}}, {{temp}}, {{occasion}}, {{tag.plan}}, {{app_name}}. They are filled in for each person; call get_context first. | |
| audience | No | Who receives it. Empty means every subscribed device of the app. | |
| delivery | No | When each person gets it. now (default): at sendAfter, holding marketing pushes for anyone in the app's quiet hours. local_time: at this clock time in each person's own time zone, e.g. 09:00. best_hour: at the hour each person usually uses the app, with fallback for people without enough history. Waves run over up to 24 hours. | |
| platforms | No | Several platforms of one app in one campaign: "all", or a list of "ios", "android", "web" (or App IDs). Each person gets it once. Omit (with no productId) for the one platform of appId. | |
| productId | No | The whole app (productId from list_apps), for a campaign across its platforms. Same as appId of any platform with platforms "all". | |
| sendAfter | No | ISO 8601 |