Dev Mode Login
Enter your API secret to get a session token. Requires DEV_AUTH=true in .env — never enable in production.
Invalid secret — check API_SECRET in .env
TG Monitor
Group Intelligence
Total Users
loading…
Active Members
in any group
Msgs (week)
vs last week
DMs Sent
reply rate
Activity — last 14 days
Top users this week
Loading…
Loading…
Configure forwarding per group. Each group can forward to a different channel.
Loading…
Rate limit: max 15 DMs/hour with 30–90s delays. Always preview before sending.
Active: posted ≥ min messages in the lookback window. Inactive: haven't posted in the lookback window.
Only include users who posted at least this many messages in the lookback window.
How many weeks of activity to evaluate. 1 = last 7 days.
Loading…
users would receive this
To find a group's ID, forward any message from the group to @userinfobot. Supergroup IDs are large negative numbers like -1001234567890.
Tap the on any group to import its past 7 or 30 days of messages.
Add Group
Loading…
Download message data as CSV or Excel. Large date ranges may take a few seconds.
Filters
Loading…
Columns: message_id · user_id · username · display_name · date · time · message_body · message_type · sender_type · group_name
TG Monitor — group intelligence & outreach dashboard.
Tap any section to expand it.
Getting Started

TG Monitor listens to your designated Telegram groups as a regular member — no admin access required. It records who posts, how often, and when, then gives you this dashboard to act on that intelligence.

What you can do

  • See who is active (or inactive) across all monitored groups
  • Automatically forward specific messages to a private channel
  • Send targeted direct messages to active or lapsed members
  • Track reply rates for every DM campaign

Access & security

Only the account registered as the admin can open this dashboard. Every API request is validated server-side — your session expires automatically after 24 hours.

If the dashboard stops loading data, close and reopen it to re-authenticate with a fresh session.
Overview Dashboard

KPI Cards

  • Total Users — every unique person ever seen across all groups, including those who have since left.
  • Active Members — users who are currently a member of at least one group.
  • Msgs (week) — message count in the current ISO week (Mon–Sun). The ↑/↓ arrow compares to last week.
  • DMs Sent — total direct messages delivered across all campaigns. The percentage is the overall reply rate.

Activity Chart

Shows daily message volume for the last 14 days. A flat or rising line means healthy engagement. A sudden drop may indicate a group going quiet or a monitoring interruption.

Top Users This Week

The 4 most active posters in the current week. The horizontal bar shows each user's share of the most-active user's count — useful for spotting who drives conversation.

If all KPIs show "—", the weekly aggregation job has not run yet. Ask your operator to send /aggregate to the dashboard bot, then reload the overview.
Users Tab

A live, paginated directory of every Telegram user the system has observed, sorted by most-recently-seen first.

Searching

Type in the search box to filter by username or first name. Results update automatically as you type (300 ms debounce).

Reading the list

  • The blue badge shows the last time the user sent a message in any monitored group — e.g., "3h ago" or "12d ago".
  • Users remain visible even after leaving a group. "Last seen" reflects the most recent message observed, not Telegram's own online indicator.
  • The pagination line below the list shows your current page and the total user count.
Message Forwarder

Automatically copies matching messages from monitored groups to a channel or chat of your choice. Each group can forward to a different destination.

Controls (per group)

  • Enable forwarder — on/off switch for this group.
  • Forward all — sends every message without keyword filtering. Use with caution on high-volume groups.
  • Target channel ID — the chat or channel to forward into. Forward any message from the target to @userinfobot to find its ID (a large negative number like -1001234567890).
  • Keywords — only forward messages containing at least one listed word. Case-insensitive. Up to 20 keywords, 50 chars each.

Adding & removing keywords

Type a word in the input field and tap Add or press Enter. Tap the × on any tag to delete it.

Important: tap Save after every change. Unsaved edits are discarded when you leave the tab.
DM Campaigns

Send a direct message to a filtered subset of users observed in your monitored groups.

Step-by-step

  • 1. Campaign name — a unique label (letters, numbers, dashes, underscores only, max 64 chars). The same user will never receive the same campaign name twice, protecting against accidental re-sends.
  • 2. TargetActive users: people who posted ≥ X messages in the look-back window. Inactive users: members who have not posted recently.
  • 3. Min messages — (active targeting only) exclude users below this threshold. Higher values reach only your most engaged members.
  • 4. Message — the DM text sent to each recipient. Max 4,096 characters.
  • 5. Preview targets — run this first. It calculates the recipient list without sending anything. Verify the count looks right.
  • 6. Send Campaign — confirms and queues the job. The server processes it in the background at the rate limits below.

Rate limits

  • Max 15 DMs per hour
  • 30–90 second random delay between each message
  • 100 recipients ≈ ~90 minutes total
  • Telegram flood-wait errors are handled automatically — the system pauses and resumes
Always preview before sending. Campaigns cannot be cancelled once queued.
If Preview returns 0 users, weekly data hasn't been aggregated yet. Send /aggregate to the dashboard bot, wait a moment, then preview again.
Common Questions

All KPIs show "—" or the page is blank

Your session may have expired or the server is unreachable. Close and reopen the app. If the issue persists, ask your operator to check the server status.

Campaign preview returns 0 users

Activity data is aggregated weekly. Send /aggregate to the dashboard bot, wait 30 seconds, then preview again.

Can I send the same campaign to the same people again?

Not with the same campaign name — the system deduplicates by user+campaign pair. Use a new name (e.g., june_promo_v2) to re-contact them.

What if a user has blocked the account?

The system logs it as "blocked" and continues to the next recipient. Blocked users do not count against the hourly limit.

Is "last seen" the same as Telegram's online status?

No. "Last seen" here is the timestamp of the user's most recent message observed in a monitored group — not their Telegram online/offline indicator.

The forwarder isn't forwarding anything

Check that: (1) Enable forwarder is on for the group, (2) you have entered a valid Target channel ID, (3) you have tapped Save, and (4) the monitoring account is a member of the target channel.

Who can access this dashboard?

Only the Telegram account whose ID matches ADMIN_CHAT_ID on the server. Every request is verified server-side — other users are rejected even if they have the app link.

TG Monitor v1.0  ·  Sessions expire after 24 h  ·  Questions? Contact your operator