---
source_url: https://www.pubnub.com/docs/chat/unity-chat-sdk/build/features/messages/forward
title: Forward messages
updated_at: 2026-06-01T12:02:09.993Z
---

> Documentation Index
> For a curated overview of PubNub documentation, see: https://www.pubnub.com/docs/llms.txt
> For the full list of all documentation pages, see: https://www.pubnub.com/docs/llms-full.txt


# Forward messages

Forward messages between channels to share information or facilitate collaboration.

Use `Forward()` on a message object or `ForwardMessage()` on a channel object. Both produce the same result with different input parameters.

:::note Additional info in the forwarded message
Forwarded messages include `originalPublisher` (original sender's user ID) and `originalChannelId` (source channel ID).
:::

### Method signature

These methods take the following parameters:

* Forward() 1message.Forward(string channelId)
* ForwardMessage() 1channel.ForwardMessage(Message message)

#### Input

| Parameter | Required in Forward() | Required in ForwardMessage() | Description |
| --- | --- | --- | --- |
| channelId | string | Optional |  | Yes | No | Unique identifier of the channel to which you want to forward the message. You can forward a message to the same channel on which it was published or to any other. |
| message | Message | Optional |  | No | Yes | [Message object](https://www.pubnub.com/docs/chat/unity-chat-sdk/learn/chat-entities/message) that you want to forward to the selected channel. |

#### Output

An awaitable `Task`.

### Sample code

Forward a message from the `support` channel to the `incident-management` channel.

* Forward() using System.Threading.Tasks; using PubnubApi; using PubnubChatApi; using UnityEngine; // Configuration PubnubChatConfig chatConfig = new PubnubChatConfig(); PNConfiguration pnConfiguration = new PNConfiguration(new UserId("myUniqueUserId")) { SubscribeKey = "demo", PublishKey = "demo", Secure = true }; // Initialize Unity Chat var chatResult = await UnityChat.CreateInstance(chatConfig, pnConfiguration); if (!chatResult.Error) { chat = chatResult.Result; } var channelResult = await chat.GetChannel("support"); if (channelResult.Error) { Debug.Log("Couldn't find channel!"); return; } var channel = channelResult.Result; // reference a message on the "support" channel var messageResult = await channel.GetMessage("16686902600029072"); if (messageResult.Error) { Debug.Log("Couldn't find message!"); return; } var message = messageResult.Result; // use the "forward()" method to send the message to the "incident-management" channel await message.Forward("incident-management");
* ForwardMessage() using System.Threading.Tasks; using PubnubApi; using PubnubChatApi; using UnityEngine; // Configuration PubnubChatConfig chatConfig = new PubnubChatConfig(); PNConfiguration pnConfiguration = new PNConfiguration(new UserId("myUniqueUserId")) { SubscribeKey = "demo", PublishKey = "demo", Secure = true }; // Initialize Unity Chat var chatResult = await UnityChat.CreateInstance(chatConfig, pnConfiguration); if (!chatResult.Error) { chat = chatResult.Result; } var originalChannelResult = await chat.GetChannel("support"); if (originalChannelResult.Error) { Debug.Log("Couldn't find original channel!"); return; } var originalChannel = originalChannelResult.Result; // reference a message on the "support" channel var messageResult = await originalChannel.GetMessage("16686902600029072"); if (messageResult.Error) { Debug.Log("Couldn't find message!"); return; } var message = messageResult.Result; // reference the "incident-management" channel to which you want to forward the message var channelResult = await chat.GetChannel("incident-management"); if (channelResult.Error) { Debug.Log("Couldn't find channel!"); return; } var channel = channelResult.Result; // use the "ForwardMessage()" method to send the message to the "incident-management" channel await channel.ForwardMessage(message);