Three Weeks of One ID, and the Difference Between a Complaint and a Move
A product marketing manager traces a single user's messages across three weeks in a competitor's Telegram group and spots the moment the topic changed from "how do I fix this" to "how do I get out."

Friday afternoon, weekly competitor Telegram group review. One ID cost me forty extra minutes.
He had been active for three weeks. My tracking sheet said “continue watching.” Then I pulled every message he had posted, laid them out in one document instead of week by week, and realized I had missed something.
I had looked at his messages before, but never across the full three weeks at once. Once I did, a dozen or so posts sorted themselves into three stacks, and each stack asked a different kind of question.
(All Telegram messages below are illustrative or composite scenes. Timelines and user identities are altered to demonstrate an analytical approach only.)
The first week: seven messages about one feature
The first week’s seven messages all pointed to one thing — the reporting module.
Mar 3, 9:12 AM — Daily report won’t run, getting an error. Anyone else?
Mar 4, 10:05 AM — Night report stuck again.
Mar 5, 8:30 AM — Support says they’re working on it. Will it be fixed by today? We need this for the morning standup.
Mar 5, 3:18 PM — Worked for a bit, then broke again in the afternoon.
Mar 6, 9:44 AM — Weekly report numbers don’t match what I calculated. Off by almost two thousand.
Mar 7, 10:02 AM — Support says it’s a caching issue. Third time this month.
Mar 7, 4:30 PM — Down again.
If you monitor competitor groups, these messages look familiar. A user hits the same problem repeatedly and comes back each time to say something. I wrote eight characters in my tracking sheet — “reporting module, recurring feedback” — and dropped the ID under “continue watching.” Nothing else.
At this stage, every message described a state: this feature does not work well. He never said “what should I do next,” “is there an alternative,” or “when does my contract end.” The complaints themselves did not predict what would happen next, but they made me remember the ID. If the same feature complaints continued the following week, I would need to figure out whether this was one user’s issue or a broader outage — the latter is more valuable and worth putting into the weekly brief.
The second week: the question changed
The second week had fewer messages, but the type shifted.
Mar 11, 2:22 PM — With the built-in reports being unreliable, is there another way? Like pulling the data through an API [application programming interface — a way to connect systems programmatically] to my own dashboard.
Mar 13, 10:30 AM — Quick question — can I bulk-export historical data? Need to do a quarterly summary.
Notice the change in phrasing. In week one he asked “how long until it’s fixed” and “will it work by today.” In week two he asked “is there another way” and “how do I export.” Both sets of messages share the same premise — the reporting feature is unreliable — but they point in different directions. The first waits for the vendor to fix it. The second looks for a way that does not depend on the feature.
This is a difference, not a verdict. Asking about data export has plenty of valid explanations: quarterly summaries are real recurring work, and the team could be evaluating their technical setup. It does not mean he is preparing to switch. Still, the change was enough that I updated my note on him to “behavior shift — looking for a data exit,” and added a calendar reminder: “check this ID’s messages every week, don’t wait for the weekly review.”
The third week: three new keywords
The third week had only three messages, but every one contained information that had not appeared in the previous two weeks.
Mar 17, 10:03 AM — Has anyone used the data module on [competitor product name]? DM me if you’re willing to share.
Mar 18, 4:15 PM — Contract runs to mid-July. Can renewal pricing still be negotiated, or is it on the new rate card?
Mar 19, 9:30 AM — When will the data API be ready? I need to deliver a quarterly report by April 10.
Three messages, three keywords that were absent from the first two weeks: a competitor product name, a contract month (mid-July), and an internal deadline (April 10).
Each message, read alone, has an alternative explanation. Asking about a competitor’s module could be helping someone else research the market. Asking about renewal pricing could be a routine financial review. Asking about the API timeline could be a normal project scheduling check. Any one of these, appearing in isolation, would probably have been something I scrolled past on a normal scan.
But three messages landed in the same week, and the two weeks before them had already completed a sequence — feature complaint, then data-exit question. I only saw that sequence because I put three weeks of records on the same page. If I had caught only one of those messages on a single day without the weeks before and after as reference, I would not have connected them.
Three actions I wrote down
I did not conclude “this user is switching vendors.” Group chat records can show me that the topic is changing, but they cannot tell me why. I wrote down three more specific actions instead.
First: check whether this ID posted the same content in multiple competitor groups. If he asked about “[competitor product]‘s data module” in several groups at the same time — something a review record with cross-group context can show without manual jumping — his behavior looks more like market research than migration prep. That distinction matters, and I would not elevate the case until it was cleared.
Second: verify the public status of the data API. As of his last message, the group’s support reply was “still in the queue” — the same status that existed when he first complained about reports in week one, and that had not changed by week three. But “not yet resolved” is not the same as “cannot be resolved.” I needed to know whether support issued a new timeline or launch plan after his latest message.
Third: write a date note in the tracking sheet. “Check mid-June — does the contract month overlap with the auto-renewal window?” He is asking about renewal pricing now. But if his contract has an auto-renewal clause, his price question is just a price question and does not need further action. That information is not visible in the chat records. It requires time to pass or another channel to confirm.
The archive date is two months out
I will not do anything next week. No direct message, no escalation to the business team, no separate entry in the weekly brief. I wrote one date on the archive label: June 15.
That date is not a conclusion. It is a checkpoint. When it comes, I will pull his messages again and check three things: first, whether the deadline he mentioned in week three (April 10) triggered any follow-up messages in the group; second, whether his question type has moved from “asking around” to “operational steps” — migration procedures, data transfer timelines, or internal approval steps; third, whether the contract month has entered the renewal window.
If the topic is still in the same place by then, I archive. If something new shows up, I decide what to do next.
(All chat excerpts above are illustrative or composite scenes. They are designed to demonstrate a method of analysis and do not represent any real user or product.)
How a Signal worth attention is found
See how Top Prospect finds and organizes Signals worth checking, keeps the original Telegram context, removes duplicates, and helps you decide what to review first. You decide whether to follow up and what to do next.

