1. The man who stopped outsourcing
Late last year someone running cross-border customer service told me he wanted to bring his scripts back in-house.
His situation: two years earlier he had paid an agency to build twelve iOS automation scripts. They ran well and he paid once, in full. The problem arrived in year three. The platforms changed their layouts, every page path in the scripts broke, and all twelve went down together. He contacted the original author, who said edits were now billed per script at around a hundred dollars each.
Twelve scripts came to more than a thousand, and the next layout change would cost the same again.
What he took from it is the point of this article. The first delivery price of a script was never its real cost. The real cost is how many times it gets edited over the next two years, and who gets to decide each time.
So when you choose where your scripts come from, look at the things that happen repeatedly, not at the number on the quote. Five of them decide it.
The conclusion up front. None of the three routes wins on every dimension. Building wins on control, buying wins on start-up speed, and AI generation wins on unit cost. Which one fits depends on whether your flows change and whether anyone on the team can take the work over.
2. Five metrics for choosing where scripts come from
These five are the hard ones, whichever route you take.
1. Delivery speed
This metric decides how soon you see the first result.
| Criterion | Good | Average | Poor |
|---|---|---|---|
| First usable script | Same day to three days | One to two weeks | A month or more |
| Small flow change | Done the same day | Wait for a slot | Renegotiate scope |
| Adding a platform | Reuse the existing flow within two days | Rewrite one | Re-quote |
| Cost of experimenting | Low, change freely | Moderate | Pay on every edit |
The speed of the first delivery matters less than the speed of the edit. The question to ask is how long it takes if you want one more condition added tomorrow.
2. Cost per script
This metric decides how the arithmetic works.
| Criterion | Good | Average | Poor |
|---|---|---|---|
| Initial build | Your own hours | Priced per script | Priced per script with no maintenance |
| Later edits | Your own time | Charged per edit | Charged per edit, at rising rates |
| Reuse | One flow, several platforms | One per platform | One per account |
| Hidden cost | Low | Communication and scheduling | Rework cycles |
Per-script pricing looks clean, but it assumes the flow will never change again. Flows do change, so multiply the price by the number of edits you expect over the next six months before comparing.
3. Maintainability
This metric decides whether you recognise your own setup in three months.
| Criterion | Good | Average | Poor |
|---|---|---|---|
| Parameters | Accounts and fields fully externalised | Partly external | Hard-coded |
| Error handling | Retries, timeouts, screenshots for evidence | Some of it | Stops on any error |
| Deliverable | Source code or a project you can package yourself | An executable | Only runs remotely on someone else’s machine |
| Handover | A new person can read it | The author has to walk you through it | Nobody can take it over |
This metric decides whether you are running a system or maintaining something only one other person understands.
4. Ceiling on capability
This metric decides whether you can take on harder work later.
| Criterion | Good | Average | Poor |
|---|---|---|---|
| Logic | Conditions, loops, retries, sub-flows | Sequence plus simple conditions | Record and replay only |
| Recognition | Template matching plus OCR | One method | Coordinates only |
| Multi-device | Dispatch by group, parameters read per device | Single machine | Single machine |
| Extensibility | An API to connect your own systems | Closed | Closed |
Businesses grow. Today you need scheduled posting; next year you may need order intake, data roll-up and branching on results. Asking what happens when you need more logic can save you a full rebuild.
5. Lock-in risk
This metric decides your bargaining position a few years out.
| Criterion | Good | Average | Poor |
|---|---|---|---|
| Code ownership | Source in your hands | An executable delivered | A remote account only |
| Dependency | Runs without the author | Needs the author for changes | Requires the author’s service to run |
| Network behaviour | Auditable, no unknown calls | Unclear | Hard-coded remote addresses |
| Migration cost | Logic carries to another platform | Rewrite needed | Start from zero |
Outsourcing itself is not the problem. The problem is handing over the edit rights along with it. The test is one sentence: if you could not reach this person tomorrow, could you still change your scripts.
3. Three routes, costed side by side
| Dimension | Build in-house | Buy ready-made | AI generation |
|---|---|---|---|
| First delivery | Slow, one to four weeks | Fast, same day to a week | Very fast, same day |
| Per-unit cost | Your own hours | Priced per script | Close to zero |
| Freedom to edit | Fully yours | Depends on the author’s schedule | Fully yours |
| Complex logic | Highest ceiling | Depends on the author | Moderate, exception branches need a human |
| Parameterisation | Depends on how you write it | Often missing | You still organise the config |
| Skill required | Someone who can code | None | None |
| Long-term risk | Staff turnover | Author disappears, per-edit billing | Logic you cannot audit, limited control |
Two things draw the line between the routes: whether your flows will change, and whether your team can take the work over. On top of that, whatever gets delivered has to meet a standard, and the five evaluation criteria for buying cluster control software work directly as an acceptance checklist.
4. Which route suits which team
In plain terms, each route suits a different kind of buyer.
Building suits teams whose flows keep changing and who have at least one person who can read code. The typical case is a matrix that runs long term on platforms that keep revising their layouts. The cost is your own hours; the payoff is that no edit requires asking anyone.
Buying suits flows that are already stable and will not move for a while, such as a single daily order patrol. It is fast, and the price is that edit rights stay with someone else.
AI generation suits one-off tasks, exploratory work and small teams with no development resource. Its unit cost is the lowest, and its weak point is exception handling, which needs a human to complete. Which tasks belong on each side of that line is covered in this division of labour.
Most teams end up on a mix. A durable combination is writing or buying out the core flows, letting AI handle edge cases, and only formalising a flow once it proves it needs to exist.
5. Four team setups
1. One person handling thirty devices
No one writes code, but the flows will change. Visual workflows plus AI generation is the practical answer: put account names, keywords and posting windows in a config table and keep a single version of the flow itself. The approach is described in more detail in phone automation without writing code.
2. A team of two
One understands the business, one understands code. Write the core flows in-house and hand the edges to AI. The dividing line is whether the flow will move in three months: if it will, write it; if it will not, buy it or let AI produce the first version. If the machine will eventually run a matrix, the scripts also need to meet the parameterisation standard set out in the matrix comparison, or it will become uneditable as accounts multiply.
3. Already outsourcing
Do not pull everything back at once. Rewrite the two or three flows that change most often, then take the rest back gradually as they stabilise. Meanwhile put the edit rate and the deliverable form into the contract, which is worth more than negotiating the headline price down.
4. Spanning several markets
The same flow is implemented differently on different platforms. What matters most here is multi-platform coverage: whether one flow can be reused across Android and HarmonyOS, and across markets. The platform comparison has a ready-made table for it.
6. Six traps in the handover
Treating working as maintainable. Acceptance only checked that it ran, not whether the code was parameterised. Three months later, adding accounts means editing thirty files.
Buying an executable only. Cheap and fast to deliver, but every change goes back to the author, and you cannot audit what else it does on the network.
No exception branches. The script runs beautifully in a demo and stops on a pop-up on a real device. Ask what happens when the network times out, and an author who cannot answer usually has not written it.
One script per account. The most common and most expensive pattern. Device count scales linearly and twenty accounts means twenty files.
Accepting on results only, with no evidence trail. When something goes wrong you need to see what was on screen at the time. Screenshots and logs in the delivery list are worth more than extra features.
No version history. You break something, want to roll back, and the previous version was overwritten. Copying a dated backup once a day is better than nothing.
7. Two real cost baselines
What you measure is the human time replaced, not the price tag on a script.
| Item | One-off | Per year |
|---|---|---|
| Build in-house | One to four weeks of your hours | Maintenance and iteration time |
| Buy ready-made | Priced per script | Charged on every edit |
| AI generation | Close to zero | Time spent completing exception branches |
| Devices and licensing | Charged per device | Grows with the matrix |
| Rework from platform updates | None | Depends on how often platforms change |
Take a concrete case. A task takes one person forty minutes a day, roughly two hundred and forty hours a year. If the script took three days to build and debug, it pays back in one to two months. If the task runs once a month, writing a script is not worth it and letting AI handle it occasionally is better.
One cost is easy to miss: rework after a platform update. It never appears on a quote, and it happens once or twice a year. Asking who is responsible when a platform changes matters more than asking about price. To put your own device count through the numbers, use the figures in the cost breakdown.
8. Questions that come up
What do you need to know to write iOS automation scripts yourself? Basic syntax in a general-purpose language is enough to start; the rest is learning the functions the platform exposes. The hard part is not syntax but structuring the flow so it can be parameterised and reused.
Can bought scripts be modified? Usually not, or only by the author. Ask about the deliverable form before paying: source code, an editable project, or an executable. That answer decides whether you hold the initiative later.
Can AI-written scripts be used directly? They run, but not in production. Fill in the exception branches first: timeouts, pop-ups, missing targets, restricted accounts. Then run a small batch.
What does a small team with no technical staff do? Use visual workflows. Assembling a flow needs no code, and putting accounts and keywords into a config table means adding devices is adding rows. Complex branching is awkward, but it covers most scenarios.
How much does outsourcing cost compared with building? The first cost is usually lower outsourced, and the three-year cost often reverses. The difference lives in the number of edits: the more the flows change, the more building wins.
Is it safe to have someone else write your scripts? It depends on the deliverable and the network behaviour. Source code you can audit, no hard-coded remote addresses, and the risk drops sharply. Getting those into a contract beats a verbal assurance.
Should you parameterise from the start? Yes. Parameterisation is not an optimisation, it is a precondition. At three accounts it looks like waste; at thirty it decides whether you can still grow.
What is the best combination of the three routes? Write the core flows, hand one-off edge tasks to AI, and buy or template the actions that have stabilised. You keep the critical flows in your own hands without hiring for every small thing.
9. Five rules for choosing
One. Ask first whether this flow will change in three months. If it will, do not hand over the edit rights.
Two. Get the edit price into the contract. With per-script outsourcing, negotiate the first price and every later edit together.
Three. The acceptance list has to include parameterisation, error handling, screenshot evidence and code ownership.
Four. Small teams should look at visual workflows first. They are not strictly better than code, but they mean you never have to find someone for every change.
Five. The three routes stack. Build or buy out the core, let AI handle the edges, and decide later what deserves to be formalised.
10. In closing
With scripts, the code is only one part of it.
What decides the cost is how many times it gets edited over the next two years, and how long you wait each time. Speed and price on the first delivery are easy to compare. The repeated events that follow decide whether the thing ends up as an asset or a burden.
One extra day spent deciding who will maintain it is cheaper than the thousands you save on the build.
About EasyClick: A phone automation AI-agent platform covering Android no-root, iOS no-jailbreak 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 on the EasyClick phone automation platform — full documentation, developer tools and cluster/cloud-control products, free to try.