Article summary
Move Telegram lists through provenance, country evidence, normalization, deduplication and an exception queue without manufacturing valid-looking phones.
The most damaging mistake in an international TG list is not a leftover space. It is “repairing” an ambiguous local number into a complete phone for the wrong country. A defensible cleanup pipeline lets uncertain rows stop in an exception queue instead of changing facts to make a tidy TXT file.
The source column is immutable
Keep phone_raw, source_file, source_row and imported_at for every record. Any cleaned representation goes into a new column. When a result looks wrong, the team can return to evidence rather than stare at digits that no longer have an origin.
Country evidence comes before the plus sign
Prefer an explicit country selected by the user, a verified order country or a documented source batch. Interface language, IP address, a name or a salesperson’s guess should not assign a calling code automatically. Local notation without evidence enters country_unknown.
The normalization workshop makes only explainable changes
| Input pattern | Action | Audit field |
|---|---|---|
| Spaces, brackets, hyphens | Remove display punctuation | format_cleanup |
| 00 international prefix | Convert to + when country rule is known | prefix_conversion |
| National trunk zero | Apply the specific country’s rule | trunk_rule |
| Uncertain length | Quarantine; never pad | length_exception |
Deduplication has three meanings
Exact normalized duplicates can be consolidated. The same phone arriving from two sources must keep both provenance links. One CRM contact with multiple phones cannot be merged by assumption. Recording duplicate_type explains attrition far better than publishing only a final unique count.
The TXT gate receives approved rows only
AIPUSH accepts a TXT upload with one phone per line. Create an internal crosswalk containing input_row_id and normalized phone before export, but put only phones in TXT. Names, groups, wallets, orders and permission records remain in the organization’s controlled systems.
The TG task controls the return schema
TG Registration returns phone and a registration observation. TG Activity may return TG UserID, username, offline time, active days, First Name, Last Name, VIP observation and frozen observation. Cleanup must not promise that every later field will be available for every row.
Reconcile loss when Excel returns
Build a conservation table for source rows, formatting exclusions, merged duplicates, submitted phones, returned rows and unknown outcomes. If the arithmetic fails, inspect row_id and batch version. Never convert an unexplained difference into “not registered.”
The exception queue is an output
Assign owners for country_unknown, too_short, too_long, extension_present and conflicting_prefix. Rows with new provenance can re-enter the pipeline. Rows that remain ambiguous keep their original value and leave the current run without fabricated digits.
Segmentation happens last
Format acceptance is only an execution prerequisite. It says nothing about registration, recent activity or permission to contact. Keep normalization, TG observations and marketing permission as separate layers so every export becomes more trustworthy rather than merely more uniform.
