It Started with a Customer Service Team Tortured by Time Zones for Half a Year
Last year I worked with a cross-border SaaS team whose customers were spread across North America, Europe, and Southeast Asia.
The support team had only three people, all based in China. What does that mean?
When North American customers send questions during their working hours, it is the middle of the night in China. European customers’ mornings fall outside Chinese business hours. The result was everything piling up until the next morning, with customers waiting over 12 hours as the norm.
They considered hiring, but ran the numbers: covering three time zones would require at least six more agents, costing 700,000-800,000 RMB annually.
Their eventual solution: six Telegram accounts serving three regional customer groups, paired with automation scripts for initial responses.
Common questions customers sent — pricing, lead times, refund policy — were auto-identified and answered by scripts, while complex issues were tagged and escalated to humans. During business hours they concentrated on North American backlogs, while European and Southeast Asian questions were largely resolved by script responses.
This approach did not replace people, but it compressed the key metric of “response speed” from 12 hours to under 15 minutes.
That is the right use of automation: not replacing people, but freeing them from the constraint of “must be online in real time”.
This article explains the technical implementation of managing multiple Telegram accounts with Apple cluster control.
1. Telegram Risk Control Characteristics
Among all mainstream messaging platforms, Telegram is the most tolerant of multi-account use.
| Platform | Attitude toward multi-account | Automation detection |
|---|---|---|
| Strict — one account per device | High, sensitive to bulk operations | |
| Strict | High | |
| Telegram | Tolerant, supports multi-account switching | Low |
| Strict | High |
Why? Because Telegram’s product design natively supports multiple accounts — the official client has a built-in account switcher allowing up to three accounts simultaneously (with additional phone numbers).
It treats “multiple accounts” as a normal feature, not anomalous behavior.
But Some Lines Cannot Be Crossed
- Mass private messaging to strangers: the most reported and most easily restricted behavior
- Sending identical content to large numbers of users: Telegram has rate limits
- Accounts mutually adding and farming each other: forming closed cliques that are easily identified
Core principle: apply automation to group and channel content operations (public content, normal usage) rather than harassing private message blasts.
2. Technical Selection
| Path | Suitability | Notes |
|---|---|---|
| USB HID | Recommended | One cable; central control EC iOS USB 10.7.0+ with iOS 17+ phones |
| Bluetooth BLE | Optional | ESP32C3 board; bypasses screen mirroring |
| OTG HID | Optional | ESP32S3 board |
Telegram is text-focused with low operation frequency, so USB HID is entirely sufficient.
Code Skeleton
function _ok(r) {
return r == null || r === "";
}
function randSleep(minSec, maxSec) {
let ms = (minSec + Math.random() * (maxSec - minSec)) * 1000;
sleep(parseInt(ms));
}
function main() {
let r = usbHidEvent.sessionStart(true);
if (!_ok(r)) { logw("Session failed: " + r); return; }
r = usbHidEvent.setScreenSize(1170, 2532);
if (!_ok(r)) { logw("Failed to set screen size: " + r); return; }
// ... operations
usbHidEvent.sessionStop();
}
main();
Return null or an empty string means success; any other string is an error message.
3. Account and Group Structure Planning
The easiest thing to lose track of in multi-account operations is “which account manages which group”. Clarify the structure before starting.
Organized by Business Line
| Account | Region / business served | Groups | Channels |
|---|---|---|---|
| Account 1 | North American customers | North America user group | Product updates channel |
| Account 2 | European customers | Europe user group | Product updates channel |
| Account 3 | Southeast Asian customers | SEA user group | Product updates channel |
| Account 4 | Developer community | Tech discussion group | Tech blog channel |
Configuration-Based Mapping
Write this relationship as JSON so scripts know what each device should do:
// groups.json (placed alongside scripts)
{
"accounts": [
{
"deviceIndex": 0,
"phone": "+1xxxxxxxxxx",
"groups": ["@north_america_users", "@product_feedback"],
"channels": ["@product_updates_en"],
"language": "en"
},
{
"deviceIndex": 1,
"phone": "+44xxxxxxxxxx",
"groups": ["@europe_users"],
"channels": ["@product_updates_en"],
"language": "en"
}
]
}
This way configuration changes require no code changes, substantially reducing maintenance cost.
4. Script Practice
Scenario One: Sending Messages to Groups
function sendGroupMessage(groupName, text) {
// 1. Open search
let r = usbHidEvent.clickPoint(1040, 190);
if (!_ok(r)) return "Failed to open search: " + r;
randSleep(2, 4);
// 2. Enter the group name
r = usbHidEvent.inputText(groupName);
if (!_ok(r)) return "Group name input failed: " + r;
randSleep(3, 6);
// 3. Tap the first search result
r = usbHidEvent.clickPoint(585, 500);
if (!_ok(r)) return "Failed to enter group: " + r;
randSleep(3, 6);
// 4. Tap the input field
r = usbHidEvent.clickPoint(500, 2380);
if (!_ok(r)) return "Input field focus failed: " + r;
randSleep(1, 3);
// 5. Enter the message content
r = usbHidEvent.inputText(text);
if (!_ok(r)) return "Content input failed: " + r;
randSleep(1, 3);
// 6. Send
r = usbHidEvent.clickPoint(1080, 2380);
if (!_ok(r)) return "Send failed: " + r;
return null;
}
Scenario Two: Bulk Channel Publishing
Channels are one-way broadcasts suited to product updates and industry news.
function postToChannel(channelName, text) {
// Enter the channel
let r = usbHidEvent.clickPoint(1040, 190);
if (!_ok(r)) return "Failed to open search";
randSleep(2, 4);
r = usbHidEvent.inputText(channelName);
if (!_ok(r)) return "Channel name input failed";
randSleep(3, 6);
r = usbHidEvent.clickPoint(585, 500);
if (!_ok(r)) return "Failed to enter channel";
randSleep(3, 6);
// Tap input field to post (channel admin)
r = usbHidEvent.clickPoint(500, 2380);
if (!_ok(r)) return "Focus failed";
randSleep(1, 3);
r = usbHidEvent.inputText(text);
if (!_ok(r)) return "Input failed";
randSleep(1, 3);
return usbHidEvent.clickPoint(1080, 2380);
}
Scenario Three: Differentiated Bulk Distribution
When distributing the same batch of content to multiple accounts, differentiation is mandatory:
let contentPool = {
tips: [
"Tip: when processing orders in bulk, screen out the anomalies with a script first, then process the normal ones together — efficiency improves 40 percent",
"Many people ask how to speed up support responses. Our approach: template replies for common questions, human handling for complex ones",
// ...
],
insights: [
"Recent observation: in cross-border teams, 60 percent of support cost goes to answering repeat questions",
// ...
]
};
// Select different content and packaging per account
function buildMessage(deviceIndex, round) {
let pool = [].concat(contentPool.tips, contentPool.insights);
// Combine deviceIndex and round so each account sees different content
let idx = (deviceIndex * 7 + round * 3) % pool.length;
let content = pool[idx];
let wrappers = [
m => m,
m => "NOTE: " + m,
m => m + "\n\n(Feel free to ask me anything)",
];
let w = wrappers[deviceIndex % wrappers.length];
return w(content);
}
5. Automated Replies: The Real Source of Efficiency
This is the most valuable part of Telegram group operations.
Approach One: Keyword Matching (Simple and Reliable)
// Keyword to reply mapping
let autoReplies = {
"price": "Our pricing plans are on the website: https://your-site.com/pricing . For custom plans, tell me your usage scale.",
"refund": "Seven-day no-questions-asked refunds. Submit the request in account settings and it processes within 1-2 business days.",
"how to use": "The beginner tutorial is here: https://your-site.com/docs/quickstart . Ask me anytime if questions remain.",
"invoice": "Electronic invoices are available. Just send me your company name and tax ID."
};
function checkAndReply(messageText) {
for (let keyword in autoReplies) {
if (messageText.indexOf(keyword) >= 0) {
return autoReplies[keyword];
}
}
return null; // no match — escalate to human
}
Approach Two: AI Agent (Handling Complex Questions)
Keyword matching cannot handle “a customer asked something we have never seen”.
The AI agent built into EasyClick new iOS central control (10.2.0+) does two things:
- AI conversation: describe requirements in Chinese for AI to understand and execute
- Visual workflows: turn reply logic into flowcharts with conditional branching
One cost detail worth calling out separately: running already-saved workflows does not consume LLM tokens. Daily bulk reply tasks run ten thousand times without cost growth — only “AI chat” and “letting AI write workflows” are billed by the model provider.
For support scenarios where “the flow is fixed and only the content changes”, turning it into a workflow means essentially zero-cost repeated execution.
6. Account Nurturing Rhythm
Telegram nurturing is much simpler than Facebook or Instagram.
| Stage | Time | What to do |
|---|---|---|
| Complete profile | Day 1 | Photo, username (@xxx), bio |
| Join communities | Day 2-3 | Join 3-5 relevant groups, browse only |
| Participate | Day 4-7 | Occasionally reply to others, build an activity record |
| Create channel | Day 8+ | Create your own channel, start publishing |
| Normal operation | Day 15+ | Publish and reply on schedule |
The key: do not start pulling people into groups and advertising on registration day. Even though Telegram is tolerant, high-frequency operation from a new account still gets restricted.
7. Operation Safety Thresholds
| Operation | New account (under 15 days) | Mature account |
|---|---|---|
| Group messages | 10 per day max | 50 per day max |
| Channel posts | 2 per day max | 10 per day max |
| Private messages to strangers | Not recommended | 10 per day max |
| Joining groups | 5 per day max | 20 per day max |
| Adding contacts | 10 per day max | 30 per day max |
The most important rule: one-to-one private outreach only targets users who contacted you first. Proactively messaging strangers is the number one cause of reports and bans.
8. Network and Device Configuration
Network
- One device one IP is more stable (though Telegram requirements are less strict than Facebook)
- IP region should roughly match the region of the user group you serve
- Avoid frequent IP changes (triggers security verification)
Devices
- Same model and system version to avoid coordinate drift
- Disable automatic system updates (midnight updates interrupt script runs)
- Original or MFi-certified cables
- Cooling brackets plus fans
See iOS Cluster Control Independent IP Configuration for details.
9. Troubleshooting
Problem: Telegram is reclaimed by the system when backgrounded.
iOS reclaims background apps under memory pressure. Add a periodic wake-up to scripts — for example, call systemKey("home") hourly and reopen the app.
function keepAlive() {
usbHidEvent.systemKey("home");
randSleep(1, 2);
usbHidEvent.clickPoint(200, 800); // tap the Telegram icon
randSleep(2, 4);
}
Problem: The group cannot be found when searching. Confirm the search term is accurate. Telegram group search is sensitive to case and special characters, so using the full @username works best.
Problem: Messages do not appear after sending. It may be blocked by the local network, or the account may be restricted from speaking. Check whether the account received a system notice from Telegram.
Problem: Coordinates drift.
Re-measure coordinates after each Telegram app update. After orientation changes, remember to call setScreenSize again.
10. Which Scenarios Are Worth Doing
The value of Telegram multi-account operations depends heavily on business type.
Worth Doing
- Products targeting overseas users (Telegram is widely used in Southeast Asia, the Middle East, and Europe)
- Cryptocurrency and Web3 businesses (Telegram is the primary community venue)
- Cross-timezone customer service (the case mentioned earlier)
- Multi-product community operations (one group per product)
Not Worth Doing
- Products targeting domestic Chinese users (the WeChat ecosystem fits better)
- A single product with a single community (manual operation is enough)
- Pure B2B industrial products (Telegram is not the primary channel)
The test: are your target users on Telegram? If not, no amount of technology helps.
Final Word
Telegram’s tolerance gives automation substantial operating room, but more room does not mean you can do anything.
Its real value is removing the constraint of “must be online in real time”. Common customer questions get answered by the system first, and only complex issues escalate to humans — people do people work, machines do machine work.
Get that division right and automation is meaningful efficiency. Get it wrong and you have just accelerated harassment.
About EasyClick: A phone automation AI-agent platform covering Android no-root, iOS no-jailbreak (proxy / Bluetooth HID / OTG HID) and HarmonyOS Next, offering script development, Apple cluster control, local central control & mirroring, and cloud control systems. → Explore all products
Ready to build it for real?
Every approach in this article can be built with EasyClick capabilities on iEasyClick — full documentation, developer tools and automation products, free to try.