AI automation for small business usually starts backwards
The pattern is easy to spot once you have watched it happen a few times. A company decides it needs AI, picks a tool, and runs a session to find something for the tool to do. Whatever gets chosen tends to be the process that demos well: visible, easy to explain in a meeting, and safely far from anything that would cost real money if it went wrong. Six weeks later there is a pilot nobody opens, and the lesson drawn is that AI is not ready yet. The technology was never the problem. The selection was.
A process worth automating announces itself before any code exists. It happens often, and it happens roughly the same way each time. Somebody can say clearly what a right answer looks like. Its inputs already sit somewhere a machine can read them. All four properties are observable this week, with a stopwatch and a list, and together they predict far more about how the project ends than the model you pick does.
Two things follow from starting with the process instead of the tool. First, most of the useful work has nothing to do with AI: counting, timing, writing rules down, getting inputs into one readable place. Second, the build-or-buy argument that teams love to have early is the last decision rather than the first, because it only makes sense once you know the shape of the work. We wrote up the thresholds that decide build vs buy separately, and it will not help you until this part is done.
Four tests that decide whether a process is worth automating
Each test is a measurement rather than an opinion, and each one can come back negative. That is rather the point: a test that cannot fail is a slogan, and a slogan will walk you cheerfully into a long build. Take one process at a time, write the answers down where other people can see them, and be strict about the failures.
| Test | How to measure it | It passes when | It fails when |
|---|---|---|---|
| Volume | Count the runs in the last full month, then time ten of them with a stopwatch. | The same task ran dozens of times or more, and the hours add up to something you would notice missing. | It ran five times, and each run was different work wearing the same name. |
| Repeatability | Write the rules down as if you were handing them to someone starting on Monday. | A competent stranger could follow your page and reach the answers you would. | The honest description of the decision is "you just know after a while". |
| Cost of a wrong answer | Ask what happens if one output is wrong and nobody notices for two weeks. | Wrong answers are cheap, or a machine can catch them by checking against a source. | A wrong answer is expensive and invisible. That sets the shape of the build, it does not end it. |
| Data availability | Point at the system the inputs live in, and export a week of them. | The inputs come out of a system through an export or an API, in a shape you can read. | The inputs live in an inbox, in one person's head, or in a photo of a whiteboard. |
Do not average the four scores into a verdict. Volume and repeatability are gates: fail either one and the project has no economics behind it, however interesting the technology looks. The cost test does not disqualify anything, it decides the shape - an expensive error nobody would notice means the system drafts and a person approves. And the data test is really a schedule test, because if the inputs are not in a system yet, that is your first project and it is worth doing on its own merits.
If the rules do not fit on a page, the model fills the gap by guessing
Repeatability is the cheapest test to run and the easiest one to talk yourself out of, because writing the rules onto one page feels like paperwork right up until you try it. A pipeline that publishes game-wiki articles end to end works because that page already existed before any model did: the articles follow a fixed template and the platform's conventions, and the linking rule is explicit enough for a machine to enforce - link only to pages the live sitemap says are real. Each term also arrives carrying its own context, down to which service URL the call to action should point at. The model fills a known shape instead of deciding what a good article looks like.
Run the same exercise on a process where the rules live in someone's judgement, and the page comes out as a list of exceptions. That does not disqualify the process, it narrows it: automate the part that follows the template and leave the exceptions with the person who recognises them. Rules that survive being written down also tend to be rules a machine can check afterwards, like "the link resolves" or "the figure matches the record", so writing them down quietly answers much of the cost test as well.
Volume is not your average day, it is your worst minute
The cleanest passing volume test we have measured sits in that same content pipeline. Writing one wiki article by hand took a writer 20 to 40 minutes: a structured HTML body, internal links to pages that actually exist, a slug, a meta description, a call to action, all consistent with the platform's conventions. One article at that price is fine. A catalog of hundreds of terms that keeps growing is not, and the work is repetitive and rule-bound from start to finish. Time per item multiplied by items per month is the entire argument, and you can compute it before committing to anything.
Volume is easy to underestimate, though, because people count the wrong unit. A Telegram bot we run over job feeds looks trivial from outside: watch a feed, send on whatever shows up. With thousands of users who each define their own filters, one new posting can match hundreds of them at once, so a single event becomes hundreds of deliveries, all due within seconds and all under a rate limit. That is how the system ends up carrying millions of messages a day. The number worth measuring is not events per day, it is actions per event multiplied out.
And volume rarely arrives as a steady stream. On the backend of an OTT streaming platform, the design constraint is a live match kicking off and more than ten thousand viewers pressing play inside the same minute. A system that holds at average load and falls over at the peak is the wrong system, because the peak is the only moment anyone remembers afterwards. Your version of that minute is smaller and just as real: the end-of-month invoice run, Monday morning's queue, the hour after a campaign goes out.
So measure the busiest hour of your busiest day, not the monthly total divided by thirty. An automation that cannot survive that hour gets switched off during the exact week it was supposed to earn its keep, and it never gets switched back on.
How a wrong answer gets caught decides how much checking you build
The third test is the one people answer too fast. "It has to be right" is not a measurement. The useful question is narrower: if this output is wrong, what notices, and how long does it take?
On a RAG assistant over a 500K-record knowledge base, the failure mode was precise. Ask for a number and the model would answer with a specific figure pulled from its own memory instead of from the retrieved data - confidently, precisely wrong. A vague answer makes somebody go and check. A precise one gets pasted into a document and forwarded, which is why it is the expensive kind. The fix was not a better model. Every numerical claim is now validated against the source chunk it supposedly came from before the answer is returned, and a claim with no retrievable source is dropped or flagged rather than smoothed into fluent prose. Retrieval underneath is hybrid, dense vectors and BM25 combined and then reranked, so exact-name matches and semantic matches both reach the final context.
The same principle decided whether design-to-code was automatable at all. In a pipeline that turns Figma files into frontend code, auto-layout edge cases were leaving roughly 15% of frames misaligned. That percentage is not the interesting part. What made the process safe to automate is that a machine can tell when the output is wrong: generated code is re-rendered headlessly and diffed pixel by pixel against the original frame, and anything that fails returns to the queue carrying its diff, so the next attempt aims at the specific mismatch. A structural gate runs before that, requiring every component name, prop and import to resolve before a single file is written.
So the practical form of the cost test is a question about detection. How would a machine know this output is wrong? If the answer is "compare each figure to the record it came from" or "call the URL and see whether it resolves", the whole loop can run unattended. If the answer is "an experienced person would sense that something is off", the automation ends at a draft and a human signs it. Both are good outcomes. Confusing the two is how deployments go quiet, which we took apart failure by failure in why AI deployments fail.
If the inputs are not in a system yet, that is the first project
The fourth test sets your timeline more than anything else on the list. When the data is already addressable, the work is mostly plumbing and checking. A voice race engineer for live sim racing has to answer a driver in under two seconds while the car is moving, which sounds impossible until you notice that the data was never the obstacle: the simulator exposes it. The build was about shaping that feed into 19 tools the agent can call, polling at 100 ms intervals, and keeping completed laps for all 64 cars in a database rather than in the model's context.
The opposite case is far more common in a small company. In an assistant built for a university's leadership, the numbers existed but lived in silos: admissions and enrollment in one system, attendance and results in another, staff records and department reports in a third. Leadership saw them only as periodic reports assembled by hand, which meant the picture was already stale by the time it was complete. The first half of that project had nothing to do with a model. It was one interface over all of it, so a question could be answered from current records instead of last month's spreadsheet.
Translated to a fourteen-person company, this usually reads: the answer lives across two spreadsheets, an ERP nobody exports from, and one person's inbox. Then the first project is not an agent. It is making those inputs readable on a schedule, which is unglamorous work and cheaper than it sounds. Nothing you build later works without it. Occasionally regulation does that job for you. A company invoicing through a Polish entity now receives structured invoice XML instead of PDFs, so the data test passes on day one and the real work moves downstream into matching and coding, which is the pipeline we mapped in the KSeF guide.
Some processes earn an approval step, not a no
Failing the cost test does not mean the work stays manual forever. It means the machine prepares and a person decides. Drawing that boundary explicitly is what keeps a system usable in the places where mistakes are expensive, and it is usually the difference between a tool people keep using and one they quietly stop trusting.
The university assistant works this way by design: it drafts, reminds and reports, but assignments and decisions are confirmed by a person, and every action is logged, so there is a clear trail of who approved what. The race engineer draws the same line in a much faster environment. Reading telemetry is fully autonomous, while pit commands pass through a human gate before anything reaches the car. Reading is cheap to automate. Acting on the outside world is where the gate goes.
The rest of the decision fits in a table. Match your process to the row, and the call is usually obvious once the four tests are written down.
| Shape of the process | The call | What that looks like in practice |
|---|---|---|
| Runs often, rules are writable, wrong output is machine-detectable | Automate end to end | Generation plus an automatic check against the source; a person reviews samples, not every item |
| Runs often, rules are writable, wrong output is expensive or invisible | Automate the draft, keep the approval | The system prepares and proposes, a named person confirms, every action is logged |
| Answers questions from data the company already holds | Automate the reading, gate the acting | Read access is autonomous; anything that sends, pays or commits needs a confirmation |
| Runs a handful of times a month and every run is different | Leave it alone | The build never pays for itself, and there are too few runs to tell good output from bad |
| Inputs live in inboxes, in people's heads, or in photos | Do the data project first | Getting inputs into one readable place is the automation; the model comes after |
| The process itself changes every few weeks | Wait until it stops moving | You would be automating a draft of a process, then rebuilding after each change |
One caution about the second row. An approval step only helps if the person approving can tell right from wrong quickly. If confirming an item takes as long as doing it by hand, you have added a step rather than removed one, and the honest fix is to narrow what the system attempts until its output is checkable at a glance.
A worked example, from measurement to done
This scenario is illustrative, a composite rather than a client result. The only measured number in it is the per-item writing time from the content pipeline above; everything else is arithmetic you would redo with your own figures.
A fourteen-person distributor of industrial parts sells from a catalog of roughly four hundred products. Every new or revised product needs a description page: a short spec summary, compatibility notes, and links to related parts already on the site. One person writes them between other duties, and around thirty items go through in a month.
Run the tests. Volume passes, modestly: thirty runs a month, the same task each time. Repeatability passes, because the descriptions already follow a template and the specs come from a fixed set of fields. The cost of a wrong answer is high, since a wrong spec figure causes returns and the reader will not catch it, but it is machine-detectable, because every number in the text should appear in the product record it came from. Data availability passes too: specs live in the ERP and can be exported, and the site has a sitemap, so the related-part links can be verified. Four passes, with the third one passing only because a machine can do the checking.
Before anything gets built, time ten real items. On the shipped pipeline we measured, one comparable article took a writer 20 to 40 minutes. Suppose this company lands in the same range and takes thirty minutes as its working figure. Thirty items a month at half an hour each is about fifteen hours a month on one task, and that number is worth writing down, because it is the only honest way to judge the result later. Borrowing our figure instead of measuring your own is how ROI estimates end up fictional.
The build then follows the tests rather than the tool. Pull the product record from the ERP. Generate the description from it. Check that every figure in the text matches a field in the record, and that every internal link returns a real page, which is the same live link check the content pipeline runs before it publishes anything. Items that pass go out. Items that fail come back with the specific mismatch attached, and a person handles what is left.
Define done before starting, and define it so it can fail. A workable form: set aside fifty items the system has never seen, run them, and require that every published figure matches the ERP and every link resolves, with everything else routed to a human. "It writes good descriptions" cannot come back false, so it is not a criterion at all. Once done is defined, the budget conversation becomes possible as well, and we itemized where the money goes in a breakdown of agent development cost.
What to do in the next two weeks
None of this needs a vendor, including us. The sequence below fits around a normal job, and the first step is the one that changes the most.
1. List every process that ran more than twenty times last month. Your calendar, your ticket queue and your sent folder are better sources for this than any workshop.
2. Take the top three by hours consumed and write the rules for each on one page, aimed at someone starting Monday. The one you cannot write is out for now, and that is information rather than failure.
3. For each survivor, answer the detection question in writing. How would a machine know this output is wrong, and which source would it check against?
4. Find the system each input lives in and export a week of real data from it. If there is no system, stop here and make that the project.
5. Time ten real runs and keep the numbers. This is your before. Without it, every claim about what the automation saved is a story.
6. Draw the approval boundary on paper: what the system may do alone, what a person confirms, and what gets logged either way.
7. Only now open the build-or-buy question and put a price on it. In that order, the quotes you get are about your process rather than about someone's product.
8. If the company has a Polish entity, check whether the first build is grant-eligible before you sign anything - we mapped what a grant of each size actually buys in AI grants in Poland.
The step that matters most costs nothing: a list of processes with real counts and real times next to them. Most automation decisions get easier the moment that list exists, and a few projects die on it, which is the whole point of writing it.
(Building these systems is what we do, so the bias is on the table.) If you would rather have a second pair of eyes on the shortlist, a short audit is a low-key way to get one - you leave with the two or three processes most likely to pay off and the checks each one needs.
FAQ
What does a first AI automation project cost?
A first AI automation project has no honest single price, and a quote given before anyone has seen the process is a guess wearing a decimal point. What is predictable is where the money goes in an agent build: integration with your systems and the checking layer around the model, plus however many iterations it takes once the first version meets real inputs. The model itself is usually the smallest line. Walking in with volume and time measurements changes what you get quoted, because it changes the scope of what has to be built.
How long does a first AI automation project take?
How long a first AI automation project takes depends on where its inputs live, far more than on which model you pick. If the inputs already come out of a system, a first useful version arrives quickly and most of the calendar goes into the checking layer and the edge cases. If the inputs live in inboxes and spreadsheets, that part is the project, and it is worth pricing separately so it does not hide inside an AI budget and get blamed on the AI later.
What if it gets something wrong?
An AI automation will get something wrong eventually, so decide in advance what catches it. Where a machine can compare the output against a source, the check runs automatically: a design-to-code pipeline we run re-renders its own output and diffs it pixel by pixel, which is how roughly 15% of frames got caught instead of shipped. Where no such comparison exists, the system produces a draft and a person approves it. The setup to refuse is the one that states facts with no traceable source and no gate.
Do we need to clean up our data first?
Not the whole company's data, no. You need the inputs for one process to come out of a system in a readable shape, on a schedule. That is a much smaller job than a data cleanup project, and it tends to be worth doing even if the automation never happens, because the same export usually answers three other questions people were guessing at.
What happens if the automation fails?
Design the failure path with the same care as the happy path. On a feed system carrying millions of messages a day, failed sends are requeued rather than dropped and rate-limit errors back off and retry, so a bad minute costs latency instead of data. The small-company version is simpler: if the automation stops, the work goes back to the queue it came from and a named person is told. It has to be built deliberately, because the default behaviour of a broken automation is to stop quietly and let everyone assume it is still running.
- 21 July 2026Published.