Implementing text link callbacks in Telegram bot without buttons

I’m working on a Telegram bot that has a /menu command which displays a collection of items. When users run this command, they see something like:

Available options:

  • Sarah
  • Mike
  • John

I want to make each name clickable so when someone taps on them, they get more details about that person. The problem is I can’t figure out how to handle these click events using the Telegram Bot API. I specifically don’t want to use inline keyboard buttons for this. Is there a way to detect when users click on text that appears as a hyperlink and trigger some kind of callback function? I’ve been looking through the documentation but haven’t found a clear solution for handling text link interactions without using the standard button approach.

totally get ur frustration! but yeah, telegram’s setup means u can’t have clickable text triggers. it’s a bummer, but using inline buttons or direct commands is the only way. kinda limits creativity, but that’s how they roll.

Been fighting this for months. Telegram treats regular text links as visual only - no event system like web development has. I ended up using a hybrid approach: show the names as regular text, then add instructions like “Reply with the person’s name for details” below the list. Users type the name they want, and I parse their message against my database. Not as elegant as clickable text, but users catch on fast and it works way better on mobile than tapping tiny buttons. Just make your parsing flexible for typos and partial matches.

Unfortunately, Telegram’s Bot API doesn’t support callback handling for regular text links - only inline keyboard buttons work, which you’re trying to avoid. I hit this exact limitation building a directory bot last year and had to completely change my approach. You’ve got a few workarounds though: numbered commands like /person1, /person2, or let users reply with the name they want details about. I’ve also seen people use inline mentions with usernames, but that only works if those people actually have Telegram accounts. The API just wasn’t built to capture clicks on random text elements - probably for security and spam reasons.