Send Push Notification
send-pushSends a push notification to one contact across all active devices, identified by contact ID, email, phone, or external ID; confirm the message and recipient before sending.
Instructions
Send a push notification to one contact; every active device they registered receives it. Identify the contact with contact_id alone, or with any of external_id, email and phone_number. Contacts who turned push off are skipped. This reaches real people, and a message that has gone out cannot be recalled. Before calling it, show the user what will go out and to whom, and wait for their go-ahead. See what was sent with list-push-notifications.
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": {
"title": "<title>",
"body": "<body>"
},
"name": "send-push"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| No | |||
| title | Yes | ||
| category | No | Label for grouping in analytics, e.g. `order_update` or `otp`. | |
| icon_url | No | Small icon, https only. | |
| priority | No | ||
| deep_link | No | Opened when the notification is tapped. | |
| image_url | No | Large image, https only. | |
| contact_id | No | Arsel contact id, from list-contacts. Cannot be combined with `external_id`, `email` or `phone_number`. | |
| external_id | No | The organization's own user id for the contact. | |
| ttl_seconds | No | How long delivery is retried for an offline device. | |
| data_payload | No | Flat string map delivered to the app. Keys reserved by Arsel or Firebase are rejected. | |
| phone_number | No | E.164 phone number, e.g. +966501234567. | |
| action_buttons | No | ||
| android_channel_id | No |