Chat / JavaScript
Chat JavaScript v4
Chat JavaScript
Chat
JavaScript
Home
/
Chat
/
JavaScript
/
Channel
This is the new Docs for Chat SDK v4 for JavaScript. To see the previous Docs, click here.

Create a channel

Two basic types of channels you can create with Sendbird's Chat SDK are open channels and group channels.

An open channel is ideal for use cases such as short-lived live events and news-feed style messaging to a massive audience that doesn't require a permanent membership in the channel. A group channel is suitable for closer interactions among a limited number of users. To learn more about the different use cases and characteristics of open and group channels, see the channel types page.

When creating a channel, you can append additional information like cover image, description, and URL by passing several arguments to the corresponding parameters. The channel URL can only contain numbers, alphabetic characters, or underscores, and the URL's length must be between 4 and 100 characters. If you don't specify the channelUrl property, a URL will be automatically generated.

If you want to create a group channel for a 1-to-1 chat, you should make sure that you set the isDistinct property of the channel to true. Otherwise, if the isDistinct property is set to false, multiple 1-to-1 channels between the same two users, each with their own chat history and data, may be created even if a channel already exists between them.

Open channelGroup channel
const params: OpenChannelCreateParams = {
    name = NAME,
    channelUrl = UNIQUE_CHANNEL_URL,
    coverUrlOrImage = FILE | COVER_URL,
    operatorUserIds = ['Hoon', 'Doo'],
    data = DATA,
    customType = CUSTOM_TYPE,
    // ...
};
const channel: OpenChannel = await sb.openChannel.createChannel(params);

OpenChannelCreateParams

Property nameTypeDescription

name

string

Specifies the channel topic or the name of the channel.

coverUrlOrImage

string or File

Specifies the cover image URL of the channel, or uploads a file for the cover image.

channelUrl

string

Specifies the URL of the channel. Only numbers, alphabetic characters, and underscores are allowed. The length must be between 4 and 100 characters. If the channelUrl property isn't specified, a URL is automatically generated.

operatorUserIds

string[]

Specifies an array of one or more IDs of the users to register as operators of the channel. Operators can delete any messages and view all messages in the channel without any filtering or throttling.

data

string

Specifies additional channel information such as a long description of the channel or a JSON formatted string.

customType

string

Specifies the custom channel type which is used for channel grouping.

GroupChannelCreateParams

Property nameTypeDescription

name

string

Specifies the channel topic or the name of the channel.

coverUrl

string

Specifies the cover image URL of the channel. Alternatively, you can upload a file for the cover image of the channel using the coverImage property.

channelUrl

string

Specifies the URL of the channel. Only numbers, alphabetic characters, and underscores are allowed. The length must be between 4 and 100 characters. If the channelUrl property isn't specified, a URL is automatically generated.

operatorUserIds

string[]

Specifies an array of one or more IDs of the users to register as operators of the channel. Operators can delete any messages and view all messages in the channel without any filtering or throttling.

data

string

Specifies additional channel information such as a long description of the channel or a JSON formatted string.

customType

string

Specifies the custom channel type which is used for channel grouping.

Using the getCoverUrl() and updateChannel() methods, you can get and update the cover image URL of a channel.

Note: You can also use the Chat API to create open channels and group channels. For group channels, using the Chat API helps you control channel creations and member invitations on your server side.


Supergroup channel

Creating a Supergroup channel follows the same process as creating a group channel with one exception of the isSuper property. The GroupChannelCreateParams object includes the isSuper property, which determines whether a newly created channel will be a Supergroup channel or a regular group channel. By setting it to true, a new Supergroup channel is created.

Because the distinct option isn't available for Supergroup channels, the isDistinct property is set to false by default when creating a Supergroup channel.

const params: GroupChannelCreateParams = {
    isSuper: true,
};
const channel: GroupChannel = await sb.groupChannel.createChannel(params);