Send a push notification
pushengage_send_notificationSend push notifications to website and app subscribers, with immediate, scheduled, or recurring delivery and audience targeting.
Instructions
Creates and sends a push notification on the current site. Required fields: title, message, url. Do not add optional fields (tags, image_url, utm_params, audience_groups, actions, etc.) unless the user explicitly asks for them — for example, do not infer tags from the notification topic. Delivery modes (mutually exclusive — pick AT MOST one): (a) status="schedule" + schedule_date for a one-shot scheduled send; (b) pass recurring_schedule { days, times, start_date, end_date } for a recurring/repeating notification — leave status at "sent" (default) to activate the recurrence, or use "draft" to save without activating; (c) when scheduling one-shot, optionally pass send_in_subscribers_timezone=true to deliver at the scheduled wall-clock time in each subscriber's local timezone (only when the user explicitly asks, e.g. "send at 9am in their timezone"). Otherwise the notification is sent immediately. Use status="draft" to save without sending or activating. Audience: by default sends to all subscribers. Pass audience_groups (array of 1-20 predefined audience-group IDs) only when the user mentions a saved/predefined audience group. When the user asks to use the site URL, call pushengage_list_sites and use the current site's site_url.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Destination URL when the subscriber clicks the notification | |
| tags | No | Up to 5 tags, 36 chars each. Only when the user explicitly asks for tags. | |
| title | Yes | Notification title | |
| status | No | Send now (sent), schedule for later (schedule), or save without sending (draft) | sent |
| actions | No | Action buttons. Only when the user explicitly asks. | |
| message | Yes | Notification message body | |
| site_id | No | Override the currently selected site | |
| ios_push | No | iOS-specific options. Only when the user explicitly asks. | |
| expire_in | No | Expiry in seconds (60–2419200). Only when the user explicitly asks. | |
| image_url | No | Small notification icon. Only when the user explicitly asks for an image. | |
| utm_params | No | UTM tracking params. Only when the user explicitly asks. | |
| android_push | No | Android-specific options. Requires channel_id when set. Only when the user explicitly asks. | |
| big_image_url | No | Large hero image. Only when the user explicitly asks for a big image. | |
| schedule_date | No | Required when status is "schedule". Format: YYYY-MM-DD HH:mm:ss in the site timezone. | |
| audience_groups | No | Send to one or more predefined audience groups (1-20 group IDs). Each ID refers to an audience group already configured in PushEngage. Omit this field to send to all subscribers. Only set this when the user mentions a saved/predefined audience group. | |
| recurring_schedule | No | OPTIONAL. Turns this into a recurring notification that fires on the chosen days/times between start_date and end_date. Mutually exclusive with status="schedule", schedule_date, and send_in_subscribers_timezone. With recurring_schedule set, leave status at "sent" (default) to activate the recurrence, or use "draft" to save without activating. Only set this when the user explicitly asks for a recurring/repeating notification. | |
| send_in_subscribers_timezone | No | Only valid when status="schedule" (and not combined with recurring_schedule). When true, schedule_date is interpreted in each subscriber's local timezone instead of the site timezone — one delivery is scheduled per subscriber timezone so every recipient receives the push at the same wall-clock time. Only set this when the user explicitly asks for subscriber-timezone delivery (for example: "send at 9am in their timezone"). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| title | No | ||
| status | No | ||
| message | No | ||
| view_url | No | ||
| notification_id | No |