What's the best way to integrate a Telegram channel into a Shopify store?

Hi everyone,

I run a Shopify store and use a Telegram channel to share product updates, restocks, and special offers with my customers. It’s worked really well, so I’d like to make it a bigger part of my store.

I’m wondering if there’s a simple way to show my latest Telegram posts on my Shopify storefront without relying on a bunch of third-party apps. Even just displaying recent announcements or having a clean channel feed on a page would be enough.

Has anyone here integrated Telegram with their Shopify store? If so, what approach did you use, and would you recommend it?

I’d love to hear any ideas or experiences. Thanks!

Hi @peterjamesswatson,
The official Telegram widget makes it simple to accomplish this without the need for any third-party programs. Here’s how to configure it:

Visit the Telegram Widget Page.

Choose the ‘Channel Widget’ option.

Customize the appearance (width, colors, etc.) by entering the URL to your channel.

Copy the code or script that was produced.

Navigate to Shopify Admin > Online Store > Themes > Edit Code.

Copy and paste that code into the desired area (such as index.json or a custom liquid block).

This is the simplest and most polished method for automatically updating your store’s feed. I hope this is useful.

If it work, please mark my cmment as solution.
Thanks!

Hey @peterjamesswatson ,

As far as I know, Shopify doesn’t have a built-in way to display a Telegram channel feed. If you want to avoid third party apps, one option is to use the Telegram Bot API or your own script to fetch recent posts and render them in a custom theme section.

If you just want to highlight announcements, another simple approach is to link to your Telegram channel and manually feature your latest updates on a page or in an announcement section.

I’d be interested to hear if anyone has found a simpler approach that doesn’t require an app.

Thank You !

Hi @peterjamesswatson ,

You can actually do this easily without installing any third-party Shopify apps. Telegram has an official, public web preview for channels (t.me/s/username), which you can easily embed onto your Shopify storefront for free using an .

Here is the quickest way to set it up:

Step 1: Make sure your channel is Public

The embed method only works if your Telegram channel is set to Public so that search engines and web browsers can read the feed.

Step 2: Add the Code to Shopify

  1. In your Shopify Admin, go to Online Store > Themes > click Customize on your active theme.
  2. Navigate to the page where you want to show the feed (or create a new custom page).
  3. Click Add Section in the sidebar and select Custom Liquid (or Custom HTML).
  4. Paste the following code into the block:
<iframe src="https://t.me/s/YOUR_CHANNEL_USERNAME" width="100%" height="600px" style="border: none; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.05);"></iframe>
  1. Just make sure to replace YOUR_CHANNEL_USERNAME in the code with your actual public Telegram channel handle.
  2. Click Save.

Give this a try and see if it fits the look you are going for!

Thanks!

The Telegram widget everyone’s pointing at works, but two caveats before you lean on it. It only embeds if the channel is public, and it iframes t.me, so themes with strict CSP or a cookie-consent gate sometimes end up blocking it and you get a blank block where the feed should be.

If you want something you actually control the look of and that survives Telegram changing their embed, the more durable route is pulling the channel posts through the Telegram Bot API on a schedule (a small job that reads new channel posts) and writing them into a metaobject. Your storefront then renders your own markup from that, no live iframe, styled to match the rest of the store. Bit more setup up front, but it doesn’t break when t.me shifts and you’re not at the mercy of their widget.

How often do you post to the channel? If it’s a few times a week, even a simple scheduled pull is plenty, no need for anything real-time.

+1 to lumine’s Bot-API-into-a-metaobject route, but one gotcha that’ll save you an afternoon: the Bot API only sees channel posts if the bot is an admin of the channel. If you’d rather not add a bot as admin, reading a public channel’s history needs the client API (something like Telethon) instead. Either way, since it’s a scheduled pull, add a simple “last successful fetch” timestamp and have it ping you if nothing’s landed in ~24h. The failure here isn’t a crash — it’s the job quietly dying while your storefront shows a frozen feed for weeks before anyone notices.

Thanks for the step-by-step explanation! I didn’t realize the official Telegram widget was that straightforward to set up. I’ll give it a try first since it sounds like the quickest solution. Appreciate you taking the time to lay it all out.

That’s a good point. I don’t necessarily need a live feed every second, so manually highlighting important updates could work too. I’ll also look into the Bot API if I decide I need something more automated later. Thanks for the suggestion!

Thanks for pointing out those caveats. I hadn’t thought about CSP or the possibility of the widget breaking because it’s iframe-based. My channel only gets updated a few times a week, so a scheduled pull sounds like a practical approach if I decide I want more control over the design. Really helpful insight.