Where AI Belongs in a Business Workflow, and Where Deterministic Logic Must Stay

A language model is a capable reader and an unreliable accountant. Any step that must produce the same output for the same input every time, and be explainable afterward, belongs in deterministic code. Any step that turns messy human input into structure is a reasonable job for a model, provided a deterministic check runs after it. The useful framing is not AI or no AI. It is which component is accountable for the output when a customer asks why.

How a model ends up doing a job it cannot hold

The demo works and the tenth case does not

Early testing uses clean examples, because those are easiest to find. The cases that decide whether a system survives are malformed, ambiguous, or open to two readings. A model handles those by producing something plausible, which is exactly the wrong behavior.

Nobody can answer the customer's why

A customer questions a number and somebody has to say where it came from. If the answer is that a model produced it, you have no answer, and you will either honor a number you cannot explain or refund it. Neither outcome is one you want to repeat.

The prompt becomes undocumented business logic

Rules get written into a paragraph of English inside a prompt, because that was easiest. That paragraph is now business logic with no version history, no test coverage, and no reviewer. It gets edited by whoever has access, and nobody knows when a rule changed.

The model changes underneath you

Versions get deprecated and replaced on the provider’s schedule, not yours. A change that improves general performance can still shift outputs on your edge cases. If a model sits on the decision path, that shift lands on customers before anybody internally notices.

Extraction is trusted without validation

A model reads a document and returns a number. It is in the right format and looks reasonable, so it gets used. Format is not correctness. Without a range check or a comparison against the record it belongs to, a confident misreading passes straight through.

Task by task: which half of the system should own it

Read the second column as a default rather than a law. What holds across every row is the reason in the third column, which is almost always about whether the answer must be reproducible and defensible.

Model first, rule last, inside one workflow stepHow a step that needs both halves is assembled, with the model reading and structuring and deterministic code deciding.1The model readsDocuments and free text2It fills a schemaNamed, typed fields, notprose3Deterministic checksrunRanges, references,required fields4A rule decidesPrices, approvals,permissions5Both sides recordedInput, output and modelversion
A rule can validate a model's output. A model cannot validate a rule's.
TaskDeterministic or modelWhyWhat breaks if you choose wrong
Calculating a fee, tax, or commissionDeterministicThe same inputs must produce the same number, and you must be able to show the arithmeticTwo customers quoted differently for identical work, with no way to explain either
Reading a scanned or emailed document for fieldsModel, with validation afterLayout varies constantly, and this is pattern reading, which rigid code is bad atBrittle templates that break the first time a sender changes their form
Deciding whether a submission is completeDeterministicCompleteness is a checklist, and the checklist is knowable in advanceA submission accepted with a missing field that surfaces weeks later, downstream
Sorting free-text requests into categoriesModel, behind a confidence gateHuman phrasing is unbounded, and keyword rules miss the long tailEverything filed under other, or filed confidently in the wrong place
Approving something above a thresholdDeterministicAuthority is a policy somebody signed, not an inferenceA system that approved something nobody gave it authority to approve
Drafting a first-pass reply or summaryModelLanguage generation is the thing models are genuinely forStaff writing the same message repeatedly, or text that reads like a form letter
Matching an incoming payment to an open invoiceDeterministic first, model on the remainderExact matches are arithmetic, and only the leftovers need judgmentPayments applied to the wrong account and discovered at reconciliation
Noticing that something looks unusualModel, producing a flag rather than a verdictUnusual is a comparison against a pattern, not a rule anyone can writeLegitimate work blocked, or the case you needed raised passing silently
Enforcing who may see which recordDeterministicPermissions are a data question with a correct answerInstructions hidden in user-supplied text talking a system into revealing something
The pattern underneath the table: a model may read, classify, draft, and flag. It may not decide, calculate, or authorize. When a step needs both, put the model first and the rule last, because a rule can validate a model’s output and a model cannot validate a rule’s.

Assembling a workflow with both halves in their proper place

Draw the line where a number or a decision is produced

Walk the process and mark every point where something irreversible happens: a price set, an approval granted, a record created, a payment moved. Everything upstream of those marks is a candidate for a model. The marks themselves belong to code a person can read.

Give the model a schema to fill, not a question to answer

Asking for a structured object with named, typed fields produces something you can check. An open question produces prose that has to be parsed, and the parsing becomes its own failure source. Constrain the output shape and reject anything that does not match it.

Validate before anything acts on the output

Check ranges, check that referenced records exist, check that required fields are present, check that related values agree. This layer is unglamorous, and it is the difference between an extraction step you can run unattended and one that needs somebody watching.

Record what the model saw and what it returned

Store the input, the output, and the identity of the model and prompt version behind it, at the time it happened. When behavior shifts after a provider update, this is the only way to tell what changed and when. It is also how you answer a question about an old decision.

Keep the rules somewhere a non-programmer can read

Business rules belong in a table the person who owns the policy can review, not buried in code branches or prompt text. If the operations manager cannot read the current rules without asking a developer, they will drift from the policy they were meant to encode.

Adjacent decisions worth reading

Is this a fit for your business?

A good fit when

  • You are evaluating a proposal where a model sits somewhere on the decision path
  • Documents or free-text requests arrive in volume and somebody reads every one
  • A customer, regulator, or counterparty can ask you to justify an individual outcome
  • An early pilot worked and you are deciding what to trust it with next

Probably not a fit when

  • The process is fully structured and nothing arrives as prose or as a document
  • Volume is low enough that a person reading each item is the cheaper design
  • You are choosing a model provider, which is a different and later question

What to have ready

  • A stack of real inputs including the ugly ones, not a curated sample
  • The written policy for any step where a person currently makes a decision
  • A clear statement of which outcomes are reversible and which are not

Questions we get asked

If we give a model enough past examples, can it price work?

It can produce numbers that look like your past numbers, which is not the same thing. Pricing must be reproducible on demand, defensible line by line, and stable when a rate changes on a known date. A model gives you none of those, and the failure mode is a wrong number nobody can trace.

Does setting temperature to zero make a model deterministic enough?

It removes one source of variation and leaves the ones that matter. The prompt changes, the retrieved context changes, the provider updates the model, and the same input produces a different output on a date you did not choose. Determinism here means reproducible next year, not twice this afternoon.

Where does a model belong in an approval workflow, if not the approval?

In front of it. A model is well suited to summarizing what is being approved, pulling relevant clauses out of an attached document, checking the request has what it needs, and flagging anything inconsistent with similar past requests. The approval itself stays with a rule and a named person.

Do we need to tell customers when a model was involved?

It depends on your industry and your contracts, and that is a question for counsel rather than your developer. From the engineering side, if a step is uncomfortable to disclose, the discomfort is usually a signal that it sits on the wrong side of the line described here.

Related


Tell us what the process looks like now and we will map what a system would need to do. No obligation, and you keep the map either way.

Leave a Comment

Scroll to Top