Automation or custom software? A decision rule
When to wire tools together, when to build a system of record, and why the wrong choice costs more than either option.
Clients usually arrive with a solution in mind: "we need a CRM" or "we need to automate WhatsApp". The useful question is one level down — is this a process problem or a data ownership problem?
Automate when the system of record already exists
If your CRM, ERP or accounting package already holds the truth, and the pain is the manual movement between them, you need automation. Triggers, transformations, retries, an alert when a step fails. It ships in days, costs a fraction of a platform build, and it does not create a second database that disagrees with the first.
Build when nothing owns the data
If three people maintain the same list in three spreadsheets, no amount of glue will fix it. You need one schema, one set of permissions and one audit trail. That is custom software, and its cost is mostly in the modelling, not the screens.
The rule we use
- Can an existing system be the source of truth? If yes, integrate.
- Is the workflow identical every time, with no judgement? Automate it with code, not an agent.
- Does it require reading unstructured input and deciding? Add a model, with a confidence threshold and a human fallback.
- Does no system own the data? Build the system of record first, then automate on top of it.
Step four is where budgets explode, because teams try to automate a process that has never been defined. Automating chaos produces faster chaos.
A useful smell test
Ask what happens when the new tool is down for two hours. If the business stops, you are building a system of record and it needs backups, monitoring and a rollback plan. If work simply queues, you are building automation and it needs retries and an alert. Both are fine. Confusing the two is not.
More from the build.
What an AI agent actually costs to run
Build cost is the easy part. The arithmetic behind per-task inference cost, and why context length decides whether your agent is viable.
Why we ship static-first, even for dynamic products
Server-rendered HTML with islands of interactivity is not nostalgia. It is the cheapest way to hit Core Web Vitals on Indian mobile networks.