/ SDKs / .NET
SDKs
Chat SDKs .NET v4
Chat SDKs .NET
Chat SDKs
.NET
Version 4

Create a message thread

Copy link

When a user replies to a message in a channel, it creates a message thread, which refers to a collection of messages consisting of a parent message and its replies. Message threading lets users ask questions, give feedback, or add context to a specific message without disrupting the flow of conversation. It can have the following elements.

  • A message can have a thread of replies.

  • A message that has a thread of replies is a parent message.

  • A parent message and its threaded replies are collectively called a message thread.

  • Every message within a thread, whether it's parent or reply, is a threaded message.

  • A message that doesn't have any replies is an unthreaded message.

Message threading has the following limitations.

  • Only 1-depth threads are supported, meaning you can only add reply messages to non-reply messages. You can't add a reply to a reply message.

  • Message threading is limited to text and file messages. You can't send admin messages as replies or add replies to admin messages.

You can reply to a specific message in a channel through the SendUserMessage() or SendFileMessage() method. To do so, you should create a SbUserMessageCreateParams or a SbFileMessageCreateParams object and then specify the ParentMessageId property of the object. Sending reply messages works the same way as sending regular messages to a channel except replies have an additional ParentMessageId property.


Reply with a text message

Copy link

When replying to a message through the SendUserMessage() method, you should specify and pass a SbUserMessageCreateParams object to the method as a parameter. The SbUserMessageCreateParams class is derived from the SbBaseMessageCreateParams class and can access all the methods and properties of SbBaseMessageCreateParams.

SbUserMessageCreateParams userMessageCreateParams = new SbUserMessageCreateParams(TEXT_MESSAGE);
userMessageCreateParams.ParentMessageId = PARENT_MESSAGE_ID;

channel.SendUserMessage(userMessageCreateParams, (inMessage, inError) =>
{
    if (inError != null)
        return; //Handle error.

    // A reply to a specific message in the form of a text message is successfully sent.
});

SbUserMessageCreateParams

Copy link

This table only contains properties shown in the code above. To see the comprehensive list of all available methods and properties, see SbUserMessageCreateParams.

Property nameTypeDescription

ParentMessageId

long

Specifies the unique ID of a parent message which has a thread of replies. If the message sent through the SendUserMessage() method is a parent message, the value of this property is set to 0. If the message is a reply to a parent message, the value is the message ID of the parent message.

Message

string

Specifies the message to send.

ReplyToChannel

bool

Determines whether to send the message to the channel as well. To use this property, the value of ParentMessageId must be specified. (Default: false)


Reply with a file message

Copy link

When replying with a file message through the SendFileMessage() method, you should specify and pass a SbFileMessageCreateParams object to the method as a parameter. The SbFileMessageCreateParams class is derived from the SbBaseMessageCreateParams class and can access all the methods and properties of SbBaseMessageCreateParams.

SbFileMessageCreateParams fileMessageCreateParams = new SbFileMessageCreateParams(FILE);
fileMessageCreateParams.ParentMessageId = PARENT_MESSAGE_ID;

channel.SendFileMessage(fileMessageCreateParams, inProgressHandler: null, (inMessage, inError) =>
{
    if (inError != null)
        return; //Handle error.

    // A reply to a specific message in the form of a file message is successfully sent.
});

SbFileMessageCreateParams

Copy link

This table only contains properties shown in the code above. To see the comprehensive list of all available methods and properties, see SbFileMessageCreateParams.

Property nameTypeDescription

ParentMessageId

long

Specifies the unique ID of a parent message which has a thread of replies. If the message sent through the SendFileMessage() method is a parent message, the value of this property is set to 0. If the message is a reply to a parent message, the value is the message ID of the parent message.

File

SbFileInfo

Specifies the binary file data. When the value of File is specified, the value of FileUrl can't be specified. (Default: null)