# 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.updated` event
- 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:

<codetabs>

<codetabs-item value="node" label="Node">

```js
// 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,
  },
});
```

</codetabs-item>

<codetabs-item value="go" label="Go">

```go
// 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)
}
```

</codetabs-item>

<codetabs-item value="php" label="php">

```php
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
    )
));
```

</codetabs-item>

<codetabs-item value="java" label="Java">

```java
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();
```

</codetabs-item>

<codetabs-item value="csharp" label="C#">

```csharp
// 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);
```

</codetabs-item>

<codetabs-item value="python" label="Python">

```python
# 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
    }
)
```

</codetabs-item>

<codetabs-item value="ruby" label="Ruby">

```ruby
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)
```

</codetabs-item>

</codetabs>

## 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.type` value 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_types` will still trigger individual push notifications


---

This page was last updated at 2026-03-10T10:48:22.965Z.

For the most recent version of this documentation, visit [https://getstream.io/activity-feeds/docs/javascript/feed_group_push_configuration/](https://getstream.io/activity-feeds/docs/javascript/feed_group_push_configuration/).