HomeShopify & E-commerceShopify new product announcement email and…

Shopify new product announcement email and Telegram automation with n8n

Shopify new product announcement email and Telegram automation with n8n











A Shopify new product announcement should go out the moment a product goes live, not whenever you next remember to write an email. This n8n workflow watches your store for new products and, the instant one is created, drafts a short launch blurb with Google Gemini, emails your subscriber list through Gmail, and posts the same news to a Telegram channel. No copy-paste, no scheduling, no missed launches. Below is the full build, the exact node setup, and a ready-to-import template.

What it does

The workflow connects three moving parts around one event: a product being created in Shopify. When that happens, it pulls the product title, price, image, vendor, and URL, sends that data to Gemini for a two-sentence announcement, then fans the finished message out to two channels at once.

  • You publish a new product in Shopify as you normally would.
  • n8n catches the products/create event automatically.
  • Gemini writes a short, upbeat launch line from the product details.
  • Your email list receives a clean HTML announcement through Gmail.
  • Your Telegram channel gets the same news posted at the same moment.

For a first look at how Shopify data reaches n8n, the pillar guide on n8n Shopify automation covers the connection basics that this workflow builds on.

Why it beats the default

Shopify has no built-in “announce this product everywhere” button. The manual routine is familiar: add the product, switch to your email tool, write a subject line, paste the product link, find the image, hit send, then repeat the whole thing in your Telegram community. Every step is a chance to delay, to forget, or to send a broken link.

Shopify Flow can react to product events, but it lives inside Shopify and cannot post to an arbitrary Telegram channel or call Gemini for copy. Zapier can, but you pay per task and stitching two destinations plus an AI step onto one trigger adds up fast. With n8n you own the logic, run it on the free tier or your own server, and pay nothing per announcement. One event, two channels, AI-written copy, zero recurring task fees.

What you need

  • An n8n instance (cloud or self-hosted). New to it? Start with the pillar on n8n Shopify automation.
  • A Shopify custom app access token. Follow connect Shopify to n8n (2026 method) for the current Dev Dashboard flow.
  • A Gmail account for the broadcast (free tier sends up to 500 messages per day).
  • A Google Gemini API key (free tier, gemini-2.5-flash).
  • A Telegram bot token and a channel where the bot is an admin.

Build time: about 30 minutes from scratch, or under 10 minutes with the template at the end of this guide.

Node-by-node list

Six nodes, in a straight line that splits into two at the end. Here is the full map before we configure anything.

  SHOPIFY NEW PRODUCT ANNOUNCEMENT

  [New product created]        Shopify Trigger  (products/create)
          |
  [Extract product fields]     Set              (title, price, image, url)
          |
  [Write blurb with Gemini]    HTTP Request     (Gemini generateContent)
          |
  [Build email and message]    Set              (email HTML + Telegram text)
          |
     +----+----+
     |         |
 [Email the  [Post to Telegram
  list]        channel]
 Gmail         Telegram
# Node Type Job
1 New product created Shopify Trigger Fires on the products/create event
2 Extract product fields Set Pulls title, price, image, vendor, URL from the payload
3 Write blurb with Gemini HTTP Request Sends product data to Gemini, gets a launch line back
4 Build email and message Set Assembles the HTML email body and the Telegram text
5 Email the list Gmail Sends the announcement to your list address
6 Post to Telegram channel Telegram Posts the same announcement to your channel

Step-by-step build

1. New product created (Shopify Trigger)

Add a Shopify Trigger node. Set Authentication to Access Token and attach your Shopify credential. Under Topic, choose products/create. n8n registers the webhook with Shopify for you, so nothing needs configuring inside the Shopify admin. When you save and activate the workflow, every newly created product will push its full payload here.

💡

Tip: Use the “Listen for test event” button, then create a draft product in Shopify to capture a real payload. Working against live data makes the next steps much easier.

2. Extract product fields (Set)

Add a Set (Edit Fields) node. The raw Shopify payload is large, so pull out only what the announcement needs. Create these assignments:

title   = {{ $json.title }}
handle  = {{ $json.handle }}
price   = {{ $json.variants[0].price }}
image   = {{ $json.image.src }}
vendor  = {{ $json.vendor }}
url     = https://YOUR_STORE.myshopify.com/products/{{ $json.handle }}

Replace YOUR_STORE with your store subdomain, or use your primary domain if you have one attached. After this node the data is small and predictable:

{
  "title": "Cedar & Sage Travel Candle",
  "handle": "cedar-sage-travel-candle",
  "price": "24.00",
  "image": "https://cdn.shopify.com/s/files/1/candle.jpg",
  "vendor": "Northwind Goods",
  "url": "https://yourstore.myshopify.com/products/cedar-sage-travel-candle"
}

3. Write blurb with Gemini (HTTP Request)

Add an HTTP Request node. Set the method to POST and the URL to the Gemini endpoint:

https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent

Set Authentication to Generic Credential Type, then Header Auth, and attach a header credential holding x-goog-api-key with your Gemini key as the value. Under Body, choose JSON and paste:

