telegram-rich-user

n8n node to edit Telegram RichMessage via MTProto as a user account, using an existing GramPro credential.

Package Information

Released: this month
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.0

Documentation

n8n-nodes-telegram-rich-user

A deliberately small n8n community node for one task: edit an existing Telegram RichMessage over MTProto as a normal Telegram user.

It is intended to be installed alongside Telegram GramPro and reuses GramPro's existing credential type (telegramGramProApi). The package does not replace or modify GramPro.

Why

Telegram's current MTProto layer supports messages.editMessage with rich_message, but GramPro 6.0.4 does not expose that field in its Edit Message operation.

This node sends:

  • the existing chat/channel;
  • the existing message ID;
  • Api.InputRichMessageHTML;
  • through Api.messages.EditMessage.

So the target use case is: same MessageId, same place in the channel feed, RichMessage formatting, user-account semantics.

Requirements

  • self-hosted n8n;
  • n8n-nodes-telegram-grampro installed;
  • a valid GramPro user credential (telegramGramProApi);
  • teleproto 1.229.x or newer;
  • the Telegram account must have permission to edit the target channel post.

Test payload

Use a disposable test message first. Example Rich HTML:

<h5>TEST RichMessage edit</h5>
<p><tg-emoji emoji-id="5203983869929344827">📍</tg-emoji> <b>Место:</b> тест</p>
<hr/>
<p><tg-emoji emoji-id="5431653802753159903">🎟️</tg-emoji> Билеты</p>

For KinoBaton use @kinobatton and the ID of a temporary message.

Important

Do not switch a production workflow until a disposable-message test confirms all four conditions:

  1. MessageId stays the same.
  2. Heading/divider remain RichMessage blocks.
  3. Custom emoji remain custom emoji.
  4. Telegram clients render the edited post correctly.

Publishing

This archive already contains the runtime dist file, so it does not require a TypeScript build before publishing.

npm login
npm test
npm pack --dry-run
npm publish --access public

If npm reports that the package name is already taken, change only the name field in package.json and publish under a unique name.

Discussion