Your automation is renting its inputs
Count the inputs, not the automations
There are 105 jobs loaded in the scheduler on this machine this morning. At least 32 of them read from an interface somebody else owns: a social platform's page markup, a search console export, a traffic API. None of those companies owe us notice before they change something, and none of them will send one.
When one of those inputs moves, the job on our end almost never crashes. It finishes on time and hands back something shaped like an answer. A crash gets fixed the same day, because somebody sees red. A number that is 80 percent too low gets pasted into a report.
The clock is part of the interface
On August 8 an analytics job here wrote a file full of zeros and reported success. Nothing was wrong with the account or the credentials. The traffic API had gotten slower than the 20 second budget the job allows each request, so every request lost its race and the job recorded zero visits, no top pages, and a bounce rate of 100 percent. Re-running it with that budget raised to 90 seconds brought back all seven days of data on the first try.
Two days earlier the same family of jobs broke from our side instead. Adding one API key turned a step that used to skip instantly into ten calls made one after another. A single one of those calls measured 23.7 seconds. The whole collection had 120 seconds to finish, so it ran past the limit and exited without writing anything at all. The key was an improvement, added on purpose.
How fast a rented system answers is part of what you are renting, and it is the part nobody publishes. Whatever timeout you set today is a guess about someone else's server next quarter, and adding capability on your own side changes the math for everything sharing that budget.
A zero is not an answer
A site we read from redesigned and swapped the readable names in its page markup for build-generated hashes. Every selector our reader depended on came back with nothing. The page still loads. A person still sees the content. The job still finished green, with an empty list.
Empty and unreachable look identical to everything downstream. So those jobs now carry a positive control, a case we already know has a nonzero answer, checked in the same run. If the control comes back zero, the zeros everywhere else are a report on our own blindness, and the run says so instead of announcing a quiet week.
The subtler version needs no redesign at all. One of our search reports built its headline impressions from the query level export, which the provider trims to protect rare searches. Same account, same four week window: the date level export said 40,217 impressions and the query level one said 7,379. Both numbers came from the vendor. Only one of them was the number.
Write down who owns each input
The version of this you can do yourself takes an afternoon. List every automation you run. Next to each one, write the input it depends on and who controls it. A supplier portal, a bank export, the format a customer emails you in, a page you read. Anything where the owner is not you is going to move eventually.
Then write down what normal output looks like: rows per run, a range, a total that should not swing by half. Most monitoring only asks whether the job threw an error, which is the one failure that was already going to get your attention. The check that catches a rented input asks whether today's output is about the size it usually is, and it is worth more than the error alert.
Their changes are not the only ones that matter. Re-test after your own: new credentials, a new step, a bigger list to process. Each of those changes the timing envelope for every other step in the same job.
This is not an argument for building everything yourself
Nearly everything worth automating in a small business reads from a system you did not write, and that is fine. Those reads just need to be treated as rented: a check on the way in, an expected shape, and somebody who notices the month the shape changes.
Taking that inventory of inputs is part of an AI ops audit. Noticing when one of them moves is the month to month job, which is what the managed side covers. It looks a lot like why automations fail silently, with the cause sitting outside your building instead of inside it.
The audit answers this for your business
Two weeks, $2,500 flat ($1,000 for the first three clients), and you get the map of your own automatable work with dollars on it.