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
Accounts
Loading…
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.
Changes apply only after you tap Save, and take effect within 60 seconds. A sender account does the forwarding, so it must be a member of the source group and allowed to post in the target channel.
Loading…
Rate limit: max 15 DMs/hour with 30–90s delays. Always preview before sending.
Active: still a member of the selected group(s) and posted ≥ min messages in total across the lookback window and the selected groups. Inactive: current members who have posted at least once, but not within the lookback window. Always excluded: our own accounts, bots, group admins, members who never posted, and anyone DM'd by any campaign in the last 14 days (cooldown; inactive targets: at least the lookback window).
Summed across all weeks of the lookback window and all selected groups.
How many weeks of activity to evaluate (max 52). Active: this week so far plus the previous N full weeks (Mon–Sun) — 1 = last week + this week. Inactive: no post in the last N×7 days.
Loading…
A flood-wait over 15 min means Telegram is heavily rate-limiting this account. Stopping is safer: resending right when the wait ends is the pattern that gets accounts restricted. You get a bot alert and can re-send later with the same name — people already DM'd are skipped.
Either way, these always stop the campaign: PeerFlood (Telegram has flagged the account as spam — every further send would fail and only add evidence, which can escalate to a ban) and a banned/deactivated account. Nothing is sent during sleep hours, because night-time sending looks like a bot.
—
users would receive this
Import from CSV
Upload the exported CSV (or your hand-filtered copy). Every row with a user_id is DM'd the message below. Activity targeting and group selection are ignored — the file is the recipient list. Always skipped: people already contacted under this campaign name, our own accounts, bots, group admins, anyone DM'd by any campaign in the last 14 days, and anyone no longer in any monitored group. People who are only in paused groups, never posted, or were quiet for 7 days stay in, and you confirm them before anything is queued. The On long flood-wait option above applies here as well.
管理員標記每天更新一次;匿名管理員 Telegram 不公開,系統無法辨識。匯入前請自行檢查名單,排除群組管理員。
Recent campaigns
Loading…
To find a group's ID, go to @userinfobot > menu > Group / Channel. Supergroup IDs are large negative numbers like -1001234567890.
Tap the on any group to import its past 7 or 30 days of messages.
The members: … · synced … line shows the last weekly member sync: complete (full list read), partial (Telegram returned only part of a large or hidden-member group) or flood_wait (rate-limited, retried later).
Add Group
Loading…
Download message data as CSV or Excel. Dates are optional — leave them empty to export everything. Large ranges may take a few seconds, and an export holds at most 200,000 rows.
Export
Filters
Data available: …
Loading…
Columns: message_id · user_id · username · display_name · date · time · message_body · message_type · sender_type · group_name · group_id · still_member
still_member: is that user still in that row's group — yes / no (left) / unknown (no membership record); blank for channel and anonymous-admin posts. Paused groups keep the value from when they were paused.
TG Monitor — 群組監看與私訊管理介面。
點各章節展開。完整步驟與排錯請看下方兩份文件。
開始使用

TG Monitor 以一般成員身分待在你指定的 Telegram 群組,不需要管理員權限。系統記錄誰在什麼時候發言,再由這個畫面讓你查看與行動。

可以做什麼

  • 查看各監看群的活躍與不活躍成員
  • 把符合條件的訊息自動轉發到你的頻道
  • 私訊活躍或久未發言的成員
  • 追蹤每個 DM campaign 的回覆率

存取與安全

只有伺服器 ADMIN_CHAT_IDS 名單內的 Telegram 帳號能開啟此介面。每次請求都由伺服器驗證,登入 24 小時後自動失效。

資料載入不出來時,關閉再重新開啟,就會重新登入。
Overview 總覽

Accounts 卡片

系統運行的每個 Telegram 帳號一列,唯讀。按 ↻ 重新整理。

  • 綠 — ok 或 sleeping(夜間不發 DM)。
  • 黃 — flood wait(被 Telegram 限速)、daily cap(已達今日 DM 上限)、warming(新帳號暖機)。
  • 紅 — peer flood(被判定 spam,暫停 24 小時)、banned、start failed、stale(超過 5 分鐘沒有心跳,服務可能停了)。
  • 第二行例:heartbeat 12s ago · today 12/40 · age 194d。today 是今日已發 / 今日上限。never reported = 該帳號的服務還沒啟動。

