The idea is:
Add native, secure support for dynamic inline keyboard buttons in the Telegram node’s “Send Message” operation. This should allow button text and actions to be set from previous node outputs (not just static/manual entries), and, critically, should allow the use of n8n’s Credentials system so that Telegram bot tokens are never exposed in workflow code or URLs.
My use case:
I am building Telegram bots that require interactive, dynamic inline keyboards (e.g., navigation menus, quick replies, confirmation buttons, etc.).
Currently, n8n’s Telegram node does not support dynamic button content, and—worse—forces users to include their bot token directly in HTTP Request node URLs. This is a major security risk, as it exposes sensitive credentials in workflow code, exports, and potentially logs.
I think it would be beneficial to add this because:
-
Security: Exposing bot tokens in workflow code is a critical vulnerability. If a workflow is shared or an account is compromised, attackers can take over the bot.
-
Industry standard: Competing platforms (Make, Zapier) allow secure credential storage and dynamic button creation natively.
-
User experience: The current workaround is not only insecure but also complex and error-prone, making n8n less attractive for Telegram automation.
-
n8n’s mission: Secure, low-code automation should not require users to compromise on credential safety.
Any resources to support this?
-
Telegram Bot API documentation for reply_markup: Telegram Bot API
-
Telegram’s guide to inline keyboards: Telegram Bot Features
-
Related feature request: Telegram Inline Keyboard as JSON: Telegram - Inline Keyboard as json
Are you willing to work on this?
I have development skills, but this must be implemented natively by the n8n team to ensure security and proper integration.