All nodes/Integrations/Telegram

Telegram Forward Message

Relays a message to another chat: forward keeps the 'Forwarded from' header, copy re-sends the content without naming the source and can replace the caption. The classic moderation shape is 'archive before you delete' — copy the offending message into a log chat BEFORE removing it. Both chats accept a numeric id or @channelusername; a blank From chat means the chat of the running turn. Requires a Telegram Config.

Telegram Forward Message
Telegram ConfigSuccess
Error

Type in the graph: telegram_forward

Exec

An error branch can be enabled (expose_error_output) to handle failures on their own path.

Try it

Minimal working workflow

Entry
Telegram Forward Message
Exit
  • Execute
  • Execute + Data
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

Runs as pasted

When to use it

This node moves an existing message into another chat. To send text of your own, use Send Telegram Message: forwarding cannot compose, it relays — photo, document or voice note included, without downloading anything.

The two modes differ in social meaning rather than mechanics. Forward keeps the “Forwarded from” header, so provenance survives, which is what a moderation log wants. Copy re-sends the content without naming the source and lets you replace the caption.

How it works

The classic shape is “archive before you delete”: relay the offending message into a private log chat, and only then remove it with Moderate. Once deleted there is nowhere to recover it from — the recorded group history keeps the text and a reference to the attachment, never the bytes.

Both chat fields accept a numeric id or @channelusername. A blank From chat means the chat of the running Telegram turn.

Common mistakes

  • The destination chat is required. It has no “same chat” default — relaying a message into its own chat is rarely meaningful — so a blank field, or a template that rendered to an empty string, stops the node.
  • Order matters around deletion. Forwarding after the delete cannot work: the message is already gone.
  • The bot must be able to post in the destination. For a channel that means administrator rights, otherwise Telegram refuses and the node fails.
  • The caption applies to copy mode only. In forward mode the field does nothing — Telegram does not allow rewriting a forwarded message.
  • Silent affects delivery, not content, and it works in both modes.
  • A refusal stops the node. A relay that never happened must not look successful; turn on the error output for softer handling.

Inputs

PortWirePayloadNotes
Telegram Configtelegram_configDatadata

shown when connection_source ≠ "auto"

Outputs

PortWirePayloadNotes
SuccessoutputExecute + Dataexecute_dataobject
Erroron_errorExecute + Dataexecute_data

shown when expose_error_output = true

Configuration

FieldTypeDefaultDescription
Connection sourceconnection_sourcestringauto

Where this node gets its connection. 'From the run context' uses what the platform already knows (the Telegram bot this workflow is deployed to / this workspace's own file store) and needs no wiring. 'External connection' shows the resource port so a config node can be wired into it.

Options: auto — From the run context, external — External connection (wire a config node)

Captioncaptionstring""

Replace the caption of the copy (copy mode only).

supports templates

shown when mode = copy

Silentdisable_notificationbooleanfalse

Deliver without a notification sound.

From chat IDfrom_chat_idstring""

Target chat: numeric chat_id or @channelusername. Templates are supported, e.g. {{ nodes.entry.data.telegram.chat_id }}. Blank = the chat of the running Telegram turn (a run started anywhere else then fails: there is no chat to infer).

supports templates

Message IDmessage_idstring""

Numeric id of the message to act on. Templates are supported, e.g. {{ nodes.send_message_1.message_id }}.

supports templates

Modemodestringforward

forward — relay with the 'Forwarded from' header; copy — re-send the content without naming the source, optionally under a new caption.

Options: forward — Forward (keeps the source header), copy — Copy (anonymous, re-captionable)

To chat IDto_chat_idstring""

Destination chat: numeric chat_id or @channelusername. Templates are supported. Required — there is no sensible default for where a relayed message lands.

supports templates

Shared fields

Every node has these three — the platform adds them, not the node author.

  • expose_error_output — When enabled, show an execution output to connect nodes that run if this step fails.