Parsing
The Parsing mode in Multogram: collecting group members and messages from channels and chats — once or while watching for new messages, with keyword and date filters and export to CSV, XLSX, JSON or SQLite.
Where in the app
Access
Accounts
Restriction risk
Parsing collects data from Telegram and saves it to a file: group members — for inviting and mailings, or messages from channels and chats — for analysis and monitoring.
What you can collect
| What to parse | Parsing mode | Result |
|---|---|---|
| Users in group | — | A list of members: first name, last name, phone (if visible), username, ID |
| Messages | Parser | Already published messages — a one-off pass up to the limit |
| Messages | Watcher | New messages as they appear — monitoring until a limit kicks in or you stop the task |
Settings
Type and targets
| Parameter | What it does |
|---|---|
| What to parse | Messages or Users in group |
| Parsing mode | For messages: Parser — once, Watcher — watch for new ones |
| Targets | Channels, groups and chats, one per line: @channel, https://t.me/channel, a numeric ID |
Message filters
| Parameter | What it does |
|---|---|
| Data to Extract | Which columns to save: Sender (ID, username, name), Text, Media (the attachment type: photo, video, voice, document and so on). The message number, date and target are always saved. With Sender alone, the file lists the authors: each one row per chat, with their latest message |
| Message filter | Keyword Search and/or By Date |
| Keywords | A message goes into the file if it contains at least one of the words. Case doesn't matter |
| Date range messages | Save only messages from this period. The first and last days are included in full, in local time; you can also pick a single day |
Limits & Delays
| Parameter | Default | What it is for |
|---|---|---|
| Messages per target | 400–500 | How many messages to look through in a target (Parser); the number is drawn anew for every target. Allowed 1–100,000 |
| Delay between targets (sec) | 3–7 | The pause before the next target (Parser) |
| Delay between requests (sec) | 1–3 | The pause between batches of history — protection against FloodWait (Parser) |
| Check interval (sec) | 10–20 | How often to check targets for new messages (Watcher) |
| Delay between targets (sec) | 2–4 | The pause between targets within one check (Watcher) |
| Stop after N messages | 0–0 — no limit | The Watcher stops after collecting this many messages; the number is drawn once at the start |
| Max watch time, min | 0–0 — no limit | The Watcher stops after this many minutes; the number is drawn once at the start |
| Members to parse | 4000–5000 | How many members to collect from a group; the number is drawn anew for every group |
| Delay between requests (sec) | 2–4 | The pause between batches of members — protection against FloodWait |
Every limit and delay is a "from – to" range, and the actual number is drawn at random: a delay before every pause, a per-target limit for every target, the Watcher's caps once at the start. Requests then do not follow a fixed rhythm and every target yields a different amount, so the work looks more natural. For a fixed value, set both ends the same, for example 5–5. For the Watcher's caps, 0–0 means no limit.
Export
| Parameter | Default | What it does |
|---|---|---|
| Export format | CSV and XLSX | CSV, XLSX, JSON and/or SQLite (.db) — you can tick several |
| Output folder | — | The folder for the file. Created if it doesn't exist |
Each ticked format is saved — as a separate file with the same data. Each target gets its own
file; the name is the parsing type, the target and the time, for example users_in_group_mychannel_1696330000000.xlsx. For
the Watcher — the type, the account number and the time. A file with the same name is overwritten. In SQLite the data is in
the parsed table.
How it works
The list of targets is shared by all of the task's accounts. An account takes the next target from it, parses it and takes the next one until the list is empty. Each target is parsed by exactly one account — several accounts simply get through the list faster. If an account got a FloodWait, its unfinished target goes back to the list — another account finishes it (or the same one after waiting).
Members. The account opens the group and takes members in batches up to the Members to parse limit, with a pause between batches. The log shows "Members collected from …: N". The result for the target is saved to its file.
Messages — Parser. The account reads each target's history from newer messages to older ones, in batches, up to the Messages per target limit. Filters are applied to each message: the limit counts the messages looked through, while only the matching ones go into the file.
What goes into the file. Only messages that have what you ticked: with Text ticked, a message without text (a sticker or a photo without a caption, say) is left out unless Media is ticked too and it has an attachment. Service events -- members joining or leaving, a pinned message and the like -- are not messages: they are not written and do not count towards the limit. Every message is one row, without repeats.
Messages — Watcher. Targets are split between accounts in a round-robin, and each watches its own. At start the mode remembers the latest message in each target, then checks the targets in a loop and saves only new messages. The file is overwritten after each find, so you can open it while the work goes on. It stops by one of the limits or manually.
Messages are not marked as read during parsing.
Limitations
- Members are visible in groups, not in channels. Telegram shows a channel's subscriber list only to its administrators.
- Phone numbers appear in the export only for members who made their number visible in their privacy settings.
- Private groups and channels — the account must be a member of them.
- Large groups. Telegram doesn't return all members of very large groups — part of the list may be missing.
Recommendations
- Several accounts for large lists. Targets are split between accounts, each is parsed once, so there are no duplicates; one account also copes, just more slowly.
- Don't lower the delays. Parsing is many requests in a row; ranges like 2–5 seconds protect against FloodWait, and the spread inside a range keeps the pauses from looking alike.
- For inviting, parse members of groups on a similar topic, then use the file in Inviting.
- A limit for the Watcher. Set Max watch time or Stop after (min) in the task window so the monitoring doesn't run forever.
Common questions
Why is the file empty or not created?
If nothing was collected, no file is saved — the log shows "Nothing to save: no data collected". Check the filters: keywords and dates may have filtered out everything. Check that the account has access to the target.
Can I parse a channel's subscribers?
No, unless you are an administrator of the channel: Telegram doesn't show the subscriber list. Parse members of groups — for example, the channel's discussion group.
Are messages marked as read?
No, parsing doesn't change the read status.
Why are there fewer messages in the file than the Messages per target?
The limit counts the messages looked through, while the keyword and date filters keep only the matching ones. Also, the limit of each target is drawn from its range and may come out near the lower end. Or the target has fewer messages than the limit.
How do I save to CSV instead of XLSX?
In Export format, leave only CSV ticked.
Updated
Content Bot
The Content Bot mode in Multogram: watches source channels and moves new posts into your channels — as a copy or rewritten by AI, instantly or after approval in a Telegram bot. Channel links, keyword filter, intervals.
Modules
The Modules tab in Multogram: the library of installed modules (.agm) — ready automation scenarios with their own settings. How to install, run, update and remove a module, which modes a module needs and why it may be unavailable.