All nodes/Integrations/Telegram

Telegram Manage Chat

Chat administration: title, description, read-only mode for everyone (mute_everyone/unmute_everyone via setChatPermissions), creating and revoking invite links, approving or declining join requests, and the 'typing…' status. The bot must be an administrator. Supports dry_run. Requires a Telegram Config.

Telegram Manage Chat
Telegram ConfigSuccess
Error

Type in the graph: telegram_chat_manage

Exec

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

Try it

Minimal working workflow

Entry
Telegram Manage Chat
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 changes the chat itself: title, description, read-only mode, invite links, join requests and a transient status such as “typing…”. Actions against people — ban, mute, delete, pin — live in the sibling node Moderate. The split is deliberate: a reader of the graph can see at a glance whether a branch can hurt a member.

How it works

The bot must be an administrator of the chat; almost every action is refused otherwise. “Read-only mode for everyone” changes the default permissions of all non-admins — the announcement-style switch of a supergroup — rather than restricting one person.

The chat-action status is a hint, not a state: Telegram clears it after a few seconds, or as soon as the bot posts. In a turn started inside a forum topic the status appears in that same topic.

Common mistakes

  • Dry run verifies nothing. It returns the plan without calling Telegram at all, so a green dry run is no evidence that the bot holds the rights.
  • A join request can only be approved while it is pending. And the workflow only learns about it when the “Join requests” update type is ticked in the deploy panel.
  • Revoking a link needs the link itself. Keep the invite_link from the output of the earlier create step — Telegram cannot find it by the link’s name.
  • A refusal stops the node instead of arriving as a success: false field. A bot that has lost its admin rights must fail the branch rather than leave the run green. For softer handling, turn on the error output.
  • Chat ID is numeric only@channelusername is not accepted. A blank field means the chat of the running Telegram turn, so a run started from web chat, the API or a schedule stops with an error.
  • A member limit of 0 means unlimited, and the link name is visible to administrators only — the person joining never sees it.
  • Lifting read-only applies a fixed permission set, not “whatever was there before”. It restores posting and inviting, but deliberately does not restore the rights to change chat info, pin messages or manage topics — otherwise un-muting would promote an ordinary member. If the chat had those, set them back inside Telegram by hand.

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)

Actionactionstringsend_chat_action

Chat administration (the bot must be an administrator). mute_everyone/unmute_everyone change the DEFAULT permissions of every non-admin via setChatPermissions; send_chat_action shows a transient status such as 'typing…'.

Options: set_title — Rename the chat, set_description — Set the chat description, mute_everyone — Read-only mode for everyone, unmute_everyone — Lift read-only mode, create_invite_link — Create an invite link, revoke_invite_link — Revoke an invite link, approve_join_request — Approve a join request, decline_join_request — Decline a join request, send_chat_action — Show a status such as 'typing…'

Chat actionchat_actionstringtyping

Which status to show. Telegram clears it after a few seconds or when the bot posts, so it is a hint, not a state.

Options: typing — typing…, upload_photo — sending a photo, record_video — recording a video, upload_video — sending a video, record_voice — recording a voice message, upload_voice — sending a voice message, upload_document — sending a file, choose_sticker — choosing a sticker, find_location — finding a location, record_video_note — recording a video note, upload_video_note — sending a video note

shown when action = send_chat_action

Chat IDchat_idstring""

Numeric Telegram chat_id (an @username is not accepted here). Blank = the chat of the running Telegram turn. Templates are supported.

supports templates

Descriptiondescriptionstring""

The new chat description.

supports templates

shown when action = set_description

Dry rundry_runbooleanfalse

Do not call Telegram — only report the plan.

Invite linkinvite_linkstring""

The link to revoke.

supports templates

shown when action = revoke_invite_link

Link namelink_namestring""

Caption for the link — visible to administrators only.

supports templates

shown when action = create_invite_link

Titletitlestring""

The new chat title.

supports templates

shown when action = set_title

User IDuser_idstring""

Numeric Telegram user_id. Templates are supported.

supports templates

shown when action = approve_join_request | decline_join_request

Advanced
Member limitmember_limitinteger0

How many people may join through the link. 0 = unlimited.

shown when action = create_invite_link

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.