Tutorial14 min read

Set Up Telegram Group Support for Your SaaS (2026 Guide)

What We're Building

By the end of this tutorial, you'll have a Telegram group where every customer conversation from your website appears as its own thread. Your team members can see and reply to any conversation. Replies go back to the customer on your website in real time. And you'll manage all of it from the Telegram app you already have on your phone.

No dashboards. No extra logins. Just Telegram.

I'm going to walk through every single step, including the small details that tutorials usually skip and that you then spend 45 minutes debugging on Stack Overflow. Let's go.

Before You Start

You need three things:

  1. A Telegram account (personal is fine, you don't need Telegram Premium)
  2. A website where you want the chat widget to appear
  3. About 15 minutes

That's it. You don't need to know how to code. You don't need a server. You'll copy and paste one snippet of HTML and configure some Telegram settings.

Step 1: Create Your Telegram Bot

Every Telegram-based support system needs a bot. The bot is the bridge between your website and your Telegram group. It receives messages from the chat widget and forwards them to your group, then takes your replies and sends them back to the website.

Here's how to create one:

  1. Open Telegram (phone or desktop, doesn't matter)
  2. Search for @BotFather in the search bar. It should have a blue checkmark. This is Telegram's official bot for managing bots.
  3. Start a conversation with BotFather and type /newbot
  4. BotFather will ask for a display name. Type something like YourCompany Support. This is what users see, so make it professional.
  5. Then it asks for a username. This must end in "bot". Something like YourCompanySupport_bot. If it's taken, try variations until you find one that works.
  6. BotFather will respond with your bot's API token. It looks something like 7123456789:AAHfS9gJ5kE3mN7pQ2rT8wX1yZ4cV6bA0dF

Save this token. You'll need it shortly. And don't share it publicly. Anyone with this token can control your bot.

While you're chatting with BotFather, let's also set a profile picture and description for your bot:

  1. Type /setuserpic and select your bot. Upload your company logo or a support icon.
  2. Type /setdescription and add something like "Customer support bot for YourCompany. This bot handles live chat from our website."

Optional but it looks way more professional when customers see bot info.

Step 2: Create the Support Group

Now we need a Telegram group where customer messages will arrive.

  1. In Telegram, tap the compose/new message button
  2. Select "New Group"
  3. Add your bot as a member (search for the username you just created)
  4. If you have team members, add them too. Everyone in this group will be able to see and reply to customer messages.
  5. Give the group a name. I'd suggest something clear like "Website Support" or "[YourCompany] Customer Chat"
  6. Tap Create

Now, immediately do this: go to the group settings and make your bot an admin. This is critical. Without admin permissions, the bot can't read messages in the group or create topic threads.

To make the bot an admin:

  1. Tap the group name at the top to open group info
  2. Tap "Edit" or the pencil icon
  3. Go to "Administrators"
  4. Tap "Add Administrator"
  5. Select your bot
  6. Give it these permissions: Change Group Info, Delete Messages, Pin Messages, Manage Topics, and Post Messages. You can toggle off the rest.
  7. Save

I cannot stress this enough: the bot must be an admin. About 80% of "it's not working" messages I see are because people forgot this step. The bot sits in the group as a regular member, silently receiving messages it can't do anything with, like an intern with no computer access.

Step 3: Enable Forum Topics

This is the feature that makes Telegram group support actually work well. Without Topics, every customer message goes into one big group chat, and after five concurrent conversations, nobody can follow anything. It's like trying to have five phone calls in the same room.

With Topics enabled, each customer conversation gets its own thread. Clean. Organized. Readable.

To enable Topics:

  1. Open the group settings (tap the group name)
  2. Tap "Edit" (or the pencil icon on desktop)
  3. Look for "Topics" and enable it
  4. Save

Once enabled, your group will look different. Instead of a flat message list, you'll see a forum-like view with individual topics. The "General" topic is created automatically.

When a new customer starts a chat on your website, the bot will create a new topic in this group with a name like "Chat with John (visitor #42)." All messages from that customer go into that topic. Your replies in that topic go back to that customer. No cross-contamination.

Quick note: Topics are available for groups with at least 1 member besides the creator. Since you've already added the bot, you're good. But if you created an empty group first, you might not see the Topics option until you add someone.

Step 4: Get Your Group's Chat ID

You need your Telegram group's Chat ID to configure the widget. There are a few ways to get it, but here's the simplest:

  1. Add the bot @RawDataBot to your group temporarily
  2. It will immediately post a message with the group's information, including the Chat ID
  3. The Chat ID will be a negative number, something like -1001234567890
  4. Copy that number
  5. Remove @RawDataBot from the group (you don't need it anymore)

Alternatively, if you're comfortable with APIs, you can call https://api.telegram.org/bot{YOUR_TOKEN}/getUpdates in your browser after sending a message in the group. Look for the chat.id field in the response. But the @RawDataBot method is easier for most people.

Step 5: Install the Chat Widget on Your Website

Now for the part that connects your website to your Telegram group. You'll add a small snippet of code to your website that creates a chat bubble in the bottom corner.

Add this before the closing </body> tag on your website:

<script
  src="https://cdn.tglivechat.com/widget.js"
  data-token="YOUR_BOT_TOKEN_HERE"
  data-group="YOUR_GROUP_CHAT_ID_HERE"
></script>

Replace YOUR_BOT_TOKEN_HERE with the token from Step 1, and YOUR_GROUP_CHAT_ID_HERE with the Chat ID from Step 4.

If you're using a platform, here's where to put it:

  • WordPress: Install a plugin like "Insert Headers and Footers" and paste the code in the footer section. Or add it to your theme's footer.php file before </body>.
  • Shopify: Go to Online Store > Themes > Edit Code > theme.liquid. Paste before </body>.
  • Next.js: Add it to your _document.tsx or use the Script component from next/script.
  • Static HTML: Just paste it in your HTML file. Easy.
  • Webflow: Project Settings > Custom Code > Footer Code.
  • Wix: Settings > Custom Code > Add in Body (end).

Step 6: Test Everything

Open your website in a browser. You should see a chat bubble in the bottom right corner. Click it. Type a message. Something simple like "Testing 1 2 3."

Now switch to Telegram. In your support group, you should see a new topic created with the visitor's information, and your test message inside it.

Reply to the message in Telegram. Switch back to your website. Your reply should appear in the chat widget.

If it works, congratulations. You're done with the basic setup.

If it doesn't work, check these things in order:

  1. Is the bot an admin in the group? This is the number one issue. Go back to Step 2 and double-check.
  2. Is Topics enabled? The widget needs Topics to create per-conversation threads.
  3. Is the bot token correct? Copy it again from BotFather. Make sure there are no extra spaces.
  4. Is the Chat ID correct? It should be a negative number starting with -100.
  5. Is the script actually loading? Open your browser's developer tools (F12), go to the Console tab, and look for errors. Then check the Network tab to see if widget.js loaded successfully.

Setting Up Team Workflows

Once the basic setup is working, let's talk about how to use this with a team. Because "everyone sees everything" can either be beautifully simple or complete chaos, depending on how you organize it.

Who Sees What

Everyone in the Telegram group sees every customer conversation. There's no way to restrict visibility to specific team members (unlike Intercom where you can assign conversations). This is by design in Telegram groups.

For small teams, this is actually a benefit. Everyone has full context. If Alice helped a customer yesterday and Bob sees them today, Bob can scroll up and see the entire history. No internal notes needed. No "let me check with my colleague" delays.

For larger teams, it can get noisy. If you have 50 active conversations and 8 team members, your Telegram is going to be buzzing constantly. In that case, you might want to mute the group notifications and check it periodically instead, which kind of defeats the purpose of using Telegram in the first place.

The sweet spot is 2 to 5 team members handling up to 30 concurrent conversations. Beyond that, consider a traditional tool.

Claiming Conversations

Since there's no formal assignment system, you need a team convention. Here are a few that work:

The "First Responder" rule: Whoever replies first owns the conversation. Simple and clear. If you open a topic and see someone else already replied, move on.

The emoji claim: Before replying, drop a specific emoji reaction (like a hand raise or a lightning bolt) on the customer's message. This signals to your team "I've got this one." Quick and visual.

The name tag: Start your first reply with your name in brackets, like "[Sarah] Hey! Let me help with that." Now everyone knows Sarah is handling it. A bit old school but it works perfectly.

Closing Conversations

Telegram Topics can be closed (locked). When a conversation is resolved, close the topic. This archives it from the main view and makes it clear that no further action is needed.

To close a topic: open it, tap the topic name at the top, and select "Close Topic." The topic is still searchable and readable, but it won't clutter your active view.

Some teams add a final message before closing, like "Resolved. Closing this thread." This creates a record that someone deliberately marked it as done, not just abandoned it.

Internal Notes

Here's a trick that's not immediately obvious. If you need to leave a note for your team about a conversation without the customer seeing it, don't type it in the topic thread (the customer might see it depending on the widget configuration).

Instead, use Telegram's "reply" feature on the topic in the General thread, or create a separate "Internal Notes" topic where you can reference conversations. It's a bit of a workaround, but it keeps internal communication separate from customer-facing chat.

Advanced Configuration

Custom Welcome Messages

Most Telegram-based chat widgets let you configure a greeting message. Set one up. Something like:

"Hey there! Thanks for reaching out. We usually reply within a couple of minutes. What can we help you with?"

This sets expectations and makes the widget feel alive even before someone responds. Without it, customers type into what feels like a void and aren't sure anyone will ever read their message.

Business Hours

If your team isn't available 24/7, configure an offline message. Something honest:

"We're currently offline (our hours are 9 AM to 6 PM EST, Mon to Fri). Leave your message and we'll get back to you first thing!"

This reduces the frustration of sending a message at midnight and getting no response. Managing expectations is half of good support.

Widget Customization

Most chat widgets let you customize the color scheme, position (bottom left vs. bottom right), greeting text, and team avatar. Take five minutes to make it match your brand. A chat bubble that matches your site's design feels integrated. A default blue bubble feels like a third-party afterthought.

Some things worth customizing:

  • Widget color to match your brand's primary color
  • Team avatar (your logo or a friendly team photo)
  • Widget title ("Chat with us" is fine, but "Talk to [YourCompany]" is better)
  • Position (right side is standard, but left side can work if your site has right-side elements)

Handling Common Scenarios

Customer Goes Offline

Sometimes a customer types a question and then closes the browser before you reply. Depending on the widget's configuration, your reply might be waiting for them next time they visit, or it might be lost. Make sure your widget supports persistent conversations (cookies or local storage that reconnect returning visitors to their existing thread).

Spam Messages

You will get spam. Bots, randos, people testing with "asdfgh." In Telegram, you can simply close the topic and move on. If spam becomes a significant problem, consider adding a pre-chat form that asks for an email address. This adds friction that deters most bots while giving you legitimate contact info.

Angry Customers

Angry customers in live chat are the same as angry customers everywhere. Stay calm, acknowledge their frustration, and focus on solving the problem. The good news about Telegram-based support is that you can take a breath before replying. There's no "customer is typing..." pressure or "Agent Sarah is online" indicator creating urgency. Reply when you've got a thoughtful response ready.

Multiple Products or Websites

If you run multiple websites, you have two options. First, use separate Telegram groups for each site. This keeps conversations organized by product. Second, use one group but configure the widget to tag messages with the source website, so you know which product the customer is asking about.

For most small businesses with one or two products, a single group works fine.

What This Setup Won't Do

In the spirit of being honest, here are the limitations you'll hit:

  • No ticket system. If a customer needs follow-up in three days, you'll need to remember that yourself. Set a phone reminder or use a separate task manager.
  • No customer profiles. You won't automatically know if this is a paying customer or a free user unless they tell you.
  • No performance metrics. Want to know your average response time last month? You'll have to guess or manually track it.
  • No file sharing from website to Telegram. Customers can type messages, but file uploads through the widget depend on the specific tool you're using.
  • No multi-language routing. You can't automatically route Spanish messages to your Spanish-speaking team member.

If any of these are dealbreakers, you need a more full-featured tool. And that's okay. But if you just need a fast, reliable way to talk to your customers from your phone, this setup will serve you surprisingly well.

Quick Summary

  1. Create a bot with @BotFather
  2. Create a Telegram group and add the bot as admin
  3. Enable Topics in group settings
  4. Get the group's Chat ID
  5. Install the widget snippet on your website
  6. Test it
  7. Set up team conventions for claiming and closing conversations

Total setup time: 10 to 15 minutes. And you'll wonder why you ever used a dashboard.

More articles