> ## Documentation Index
> Fetch the complete documentation index at: https://learn.social.plus/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` | Not on `AmityChannelUpdateOptions` | Not on `AmityChannelUpdate.Builder` | `.notificationMode(...)` |

## Parameters

| Parameter                 | Required | Description                                                       |
| ------------------------- | -------- | ----------------------------------------------------------------- |
| `channelId`               | Yes      | Channel ID to update.                                             |
| `displayName`             | No       | Replacement channel display name.                                 |
| `avatarFileId` / `avatar` | No       | Replacement avatar file reference where supported.                |
| `tags`                    | No       | Replacement tag list for the channel.                             |
| `metadata`                | No       | Replacement metadata stored with the channel.                     |
| `notificationMode`        | No       | Channel notification mode where TypeScript and Flutter expose it. |

## 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 TypeScript and Flutter. Use platform-specific notification settings pages 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);
  ```

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