> ## Documentation Index
> Fetch the complete documentation index at: https://social-b97141fb-feat-user-history-moderation-detail.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Channels

> Update chat channel display name, avatar, tags, metadata, and notification mode where the SDK exposes it.

Use channel updates when the app needs to change channel attributes after creation. Keep updates narrow: send only fields that actually changed, because metadata and tag updates replace the submitted values rather than merging app-side state for you.

## Update Surface

| Field | TypeScript | iOS | Android | Flutter |
| - | - | - | - | - |
| Display name | `displayName` | `setDisplayName(...)` | `.displayName(...)` | `.displayName(...)` |
| Avatar | `avatarFileId` | `setAvatar(...)` | `.avatar(...)` | `.avatar(...)` |
| Tags | `tags` | `setTags(...)` | `.tags(...)` | `.tags(...)` |
| Metadata | `metadata` | `setMetadata(...)` | `.metadata(...)` | `.metadata(...)` |
| Notification mode | `notificationMode` | `setNotificationMode(_:)` on `AmityChannelUpdateOptions` | `.notificationMode(...)` on the edit builder | `.notificationMode(...)` |

## Parameters

| Parameter | Required | Platforms | Description |
| - | - | - | - |
| `channelId` | Yes | TypeScript, iOS, Android, Flutter | Channel ID to update. |
| `displayName` | No | TypeScript, iOS, Android, Flutter | Replacement channel display name. |
| `avatarFileId` / `avatar` | No | TypeScript, iOS, Android, Flutter | Replacement avatar file reference where supported. |
| `tags` | No | TypeScript, iOS, Android, Flutter | Replacement tag list for the channel. |
| `metadata` | No | TypeScript, iOS, Android, Flutter | Replacement metadata stored with the channel. |
| `notificationMode` | No | TypeScript, iOS, Android, Flutter | Per-channel notification mode: `default`, `silent`, or `subscribe`. Exposed on all four platforms. |

## Update Channel Fields

Update channel profile fields such as display name, avatar, tags, or metadata where the platform exposes those setters.

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { ChannelRepository } from '@amityco/ts-sdk';

  const { data: updatedChannel } = await ChannelRepository.updateChannel(
    channelId,
    {
      displayName: 'Support desk',
      tags: ['support', 'active'],
      metadata: {
        queue: 'tier-2',
      },
    },
  );

  renderResults(updatedChannel);
  ```

  ```swift iOS theme={null}
  let options = AmityChannelUpdateOptions(channelId: "channel-id")
  options.setDisplayName("Support desk")
  options.setTags(["support", "active"])
  options.setMetadata(["queue": "tier-2"])

  let channel = try await channelRepository.editChannel(with: options)
  showSuccessMessage(channel.channelId)
  ```

  ```kotlin Android theme={null}
  val metadata = JsonObject().apply {
      addProperty("queue", "tier-2")
  }

  val disposable = channelRepository
      .editChannel(channelId = channelId)
      .displayName("Support desk")
      .tags(AmityTags(listOf("support", "active")))
      .metadata(metadata)
      .build()
      .apply()
      .subscribe(
          { channel -> showSuccessMessage(channel.getChannelId()) },
          { error -> handleGeneralError(error) },
      )
  ```

  ```dart Flutter theme={null}
  final channel = await AmityChatClient.newChannelRepository()
      .updateChannel(channelId)
      .displayName('Support desk')
      .tags(['support', 'active'])
      .metadata({'queue': 'tier-2'})
      .create();

  final updatedChannelId = channel.channelId;
  ```
</CodeGroup>

## Update Notification Mode

The channel update API exposes notification mode on all four platforms. The available values are `default`, `silent`, and `subscribe`. Use the dedicated [channel notification settings](../../push-notifications/settings/channel-settings) for broader notification configuration.

<CodeGroup>
  ```typescript TypeScript theme={null}
  import {
    AmityChannelNotificationModeEnum,
    ChannelRepository,
  } from '@amityco/ts-sdk';

  const { data: channel } = await ChannelRepository.updateChannel(
    channelId,
    {
      notificationMode: AmityChannelNotificationModeEnum.Silent,
    },
  );

  renderResults(channel);
  ```

  ```swift iOS theme={null}
  let options = AmityChannelUpdateOptions(channelId: "channel-id")
  options.setNotificationMode(.silent)

  let channel = try await channelRepository.editChannel(with: options)
  showSuccessMessage(channel.channelId)
  ```

  ```kotlin Android theme={null}
  val disposable = channelRepository
      .editChannel(channelId = channelId)
      .notificationMode(AmityChannelNotificationMode.SILENT)
      .build()
      .apply()
      .subscribe(
          { channel -> showSuccessMessage(channel.getChannelId()) },
          { error -> handleGeneralError(error) },
      )
  ```

  ```dart Flutter theme={null}
  final channel = await AmityChatClient.newChannelRepository()
      .updateChannel(channelId)
      .notificationMode(NotificationMode.silent)
      .create();

  final notificationMode = channel.notificationMode;
  ```
</CodeGroup>

## Related Topics

<CardGroup cols={2}>
  <Card title="Get Channels" href="./get-channel" icon="file">
    Observe the updated channel object.
  </Card>

  <Card title="Query Channels" href="./query-channels" icon="list-filter">
    Refresh channel lists after an update.
  </Card>

  <Card title="Channel Notifications" href="/social-plus-sdk/core-concepts/realtime-communication/push-notifications/settings/channel-settings" icon="bell">
    Configure channel notification settings.
  </Card>

  <Card title="Member Management" href="../members/overview" icon="users">
    Manage membership separately from channel attributes.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.