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.
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
- Execute
- Execute + Data
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_linkfrom 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: falsefield. 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 —
@channelusernameis 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
| Port | Wire | Payload | Notes |
|---|---|---|---|
Telegram Configtelegram_config | Datadata | — | shown when connection_source ≠ "auto" |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Successoutput | Execute + Dataexecute_data | object | |
Erroron_error | Execute + Dataexecute_data | — | shown when expose_error_output = true |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Connection sourceconnection_source | string | auto | 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: |
Actionaction | string | send_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: |
Chat actionchat_action | string | typing | 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: shown when action = send_chat_action |
Chat IDchat_id | string | "" | Numeric Telegram chat_id (an @username is not accepted here). Blank = the chat of the running Telegram turn. Templates are supported. supports templates |
Descriptiondescription | string | "" | The new chat description. supports templates shown when action = set_description |
Dry rundry_run | boolean | false | Do not call Telegram — only report the plan. |
Invite linkinvite_link | string | "" | The link to revoke. supports templates shown when action = revoke_invite_link |
Link namelink_name | string | "" | Caption for the link — visible to administrators only. supports templates shown when action = create_invite_link |
Titletitle | string | "" | The new chat title. supports templates shown when action = set_title |
User IDuser_id | string | "" | Numeric Telegram user_id. Templates are supported. supports templates shown when action = approve_join_request | decline_join_request |
| Advanced | |||
Member limitmember_limit | integer | 0 | 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.