Work Approach Pricing Notes Contact

EditMessage instead of a new message: why it matters in Telegram bots

Most bots spam new messages on every user action. This creates chat clutter and breaks UX. Here is how to correctly update a message in place using editMessageText and editMessageReplyMarkup.

All notes

When a user taps a button in your Telegram bot, the naive approach is to send a brand-new message with updated content. After a few interactions the chat looks like a dump — 10 near-identical messages stacked on top of each other.

The correct approach: use editMessageText to update the text of the existing message, and editMessageReplyMarkup to swap out the inline keyboard. The message stays in place, the chat stays clean.

How it works in Make

In Make, the Telegram Bot module has separate actions for sending and editing. The critical piece is storing the message_id of the original message — you get it from the webhook payload when the user first triggers the bot, and you pass it to every subsequent edit call.

Store message_id in a variable or a data store. On every callback_query, pull it out and use it in editMessageText instead of sending a new message.

When you can't avoid a new message

There are edge cases: you can only edit messages sent by the bot itself (not user messages), and you cannot edit messages older than 48 hours. In those cases, send a new message and delete the old one using deleteMessage — same clean result.

Practical result

For the Cakes by Sofy project, switching to editMessage cut the number of messages in the admin chat by ~80%. The operator sees one persistent message that updates as order status changes — not a thread of 15 status updates.

Have a similar process?

Tell me where leads, money or manual time are leaking. I'll look at what can become a system.

DM on Telegram