Telegram is a cloud-based messaging app with a focus on security and speed. Build bots to send messages, manage chats, and interact with users.
Telegram is a cloud-based messaging app with a focus on security and speed. Build bots to send messages, manage chats, and interact with users. On Nagent, Telegram is exposed as a fully-configurable team chat integration that any agent can call — 18 actions, and API key authentication. No code is required to wire Telegram into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Telegram to automate the kinds of tasks team chat teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Telegram into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Telegram, with input parameters and output schema. Drop these into any step of an agent built in Helix.
TELEGRAM_ANSWER_CALLBACK_QUERYUse this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert.
Input parameters
URL that will be opened by the user's client. If you have created a Game and accepted the conditions via @Botfather, specify the URL that opens your game – note that this will only work if the query comes from a callback_game button.
Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters
The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0.
If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false.
Unique identifier for the query to be answered Must be answered promptly after receipt; the ID expires quickly and delayed responses leave users with stuck spinners in the UI.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_CREATE_CHAT_INVITE_LINKGenerate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights.
Input parameters
Unique identifier for the target chat or username of the target supergroup or channel
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_DELETE_MESSAGEDelete a message, including service messages. Limitations: cannot delete messages older than 48 hours in groups, forwarded messages, or content in protected chats (returns 400 'message can’t be deleted'). Bot must have delete/manage rights in the target chat; works reliably only on bot-authored messages in groups. Verify permissions via TELEGRAM_GET_CHAT or TELEGRAM_GET_CHAT_ADMINISTRATORS before calling. On flood control, Telegram returns HTTP 429 with a retry_after field; honor that backoff value.
Input parameters
Unique identifier for the target chat or username of the target channel In linked channel/discussion group pairs, deleting in one does not remove the corresponding post in the other — issue separate deletion calls with the correct chat_id for each target.
Identifier of the message to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_EDIT_MESSAGEEdit text messages sent by the bot. Only bot-authored messages can be edited; editing messages from other users will fail. In groups, the bot must have edit permissions.
Input parameters
New text of the message, 1-4096 characters after entities parsing
Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel
Required if inline_message_id is not specified. Identifier of the message to edit
Mode for parsing entities in the message text. Options: 'Markdown', 'MarkdownV2', 'HTML'
JSON-serialized object for an inline keyboard
Required if chat_id and message_id are not specified. Identifier of the inline message
Disables link previews for links in this message
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_FORWARD_MESSAGEForward messages of any kind. Service messages can't be forwarded.
Input parameters
Unique identifier for the target chat or username of the target channel
Message identifier in the chat specified in from_chat_id
Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername)
Sends the message silently. Users will receive a notification with no sound.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_GET_CHATGet up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.). The bot must be a member of or have access to the target chat; calls fail if the bot was never added, was removed, or is blocked.
Input parameters
Unique identifier for the target chat or username of the target supergroup or channel Numeric IDs for groups and channels are negative integers. Username must start with '@'; plain names without '@', full URLs, or free text will not resolve. Use TELEGRAM_GET_UPDATES to obtain reliable chat_id values.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_GET_CHAT_ADMINISTRATORSGet a list of administrators in a chat. On success, returns an Array of ChatMember objects containing information about all chat administrators except other bots. Only meaningful for supergroups and channels; private chats yield no useful data. The bot must be a member of the chat; if the bot has admin rights, its own entry will appear in the result, useful for verifying its permissions before moderation actions.
Input parameters
Unique identifier for the target chat or username of the target supergroup or channel
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_GET_CHAT_HISTORYGet chat history messages via the getUpdates polling method, filtered by chat_id. Returns only updates from the specified chat. Bot can only retrieve messages sent after it joined the chat; missing older messages is expected. Requires no active webhook — a webhook causes HTTP 409 conflict; delete it before using this tool. Empty result arrays (ok=true) indicate no accessible messages, not a failure. Returned message dates are Unix timestamps in UTC seconds.
Input parameters
Limits the number of messages to be retrieved. Values between 1-100 are accepted. Defaults to 100. To paginate beyond 100 messages, use coordinated offset or message_id values across sequential calls.
Sequential number of the first message to be returned; negative values are allowed. Default is 0.
Unique identifier for the target chat or username of the target supergroup or channel. Results are filtered to only include updates from this specific chat.
Identifier of a message in the chat as a starting point for getting history. If not specified, returns recent messages.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_GET_CHAT_MEMBERGet a chat member's status/role (including the bot itself) to preflight permissions and troubleshoot 403/empty-history issues. Use before sending messages to verify bot membership and permissions.
Input parameters
Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
Unique identifier of the target user
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_GET_CHAT_MEMBERS_COUNTGet the number of members in a chat. The bot must be an administrator in the chat for this to work. Insufficient admin permissions surface as authorization errors, not as a zero or empty count.
Input parameters
Unique identifier for the target chat or username of the target supergroup or channel Usernames must be prefixed with '@'; plain chat names without '@' are invalid.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_GET_MEGet basic information about the bot using the Bot API getMe method. Returns fields like id, username, first_name, and capabilities. If the response returns ok=false, the bot token is invalid or revoked and must be replaced before any other API calls. Bot name, bio, and profile description are read-only via the Bot API; modify them via BotFather.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_GET_UPDATESUse this method to receive incoming updates using long polling. An Array of Update objects is returned. IMPORTANT: This method will not work if an outgoing webhook is set up. Webhooks and getUpdates are mutually exclusive — call deleteWebhook first to switch modes (409 Conflict otherwise). Notes: - Only one method (webhook or polling) can be active at a time - Updates available for up to 24 hours if unclaimed - Recalculate offset after each response to avoid duplicates - Empty result array (ok=true) is valid, meaning no new updates - On HTTP 429, honor the retry_after value; keep polling to ~1 request/second - Only chats with updates since the bot joined or last offset appear in results - Update objects vary by type; always check update.message and update.message.text exist before accessing
Input parameters
Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100
Identifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates
Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only
A JSON-serialized list of the update types you want your bot to receive. Specify an empty list to receive all update types except chat_member
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_SEND_DOCUMENTSend general files (documents) to a Telegram chat using the Bot API. Prefer over TELEGRAM_SEND_PHOTO when original file format or image resolution must be preserved. Rapid sends trigger flood control (HTTP 429 with `retry_after` seconds); limit to ~1 message/second per chat and wait the specified `retry_after` duration before retrying.
Input parameters
Document caption (may also be used when resending documents by file_id), 0-1024 characters after entities parsing
Unique identifier for the target chat or username of the target channel
File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new file using multipart/form-data. More info on Sending Files: https://core.telegram.org/bots/api#sending-files
Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side
Mode for parsing entities in the document caption. Options: 'Markdown', 'MarkdownV2', 'HTML'
JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user
If the message is a reply, ID of the original message
Sends the message silently. Users will receive a notification with no sound.
Disables automatic server-side content type detection for files uploaded using multipart/form-data
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_SEND_LOCATIONSend point on the map location to a Telegram chat using the Bot API.
Input parameters
Unique identifier for the target chat or username of the target channel
For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified.
Latitude of the location
Longitude of the location
Period in seconds for which the location will be updated (see Live Locations), should be between 60 and 86400
JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user
The radius of uncertainty for the location, measured in meters; 0-1500
If the message is a reply, ID of the original message
Sends the message silently. Users will receive a notification with no sound.
For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_SEND_MESSAGESend a text message to a Telegram chat using the Bot API. Bots must be members of target groups/channels with post rights. Rate limit: ~1 msg/sec per chat, ~30 msg/sec globally; exceeding returns 429 with retry_after seconds that must be honored.
Input parameters
Text of the message to be sent, 1-4096 characters after entities parsing Content exceeding 4096 characters must be split across multiple calls.
Unique identifier for the target chat or username of the target channel (in the format @channelusername) Bots cannot initiate private chats with users who haven't messaged the bot first, and cannot message other bots. Verify accessibility via TELEGRAM_GET_UPDATES or TELEGRAM_GET_CHAT before sending.
Mode for parsing entities in the message text. Accepted values: 'MarkdownV2', 'Markdown', 'HTML'. All special characters must be properly escaped; unescaped or unmatched characters return 400 'can't parse entities'. Use plain text (omit parse_mode) if parsing fails.
JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
If the message is a reply, ID of the original message
Sends the message silently. Users will receive a notification with no sound.
Disables link previews for links in this message
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_SEND_PHOTOSend photos to a Telegram chat using the Bot API. Telegram compresses and re-encodes images; use TELEGRAM_SEND_DOCUMENT to preserve original resolution/format. Each call produces a separate post; no media-group/album support. Returns HTTP 429 with `retry_after` seconds when sending too rapidly.
Input parameters
Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data URL must be a publicly reachable HTTPS URL (no authentication, no expiring/signed links); non-reachable URLs return 400 'failed to get HTTP URL content'. Base64-encoded data and inline bytes are not accepted — extract a public URL from image-generating tools instead.
Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing
Unique identifier for the target chat or username of the target channel Derive from TELEGRAM_GET_CHAT or TELEGRAM_GET_UPDATES; unverified IDs return 400 'chat not found'.
Mode for parsing entities in the photo caption. Options: 'Markdown', 'MarkdownV2', 'HTML' Unmatched or unescaped special characters (e.g., `*`, `_`) trigger 400 'can't parse entities' — escape all special characters before sending.
JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user
If the message is a reply, ID of the original message
Sends the message silently. Users will receive a notification with no sound.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_SEND_POLLSend a native poll to a Telegram chat using the Bot API.
Input parameters
Poll type, defaults to 'regular'.
Unique identifier for the target chat or username of the target channel
A list of answer options, 2-10 strings 1-100 characters each
Poll question, 1-300 characters
Pass True, if the poll needs to be immediately closed. This can be useful for poll preview.
Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period.
Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing
Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date.
True, if the poll needs to be anonymous, defaults to True
JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user
0-based identifier of the correct answer option, required for polls in quiz mode
If the message is a reply, ID of the original message
Sends the message silently. Users will receive a notification with no sound.
Mode for parsing entities in the explanation.
True, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
TELEGRAM_SET_MY_COMMANDSUse this method to change the list of the bot's commands. See https://core.telegram.org/bots#commands for more details about bot commands.
Input parameters
JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. Scoped commands override the global default only for matching users/chats; omitting scope sets the global list.
A list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified. Each command name must be 1–32 characters (lowercase letters and underscores only); each command description must be 1–256 characters.
A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 31 agents privately built on Nagent that already use Telegram.
Build on Nagent
Connect Telegram to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Telegram, and click "Connect Now." You'll authenticate with an API key — Nagent handles credential storage and refresh automatically. Once connected, Telegram is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Telegram is connected, you configure its 18 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Telegram steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Telegram event fires, the agent kicks off automatically.
Every Telegram action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Telegram ships with 18 pre-built team chat actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Telegram together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Telegram-based workflows tailored to your business.