KPI 卡片

  • Total Users — 所有群看過的人(含已退群);小字是從未發言的人數。
  • Active Members — 目前至少在一個群內的人。
  • Msgs (week) — 本週(週一起)訊息數;↑/↓ 是和 8–14 天前那 7 天比較,週初通常顯示 ↓。
  • DMs Sent — 所有 campaign 已送達的 DM 數;百分比是整體回覆率。

Activity 折線圖

最近 14 天的每日訊息量。突然下降可能是群變安靜,或監看中斷。

Top users this week

本週單群發言數最高的 4 筆(同一人在兩群可出現兩次)。讀週彙總,要先對 bot 打 /aggregate 2 才有本週資料。

四張 KPI 讀即時資料,不需彙總。全部顯示「—」代表連不上伺服器,請重新開啟。
Users 成員

系統看過的所有人,依最後活動時間排序,分頁顯示。

搜尋

輸入 username 或名字,打字後自動更新。下拉選單可只看某個群。

怎麼看

  • 藍色標籤是最後一次在監看群發言或入群的時間,例如 3h ago。不是 Telegram 的上線狀態。
  • 退群後仍會留在清單。點一個人可看各群發言數。
  • 灰 never posted:只從入群或成員同步得知。紅 bot:Telegram 標記為 bot。黃 own account:系統自己的帳號。
  • 清單下方顯示目前頁數與總人數。
Forward 轉發

把符合條件的新訊息自動轉到你指定的頻道,由 sender 帳號執行(監看帳號不做轉發)。sender 帳號必須加入來源群,並能在目標頻道發文。

每群的設定

  • Enable forwarder — 這個群的開關。
  • Forward all — 不看關鍵字,全部轉發。高流量群請小心。
  • Hide sender name — 隱藏原發言者。
  • Target channel ID / name — 目標頻道與你自己取的名稱。ID 到 @userinfobot > menu > Group / Channel 查。
  • Keywords — 含任一關鍵字才轉發,不分大小寫。最多 20 個,每個 50 字。
  • Exclude keywords — 含任一字就不轉發,優先於其他條件。
  • Only these users — 只轉發指定發言者(user id 或 @username)。
  • Only these types — 只轉發圖片、影片、PDF / 檔案或連結。

按 Save 之後

會先顯示這個群最近 1 小時的訊息數、純文字、多媒體,以及會轉發多少、和上限比較,確認後才儲存。可同時選擇補發舊訊息。

超過上限的訊息會排隊。順序:2 分鐘內的新訊息 → 超額的訊息 → 補發的舊訊息;夜間只送新訊息。卡片上的 Clear queue 可清空排隊。

重要:每次修改都要按 Save。沒存就離開分頁,修改會丟掉。
DM Campaign 私訊

把同一則私訊發給篩選出來的群成員。

步驟

  • 1. Campaign name — 識別名稱(字母、數字、- 與 _,最多 64 字)。同一人不會收到同名 campaign 兩次。
  • 2. Target — Active:仍在所選群、期間內加總發言達門檻(讀週彙總,本週要 /aggregate 2)。Inactive:現任成員、曾發言但期間內沒有。
  • 3. Min messages — 僅 Active,1–1000,跨週跨群加總。
  • 4. Groups — 不勾 = 全部未暫停的群;要發暫停群的成員,請明確勾選。
  • 5. Message — 私訊內容,最多 4096 字。
  • 6. Preview targets — 先預覽人數與排除原因,不會發送。
  • 7. Send Campaign — 確認後排入佇列,背景依下列速率發送。

排除規則

  • 一律排除:自家帳號、bot、群管理員、已退出所有監看群、14 天冷卻期內。
  • 系統選人另外排除:從未發言。
  • CSV 匯入不自動排除:只在暫停群、從未發言、7 天不活躍。視為你已審過名單,匯入前會列出人數讓你確認。

