// Update notification feed group to only send push for follows
await client.feeds.updateFeedGroup({
id: "notification",
push_notification: {
enable_push: true,
push_types: ["follow"], // Only follows will trigger push notifications
},
});
// Disable all push notifications for a feed group
await client.feeds.updateFeedGroup({
id: "user",
push_notification: {
enable_push: false,
},
});Feed Group Push Configuration
Activity Feeds supports push notifications at the feed group level, allowing you to configure which activity types trigger push notifications. You can use built-in defaults, override built-in feed groups, or create entirely custom feed groups with push configuration.
Built-in Feed Groups Default Configuration
Stream provides several built-in feed groups with different default push notification configurations:
| Feed Group | Push Enabled | Default Push Types |
|---|---|---|
notification | ✅ Yes | follow, comment, reaction, comment_reaction, mention |
user | ✅ Yes | follow, comment, reaction, comment_reaction, mention, post |
timeline | ❌ No | None |
foryou | ❌ No | None |
How Push Notifications Work
When you set create_notification_activity: true, you can choose how to send the notification:
Send via notification feed (skip_push: true)
- The notification goes through the user’s notification feed
- Triggers push via
feeds.notification_feed.updatedevent - Good for apps that want all notifications in one place
Send directly (skip_push: false)
- The notification is sent right away via direct event (e.g.,
feeds.activity.comment.added,feeds.activity.reaction.added) - The activity is still saved to the notification feed for history
Note: Stream automatically prevents duplicate push notifications. You’ll only get one push notification per action, regardless of your combination of skip_push and create_notification_activity flags.
Updating Feed Group Push Configuration
You can update existing feed groups to modify their push notification behavior:
// Update notification feed group to only send push for follows
_, err = client.Feeds().UpdateFeedGroup(ctx, "notification", &getstream.UpdateFeedGroupRequest{
PushNotification: &getstream.PushNotificationConfig{
Enabled: getstream.PtrTo(true),
ActivityTypes: []string{"follow"}, // Only follows will trigger push notifications
},
})
if err != nil {
log.Fatal("Error updating notification feed group:", err)
}
// Disable all push notifications for a feed group
_, err = client.Feeds().UpdateFeedGroup(ctx, "user", &getstream.UpdateFeedGroupRequest{
PushNotification: &getstream.PushNotificationConfig{
Enabled: getstream.PtrTo(false),
},
})
if err != nil {
log.Fatal("Error updating user feed group:", err)
}use GetStream\GeneratedModels;
// Update notification feed group to only send push for follows
$response = $feedsClient->updateFeedGroup("notification", new GeneratedModels\UpdateFeedGroupRequest(
pushNotification: new GeneratedModels\PushNotificationConfig(
enablePush: true,
pushTypes: ["follow"] // Only follows will trigger push notifications
)
));
// Disable all push notifications for a feed group
$response = $feedsClient->updateFeedGroup("user", new GeneratedModels\UpdateFeedGroupRequest(
pushNotification: new GeneratedModels\PushNotificationConfig(
enablePush: false
)
));import io.getstream.services.FeedsImpl;
import io.getstream.models.*;
FeedsImpl feedsClient = new FeedsImpl(new StreamHTTPClient("<API key>", "<API secret>"));
// Update notification feed group to only send push for follows
UpdateFeedGroupRequest notificationRequest = UpdateFeedGroupRequest.builder()
.pushNotification(PushNotificationConfig.builder()
.enablePush(true)
.pushTypes(List.of("follow")) // Only follows will trigger push notifications
.build())
.build();
feedsClient.updateFeedGroup("notification", notificationRequest).execute();
// Disable all push notifications for a feed group
UpdateFeedGroupRequest userRequest = UpdateFeedGroupRequest.builder()
.pushNotification(PushNotificationConfig.builder()
.enablePush(false)
.build())
.build();
feedsClient.updateFeedGroup("user", userRequest).execute();// Update notification feed group to only send push for follows
var notificationRequest = new UpdateFeedGroupRequest
{
PushNotification = new PushNotificationConfig
{
EnablePush = true,
PushTypes = new List<string> { "follow" } // Only follows will trigger push notifications
}
};
await _feedsV3Client.UpdateFeedGroupAsync("notification", notificationRequest);
// Disable all push notifications for a feed group
var userRequest = new UpdateFeedGroupRequest
{
PushNotification = new PushNotificationConfig
{
EnablePush = false
}
};
await _feedsV3Client.UpdateFeedGroupAsync("user", userRequest);# Update notification feed group to only send push for follows
self.client.feeds.update_feed_group(
id="notification",
push_notification={
"enable_push": True,
"push_types": ["follow"] # Only follows will trigger push notifications
}
)
# Disable all push notifications for a feed group
self.client.feeds.update_feed_group(
id="user",
push_notification={
"enable_push": False
}
)require 'getstream_ruby'
client = GetStreamRuby.manual(
api_key: 'api_key',
api_secret: 'api_secret'
)
# Update notification feed group to only send push for follows
notification_request = GetStream::Generated::Models::UpdateFeedGroupRequest.new(
push_notification: GetStream::Generated::Models::PushNotificationConfig.new(
enable_push: true,
push_types: ['follow'] # Only follows will trigger push notifications
)
)
client.feeds.update_feed_group('notification', notification_request)
# Disable all push notifications for a feed group
user_request = GetStream::Generated::Models::UpdateFeedGroupRequest.new(
push_notification: GetStream::Generated::Models::PushNotificationConfig.new(
enable_push: false
)
)
client.feeds.update_feed_group('user', user_request)Configuration Options
| Field | Type | Description |
|---|---|---|
enable_push | boolean | Whether push notifications are enabled for this feed group |
push_types | string[] | Array of activity types that will trigger push notifications |
Supported Activity Types:
- Built-in:
follow,comment,reaction,comment_reaction,mention - Custom: Any
activity.typevalue you define (e.g.,post,achievement,system_alert)
Best Practices
- Be selective with
push_types- Choose specific activity types to avoid overwhelming users - Use aggregation - Group similar activities in the feed for better organization, though each activity in
push_typeswill still trigger individual push notifications