{
  "contents": [
    { "parts": [
      { "text": "Write a short launch announcement for a new online store product. Two sentences, under 40 words, upbeat but not salesy, no emojis, no hashtags. Product name: {{ $json.title }}. Price: {{ $json.price }}. Brand: {{ $json.vendor }}." }
    ] }
  ],
  "generationConfig": { "temperature": 0.7, "maxOutputTokens": 120 }
}

Gemini returns the copy at candidates[0].content.parts[0].text, which the next node reads.

📌

Note: Keep the Gemini key in a Header Auth credential, not typed into the URL. Putting an API key in a query string leaks it into logs and execution history.

4. Build email and message (Set)

Add a second Set node to assemble both outputs. Reference the earlier node by name so the product data and the Gemini blurb combine cleanly.

blurb        = {{ $json.candidates[0].content.parts[0].text.trim() }}

emailHtml    = <h2>Just launched: {{ $('Extract product fields').item.json.title }}</h2>
               <p>{{ $json.candidates[0].content.parts[0].text.trim() }}</p>
               <p><strong>Price:</strong> {{ $('Extract product fields').item.json.price }}</p>
               <p><a href="{{ $('Extract product fields').item.json.url }}">Shop it now</a></p>

telegramText = New product: {{ $('Extract product fields').item.json.title }}
               {{ blurb }}
               Price: {{ $('Extract product fields').item.json.price }}
               {{ $('Extract product fields').item.json.url }}

5. Email the list (Gmail)

Add a Gmail node set to Send. Put your list or Google Group address in To (for example announcements@yourstore.com). Set Subject to New arrival: {{ $('Extract product fields').item.json.title }}, choose HTML as the email type, and set the message to {{ $json.emailHtml }}. Attach your Gmail OAuth2 credential.

💡

Tip: Send to a Google Group or a single broadcast address and put real subscribers in BCC-managed groups. Gmail is fine for small lists; move to a dedicated email service once you pass a few hundred recipients.

6. Post to Telegram channel (Telegram)

Add a Telegram node set to Send Message. In Chat ID, enter your channel username such as @yourstore_news. Set the text to {{ $json.telegramText }} and attach your Telegram bot credential. Connect both this node and the Gmail node to the output of Build email and message so they run in parallel.

📌

Note: The bot must be an admin of the channel before it can post. Add it as an administrator in your Telegram channel settings first, otherwise the node returns a 403 error.

Common mistakes

  • Announcing a bulk import. The products/create topic fires once per product. Deactivate the workflow before importing a catalog, then turn it back on.
  • Putting the Gemini key in the URL. Use a Header Auth credential with x-goog-api-key so the key stays out of logs.
  • Bot not an admin. A Telegram bot cannot post to a channel it does not administer. Add it as an admin first.
  • Wrong price field. Price lives at variants[0].price, not on the product root. Products with no variant will error, so guard the expression if you sell single-variant and multi-variant items.
  • Draft products triggering. Depending on how you publish, unfinished drafts can fire the event. Add a Filter node checking status is active if that is a problem.

Cost at realistic volume

Assume a store that launches 20 new products a month, each announced to an email list and a Telegram channel.

Service Usage Monthly cost
n8n (self-hosted or free cloud runs) 20 executions $0
Google Gemini (gemini-2.5-flash) 20 short generations $0 on the free tier
Gmail 20 broadcast sends $0 (well under 500/day)
Telegram Bot API 20 channel posts $0

At this volume the entire pipeline runs for nothing. The only point where cost enters is email scale: once your list grows past a few hundred recipients, Gmail is the wrong tool and you would route the send through a dedicated email service, which is a one-node swap.

🚀 Get the new product announcement template

The full guide above is free to follow. If you would rather skip the build, the ready-to-import template drops the exact six-node workflow into n8n so you only add your credentials and go live.

Download the template ($19) →

Instant download · Works on n8n Cloud and self-hosted · Prefer it done for you? See our done-for-you service.

Frequently asked questions

Does this fire automatically when I add a product in Shopify?

Yes. The workflow starts from a Shopify trigger listening to the products/create topic, so every time you publish a new product the announcement runs on its own. You never open n8n to send it, and there is no schedule to manage or forget.

Can I skip the AI blurb and write my own copy?

Absolutely. Delete the Gemini HTTP Request node and reconnect Extract product fields straight to Build email and message. Then hardcode your announcement text in the Set node instead of referencing the Gemini output. The email and Telegram steps work exactly the same.

Will this spam my list if I bulk-import a catalog?

It can. The products/create topic fires once per product, so a 200-item import means 200 emails. Before a bulk upload, deactivate the workflow, import, then reactivate. For ongoing control, add a Filter node that only announces products carrying a specific tag such as launch.

Do I need a paid Gmail or Gemini account?

No. Gmail free tier sends up to 500 emails a day, which covers a single broadcast address or Google Group. Google Gemini has a free tier for gemini-2.5-flash that easily handles one short blurb per product. For large subscriber counts, swap Gmail for a dedicated email service.

Can I post to a Telegram group instead of a channel?

Yes. Set the chatId in the Telegram node to your group ID or channel username. For a public channel use the @handle; for a private group use the numeric chat ID. The bot must be a member of the group or an admin of the channel to post.

Related guides