速率限制

  • 每帳號每小時最多 15 則,之後休息約一小時
  • 每則間隔隨機 30–90 秒
  • 滿 60 天帳號每日最多 60 則;較新的帳號更少(前 7 天不發,之後每日 5 / 10 / 20)
  • 23:00–08:00 不發送
  • 達每日上限時 job 會停止,隔天用同名再送;已送過的人自動略過。
  • 短 flood-wait 會暫停後繼續。PeerFlood 一定停止並暫停帳號 24 小時;超過 15 分鐘的 flood-wait 也會停止,除非你選 Keep waiting。都會收到 bot 通知。

Recent campaigns

列出每個 campaign 的狀態與回覆數,點一列看誰回覆(前 50 人)。按鈕:Pause 暫停、Resume 繼續、Terminate 終止(剩下的不再送)。發送中的 job 約 15 秒內生效,正在送的那一則會先送完。終止後仍留在清單,發送紀錄也保留,14 天冷卻仍然有效。

管理員限制:管理員標記每天更新一次;匿名管理員 Telegram 不公開,系統無法辨識。發送前請自行檢查名單,排除群組管理員。
Active 預覽是 0 人時,可能本週還沒彙總。對 bot 打 /aggregate N+1(N = Lookback,預設 /aggregate 2),再預覽一次。
Groups 群組

新增、暫停或永久刪除監看群,並可匯入過去 7 或 30 天的歷史訊息。

  • 查群組 ID:到 @userinfobot > menu > Group / Channel。
  • 監看帳號必須先加入該群。
  • 開關 = 暫停 / 恢復監看。🗑 = 永久刪除群組與所有訊息,無法復原。
Export 匯出

在分頁上方選 Messages、Users 或 DM campaigns,再選 CSV 或 Excel。時間都是 UTC。每次最多 200,000 列,每種每小時最多 10 次。

Messages

日期範圍內每則訊息一列。不勾群組時會先顯示總數,再按一次確認。

Users

每人每群一列,可選日期範圍。

  • flags(該列的群):自家帳號、bot、管理員、已退群、暫停群、從未發言、7天不活躍、活躍。
  • msgs_7d / msgs_period:最近 7 天 / 所選期間的訊息數。
  • dm_cooldown:14天冷卻期(排除)或 15-30天(僅供參考)。last_dm_date:最後 DM 日期。
  • dm_status:這個人跨所有群的判定:可發、需確認、排除。

DM campaigns

選一個 campaign。第 1 列是訊息內容,第 2 列起是表頭,每個 DM 一列,含狀態與回覆。

這裡的「活躍」是最近 7 天的即時訊息。DM 分頁的 Active 看週彙總和成員資格,所以兩邊人數會不同。
常見問題

KPI 都是「—」或畫面空白

登入可能過期,或連不上伺服器。關閉再重新開啟;仍然不行請聯絡維運人員。

Preview 是 0 人

Active 讀週彙總,本週不會自動彙總。對 bot 打 /aggregate N+1,等回 Done 再預覽。若 Not included 有列人數,代表他們被規則排除,重新彙總也不會變。Inactive 讀即時資料,不需彙總。

可以把同一個 campaign 再發給同一批人嗎?

同名不行,系統依「人 + campaign」去重。換新名稱可以,但 14 天冷卻期仍然有效。

對方封鎖帳號會怎樣?

記為 blocked,繼續發下一位。

Last seen 是 Telegram 的上線狀態嗎?

不是。這是對方最後一次在監看群發言或入群的時間。

轉發沒有動作

確認:(1) Enable forwarder 已開,(2) 目標頻道 ID 正確,(3) 已按 Save,(4) sender 帳號已加入來源群並能在目標頻道發文。

誰可以開啟這個介面?

只有 Telegram user ID 列在伺服器 ADMIN_CHAT_IDS 的帳號。其他人就算有連結也會被拒絕。

TG Monitor  ·  登入 24 小時後失效  ·  有問題請聯絡維運人員