Update push notification preferences
You can update a user's push notification preferences. A push notification is a message that is immediately delivered to a user's device when the device is either idle or running the client app in the background.
Note: Push notifications are only available for group channels.
DND evaluation priority
When evaluating whether to suppress a notification, the server checks in the following priority order:
- Snooze: If snooze is active, notifications are paused regardless of other settings.
- Day-of-week DND schedules: If
dnd_schedulesis non-empty, the server checks the current time against the configured windows. - Legacy DND: If
dnd_schedulesis empty, the legacydo_not_disturbandstart_hour/end_hourfields are used.
Day-of-week DND schedules and legacy DND are mutually exclusive — setting dnd_schedules automatically disables legacy DND.
Cross-midnight windows
If a DND window spans midnight — for example, Monday 22:00 to Tuesday 06:00 — the server automatically splits it into two separate day entries in the response. The request can contain the original cross-midnight window; the split only applies to the response.
For example, a request with monday start_hour: 22, end_hour: 6 is returned as monday 22:00–23:59 and tuesday 00:00–06:00.
HTTP request
Parameters
The following table lists the parameters that this action supports.
Required
| Name | Type | Description |
|---|---|---|
user_id | string | Specifies the unique ID of a user. |
Request body
The following table lists the properties of an HTTP request that this action supports.
Optional
| Property name | Type | Description |
|---|---|---|
push_trigger_option | string | The type of notification trigger applies to group channels when a user is disconnected from Sendbird server. Valid values are the following: |
do_not_disturb | boolean | Indicates whether to repeatedly pause notifications for a set period of time on a daily basis. (Default: |
start_hour | int | The start hour for pausing notifications when |
start_min | int | The start minute for pausing notifications when |
end_hour | int | The end hour for pausing notifications when |
end_min | int | The end minute for pausing notifications when |
snooze_enabled | boolean | Indicates whether to snooze notifications for a set period of time. (Default: |
snooze_start_ts | long | The timestamp when snoozing notifications starts in Unix milliseconds. |
snooze_end_ts | long | The timestamp when snoozing notifications ends in Unix milliseconds. |
push_blocked_bot_ids | array of strings | Specifies an array of one or more unique IDs of bots whose notifications a user paused. This property is effective only when |
block_push_from_bots | boolean | Determines whether to block notifications from all bots within the application. If the unique IDs of bots are specified in |
timezone | string | The timezone applied when setting preferences for notifications. Valid values include |
push_sound | string | The name of a sound file played when a notification is delivered to a client app. |
dnd_schedules | array of objects | Specifies an array of day-of-week DND schedule objects. Each object defines the day and one or more time windows during which notifications are paused. If this property is set, legacy DND is automatically disabled. |
dnd_schedules[].day_of_week | string | Specifies the day of the week. Acceptable values are |
dnd_schedules[].time_windows | array of objects | Specifies an array of time window objects for the given day. Multiple windows per day are allowed as long as they do not overlap. |
dnd_schedules[].time_windows[].start_hour | int | Specifies the start hour of the DND window in 24-hour format. Acceptable values are 0 to 23. If |
dnd_schedules[].time_windows[].start_min | int | Specifies the start minute of the DND window. Acceptable values are 0 to 59. |
dnd_schedules[].time_windows[].end_hour | int | Specifies the end hour of the DND window in 24-hour format. Acceptable values are 0 to 23. If |
dnd_schedules[].time_windows[].end_min | int | Specifies the end minute of the DND window. Acceptable values are 0 to 59. |
Responses
If successful, this action returns the push notification preferences of a user in the response body.
List of response properties
| Property name | Type | Description |
|---|---|---|
push_trigger_option | string | The type of notification trigger that applies to group channels when the user is disconnected from the Sendbird server. Valid values are the following: |
do_not_disturb | boolean | Indicates whether to repeatedly pause notifications for a set period of time on a daily basis. (Default: |
start_hour | int | The start hour for pausing notifications when |
start_min | int | The start minute for pausing notifications when |
end_hour | int | The end hour for pausing notifications when |
end_min | int | The end minute for pausing notifications when |
snooze_enabled | boolean | Indicates whether to snooze notifications for a set period of time. (Default: |
snooze_start_ts | long | The timestamp when snoozing notifications starts, in Unix milliseconds. |
snooze_end_ts | long | The timestamp when snoozing notifications ends, in Unix milliseconds. |
timezone | string | The timezone applied when setting preferences for notifications. Valid values include |
push_sound | string | The name of the sound file played when a notification is delivered to a client app. |
dnd_schedules | array of objects | An array of day-of-week DND schedule objects. Each object contains a day and its time windows. If empty, the legacy DND setting applies instead. |
dnd_schedules[].day_of_week | string | The day of the week. Valid values are |
dnd_schedules[].time_windows | array of objects | An array of time window objects for the given day. Cross-midnight windows are split into separate day entries. |
dnd_schedules[].time_windows[].start_hour | int | The start hour of the DND window in 24-hour format. |
dnd_schedules[].time_windows[].start_min | int | The start minute of the DND window. |
dnd_schedules[].time_windows[].end_hour | int | The end hour of the DND window in 24-hour format. |
dnd_schedules[].time_windows[].end_min | int | The end minute of the DND window. |
Error
In the case of an error, an error object like below is returned. See the error codes section for more details.