Telegram alerts

Every sale in Telegram, with where it came from

A Telegram message the moment someone pays: the amount, the product, and the tweet, search or campaign that brought them. Refunds, traffic spikes and a daily digest too, for Stripe, Polar, Dodo Payments and Creem.

All sales are final · License terms · Rather not self-host? Hosted from $9/mo

ownlytics botbot · online
💰 New sale · YourApp · $49.00
🔗 x.com · Organic Social
📍 🇺🇸 Austin · Desktop · Chrome
🧭 first visit 2 days ago · landed on /pricing14:02
🚀 Traffic spike · YourApp
142 visitors from news.ycombinator.com in the last hour, 9× the usual.
👀 landing on /blog/how-we-got-1000-users · 31 online now14:20
📊 YourApp · yesterday
👀 1,204 visitors (+38%) · 💰 $612 from 13 sales09:00
💰

Every sale, with its source

Referrer, campaign, country and the buyer's journey. Refunds too.

🚀

Spike alerts

A source at 4× its usual hourly traffic triggers one alert, with the page people land on.

📊

Daily digest

Visitors, revenue and top sources at the hour you choose.

Short answer

ownlytics sends a Telegram message for every Stripe, Polar, Dodo or Creem sale, naming the source that brought the buyer (referrer, channel, campaign), their location and their journey. Create a bot with @BotFather, paste its token in ownlytics under Account → Telegram, message the bot, and pick the chat. Refunds, spike alerts and a daily digest are switches per website.

What a sale message says

Most "Stripe to Telegram" setups tell you that someone paid. ownlytics tells you why: it knows the visit behind the payment.

  • The sale: 💰 new sale or 🔁 renewal, the website, the amount, the product, and the buyer's own currency when it differs.
  • The source: the referrer (x.com, google.com, chatgpt.com…), its channel and the campaign, if any.
  • The buyer: city and country, device, system and browser.
  • The journey: when they first visited, how many sessions and pageviews, and the page they landed on.
  • A masked email (ah••@example.com) and a link to the buyer's full journey in your dashboard.

When a sale can only be matched by checkout timing, the message says it's an estimate. When it can't be matched at all, it says the source is unknown, instead of guessing.

Set it up in two minutes

  1. Make a bot

    Message @BotFather in Telegram, send /newbot, pick a name, and copy the token it gives you.

  2. Paste the token

    In ownlytics, go to Account → Telegram and paste it. One bot covers all your websites.

  3. Say hello

    Send your new bot any message, or add it to a group. ownlytics finds the chat; pick it and send a test message.

  4. Choose what you get

    Per website: sale and refund messages, spike alerts, and the daily digest with the hour you want it.

Messages can go to up to 5 chats, say you and a co-founder. For a whole team, add the bot to a Telegram group.

More than sales

AlertWhenWhat it says
↩️ RefundA sale is refunded, fully or partlyAmount refunded, the original sale and its source.
🚀 Traffic spikeChecked every 5 minutes: a source sends at least 10 visitors in an hour and 4× its usual (or the whole site 3×)How many visitors from where, the page they land on and how many are online. Each source alerts at most once every 6 hours.
📊 Daily digestOnce a day, at the hour you chooseYesterday's visitors and revenue against the day before, and the top 3 sources.

Spikes need two days of history first, so a brand-new site stays quiet. A spike also leaves a note on your dashboard chart. When you connect a payment provider and its history imports, old sales don't flood your chat: only payments from the last few hours send a message.

Why the source changes what you do

A sale ping with its source is something you can act on right away. If three sales in an hour say x.com and the same campaign, the post is working: reply to the comments, pin it, post a follow-up while people are still reading. If a sale comes from a Google search you never targeted, that page deserves more work. And if a spike alert says Hacker News is sending 9× the usual traffic to a blog post, you know where to show up before the thread goes quiet.

Other ways to get Stripe alerts

  • Stripe's Dashboard app can push a notification for new payments, disputes and a daily summary. It knows the payment, not the visit, so it can't name the post that sold.
  • Zapier or Make can forward a Stripe event to Telegram. Same limit: the message holds what Stripe knows (amount, customer, product), plus an automation account and a workflow to keep running.
  • ownlytics sends the message from the analytics side, so the source, campaign and journey come with it, for Stripe, Polar, Dodo Payments and Creem.

Want to know how the source gets attached to a payment? See revenue attribution and the guide to tracking Stripe revenue by traffic source.

Ask your AI agent, too

Every ownlytics install has a built-in MCP server. One command connects Claude Code, Cursor, Codex, Windsurf or VS Code, and your agent answers "which post made me money?" from your own data. The same numbers are in your terminal and behind read-only API keys.

claude mcp add --transport http --scope user ownlytics https://ownlytics.xyz/api/mcp --header "Authorization: Bearer dbk_YOUR_KEY"

How the MCP server works · Docs

Questions

Do I need to code a Telegram bot?

No. @BotFather creates the bot in a chat, and you only paste its token into ownlytics. ownlytics sends the messages from your own install.

Do renewals send a message too?

Yes, marked 🔁 Renewal, credited to the source of the first payment. Refunds get their own ↩️ message.

Can I turn alerts off for one website?

Yes. Sales, spikes and the digest are separate switches per website, and the digest hour is per website too.

Does it show the customer's email?

Masked: the first two letters and the domain. The full details stay in your dashboard.

Find out which of your posts pay the bills.

One script, one payment connection, and you'll know by tomorrow.

All sales are final · License terms · Rather not self-host? Hosted from $9/mo