GA4 Telegram reports

GA4 reports in Telegram. Scheduled from Vercel Cron.

Monitor website traffic, countries, sources, pages, and custom events across one site or many without opening Google Analytics every morning.

Web Analytics Reporter is a small Node.js package for teams that want a clear daily analytics summary in Telegram using GA4, a service account, and a serverless cron job.

npm install web-analytics-reporter
Preview of a daily GA4 report sent to Telegram from Vercel Cron
Dependency-free No runtime npm dependencies.
Node 18+ Works in modern serverless runtimes.
Multi-site One endpoint can report on many GA4 properties.
Secure cron Requires a secret by default.

Built for analytics summaries people actually read.

GA4 is powerful, but daily monitoring should be simple. This package turns the metrics you check most often into a concise Telegram message.

Daily GA4 traffic summary

Track users, sessions, page views, and previous-day change from the Google Analytics Data API.

Countries and sources

See where users came from and which countries drove the most traffic yesterday.

Custom event counts

Report important events such as downloads, signups, guide clicks, support clicks, or checkout starts.

Telegram destination

Send reports to a direct chat, private group, or team channel through a Telegram bot.

Vercel Cron ready

Create one serverless API route, protect it with a secret, and schedule it with Vercel Cron.

Type declarations

Use typed public APIs without a build step. The package stays CommonJS and deployment-friendly.

Set up a daily analytics report in four steps.

Use GA4 as the source, Telegram as the destination, and Vercel Cron as the scheduler.

1

Create GA4 access

Enable the Google Analytics Data API and give a service account Viewer access to the GA4 property.

2

Create Telegram bot

Use BotFather, get the bot token, start a chat, and save the target chat ID.

3

Add API route

Configure ga4Source, telegramDestination, one or more sites, and a long CRON_SECRET.

4

Schedule report

Add a Vercel Cron schedule, test with `dryRun=1`, then let the report send daily.

Example

One route, many analytics reports.

Configure separate site IDs and GA4 property IDs, then send one report or every report from the same endpoint.

api/daily-summary.js Node.js
const {
  createVercelDailySummaryHandler,
  ga4Source,
  telegramDestination
} = require("web-analytics-reporter");

module.exports = createVercelDailySummaryHandler({
  secret: process.env.CRON_SECRET,
  source: ga4Source({
    clientEmail: process.env.GOOGLE_CLIENT_EMAIL,
    privateKey: process.env.GOOGLE_PRIVATE_KEY
  }),
  destination: telegramDestination({
    botToken: process.env.TELEGRAM_BOT_TOKEN
  }),
  sites: [
    {
      id: "marketing",
      name: "Marketing Site",
      ga4PropertyId: "123456789",
      telegramChatId: process.env.TELEGRAM_CHAT_ID
    }
  ]
});

Direct answers for common searches.

Short, specific answers help people and answer engines understand exactly what the package does.

How do I send GA4 reports to Telegram?

Install web-analytics-reporter, create a protected Vercel API route, connect GA4 with a service account, add a Telegram bot token and chat ID, and schedule the route with Vercel Cron.

Can I monitor multiple websites?

Yes. Add multiple site configs with separate GA4 property IDs. Use site=all for every report or site=marketing for one site.

Is this a replacement for GA4?

No. It reads GA4 data and delivers a readable daily summary so you can monitor traffic without opening the GA4 interface every day.

Does it support custom events?

Yes. You can report custom GA4 events like downloads, signups, support clicks, and guide clicks with custom labels per site.

Why use this instead of a dashboard?

Dashboards are useful for investigation. A daily Telegram report is better for routine visibility.

Dashboard-only workflow

  • Requires someone to remember to open analytics.
  • Often hides simple daily signals behind many reports.
  • Harder to share consistently with small teams.

Daily report workflow

  • Arrives automatically where the team already talks.
  • Highlights traffic, sources, countries, pages, and actions.
  • Keeps the team aware without replacing deeper analysis.

Open source package

Start with a readable GA4 report tomorrow morning.

Install the package, add one API route, test with dryRun=1, then schedule your daily website analytics summary.