AWRA OpsHub Search

The Workflow Assistant That Is Mostly Not a Model

Four of the six actions in our workflow assistant contain no language model at all — they are keyword tests and arithmetic. We think that is the right design, and we would rather explain why than let the word "AI" on a button do work it has not earned.

AI & Insights Washingtone Aura 14 min read

Somewhere in a Kenyan procurement document right now there is a requirement that reads "the system shall include AI-assisted automation", and it will be marked as met by every vendor who bids. The phrase has no test attached to it. A product that runs a large language model and a product that runs eight lines of keyword matching both satisfy it, and the second one is cheaper to build and impossible to distinguish from a demo.

So here is our own workflow assistant, opened up. Six actions. Four of them involve no model whatsoever. Two of them optionally ask a provider to rephrase something and fall back to fixed text when none is available. We are telling you this because the alternative is letting you assume more, and because in this particular case the deterministic version is genuinely the better product — which is an argument worth making with the evidence in front of you.

6
actions the workflow assistant offers
4
that never contact a language model
4
workflow blueprints it can produce, in total
0.84
confidence on the template used when nothing matched

Describe an automation, get one of four things

The headline action is the one that looks most like magic: type a sentence describing an automation you want, and a draft workflow appears with a trigger, a condition and an action. What actually happens is that your sentence is lowercased and run through four keyword tests, in order, and the first match wins.

The complete decision table

If your sentence contains You get

"invoice" or "overdue" Overdue invoice follow-up

Triggers on the scheduled overdue-invoice scan, conditions on days overdue greater than zero, and creates a high-priority collections task. Stated confidence: 0.80.

"po" (as a whole word), "purchase order" or "delayed" Delayed purchase order escalation

Triggers on the delayed-PO scan, conditions on days delayed greater than zero, creates a high-priority procurement task. Stated confidence: 0.79.

"quote" or "quotation" Quote expiry reminder

Triggers on quotations expiring, conditions on three days or fewer until expiry, creates a medium-priority sales task. Stated confidence: 0.77.

anything else at all Low stock follow-up

Triggers on the low-stock event, conditions on stock at or below five units, creates a high-priority inventory task. Stated confidence: 0.84 — the highest of the four.

Read the last row twice. It is not a match, it is a fallback: "email me when a new employee finishes probation" produces a low-stock workflow, and does so with more stated confidence than any of the three genuine matches. The number is a hard-coded literal in the template, not a measurement of anything, and this is the clearest illustration in our own product of why a confidence score without a definition is decoration.

A matching bug we found writing this, and fixed

The purchase-order test looked for "po" as a bare substring, which meant it matched inside ordinary words: su-ppo-rt, po-licy, re-po-rt, po-stage, com-po-nent, de-po-sit. A prompt like "create a task when a support ticket is reopened" was therefore drafted as a delayed-purchase-order escalation, and the only clue was the template name on the resulting draft. It now matches "po" as a whole word only. This is the characteristic failure of keyword matching and the honest cost of the approach — it fails in ways that are silly rather than subtle, which is at least a good property in a bug.

All six actions, and what is behind each

Action What is actually behind it Calls a provider? What you get
Draft a workflow from a sentence Four keyword tests over your lowercased text, with a fallback No A real inactive workflow with rules and actions
Recommend templates A fixed list of four, minus any event you already automate No Up to four suggestions with a stated reason
Spot automation opportunities Counts of your failed logs, skipped logs and inactive drafts No Up to three recommendations with computed confidence
Build a condition from a phrase Keyword tests for the field and operator, a regular expression for the number No One rule you can edit
Explain why a workflow failed Keyword tests on the log message produce a cause, then a model is asked to rephrase it Optionally Plain-language explanation plus fixed next steps
Draft a notification message A fixed template body, then a model may rewrite it; invented placeholders are stripped Optionally A subject and body using approved variables only

The two optional ones are worth a sentence each, because they show the pattern we prefer when a model is involved: it is given a deterministic answer and asked only to say it better, and if it is unavailable the deterministic answer is what you see.

The failure explanation first works out a cause from the log message — a connector or webhook that did not complete, a permission block, missing required data — and pairs it with fixed, safe next steps. Only then is a model asked to explain that cause to a non-technical administrator in two or three sentences, grounded on what was already determined. The next steps never come from the model.

The message draft is the more interesting of the two, because it demonstrates a control worth copying. The model is told which placeholder variables it may use, and then anything else it invents is stripped out by pattern match before you see it. A drafted message cannot reference a variable that does not exist in your workflow context, no matter how plausibly the model names one. That is not trust, it is a filter, and it is the correct way to accept structured content from a generative system.

Give the model a right answer and ask it to phrase it. Never give it a question and accept its answer as configuration.

The pattern behind every AI feature we ship

Why deterministic is the better product here

It would be straightforward to replace the four keyword tests with a model call and a schema, and the demo would be far more impressive. We have not, and the reasons are not cost.

A workflow is configuration, not prose. It runs unattended, against live records, creating tasks and sending messages, for as long as nobody turns it off. The output of this feature is not a paragraph a human reads and judges — it is a rule that will execute at 3am next March. Generated configuration is the highest-risk category of AI output there is, and the industry has been remarkably quiet about that.

Deterministic output is reviewable. The same sentence produces the same draft every time, so a colleague can reproduce what you got, and an auditor can be shown the mapping. A model that produces a slightly different workflow on each attempt cannot be reasoned about — you are reviewing one sample of a distribution.

It works with no provider enabled. Four of the six actions function on a deployment with AI entirely switched off, which matters a great deal to organizations that cannot transfer data outside Kenya. A feature that degrades to nothing without a provider is a feature those organizations do not have.

The honest cost of all this is that the drafting action is far less capable than it appears. It cannot draft a workflow for anything outside those four blueprints, and it will silently give you the inventory one instead of saying so. We would rather that limitation than a generated automation nobody can reproduce.

What a draft actually creates

This is the part the feature gets right, and it is more important than the drafting logic. A drafted workflow is not a suggestion on a screen — it is a real object in your account, created in a deliberately harmless state.

  1. The workflow is created inactive, and flagged as a draft

    Two separate markers: it is switched off, and its lifecycle status says draft. Nothing it contains can fire until a person publishes it, and every review screen that lists drafts will show it.

  2. Its rules and actions are written out in full

    Not a description of a workflow — the actual condition rows and action rows, editable in the normal editor. You are reviewing configuration, not a proposal, which means the review is the same review you would do on your own work.

  3. The suggestion is recorded, with your original prompt

    Stored against your organization and the workflow it produced, with who asked and what they typed. Unlike the support copilot, workflow suggestions are kept — so you can answer later what the assistant was asked and what it proposed.

  4. A version snapshot is taken, labelled for human review

    The workflow versioning system records the draft with the note that it was AI-assisted and created for review. If somebody publishes it and it misbehaves, the history says where it came from.

  5. The response carries assumptions and risk warnings

    Each template states what it assumed — that low-stock intent means the items module and a stock threshold, for instance — plus a warning to confirm the specific numbers, and a standing warning that AI drafts are inactive and must be reviewed, tested and published by an authorised user.

  6. Then you simulate it before you publish

    This is your step, not the assistant's, and skipping it is the only way this feature can hurt you. The threshold of five units and the three-day expiry window are placeholders the template invented — they are not your business rules until you have looked at them.

The confidence numbers, decoded

Every response from this assistant carries a confidence figure, and none of them is a probability. Since they are the most likely thing to be misread, here is what each one actually is.

Where you see it What the number is How to read it
On a drafted workflow A literal written into the template — 0.84, 0.80, 0.79, 0.77 Ignore it. The highest belongs to the fallback template, which is used when nothing matched
On a recommended template A literal, 0.86 down to 0.78 A rough ordering of how generally useful we think each template is
On a spotted opportunity 0.55 plus 0.05 for each failed log, capped at 0.95 Rises with how many failures you have, not with how sure anything is
On a failure explanation A flat 0.78, always Carries no information at all
On a condition built from a phrase 0.76 if a number was found in your text, 0.58 if not The only one that varies with your input, and the only mildly informative one
On a drafted message A flat 0.74, always Carries no information at all

How to test an "AI-powered" claim in twenty minutes

Four experiments to run in any vendor demo

None of these require technical knowledge. Each one distinguishes a model from a lookup table, and either answer can be fine — you just need to know which you are buying.

Ask for the same thing twice, worded differently

Make them prove it: Type "remind me when stock runs low" and then "alert the storekeeper if inventory falls below reorder level". Identical output means templates. Different output means generation. Then ask which one they think you should prefer for something that runs unattended.

Essential

Ask for something genuinely outside the product

Make them prove it: Request an automation for something they cannot possibly support — "email the county government when a licence expires". A lookup table will hand you something unrelated with a confident label. A model will attempt it and may invent fields. Both answers are informative; a blank refusal is the best one.

Essential

Ask what the confidence number means

Make them prove it: Ask how it is calculated and what a 0.84 would mean in practice. If the answer is not a formula or a definition, it is decoration — which is fine, as long as nobody on your team is going to treat it as a probability.

High

Ask whether a generated automation can activate itself

Make them prove it: The only answer that should satisfy you is no, with a demonstration that the draft is created switched off. Anything a language model produced that can execute against live records without a human publishing it is a category of risk you have not assessed.

Essential

Ask what the assistant does with no internet connection

Make them prove it: Reveals immediately which parts are local. For organizations that cannot transfer data abroad, this is the whole question, and the answer determines whether the feature exists for you at all.

High

What we do and do not do

The straight answer on the workflow assistant

What AWRA OpsHub does today

  • Four workflow blueprints — overdue invoices, delayed purchase orders, expiring quotes and low stock — draftable from a sentence, each producing real rules and actions rather than a description.
  • Every draft created inactive and flagged as a draft, with a standing warning that it must be reviewed, tested and published by an authorised person.
  • Suggestions recorded and kept: your original prompt, who asked, what was proposed, and the workflow it produced.
  • A version snapshot on creation, labelled as AI-assisted and created for human review, so the provenance survives in the workflow's history.
  • Deterministic template recommendations that exclude events you already automate, and opportunity detection computed from your own workflow logs.
  • Failure explanations grounded on a deterministic cause, with fixed safe next steps that never come from a model.
  • Placeholder filtering on drafted messages: any variable the model invents is stripped before you see it, so a message cannot reference something that does not exist.
  • Four of the six actions working with no AI provider enabled at all.

What it does not do

  • Only four blueprints exist, and anything unrecognised silently becomes the low-stock one. There is no "I could not understand that" response.
  • The confidence numbers are literals, not measurements, and the highest one belongs to the fallback. They should be renamed or removed and currently are not.
  • The thresholds in every draft are invented — five units, three days, zero days overdue. They are placeholders, not readings of your business, and nothing marks them as such beyond a general warning.
  • No natural-language editing of an existing workflow: the assistant drafts new ones and cannot be asked to change one you already have.
  • No simulation triggered from the assistant. The simulator exists in the workflow module; you have to go and use it.
  • No learning of any kind. It does not improve from which drafts you publish and which you discard, and it never will, because there is no model to adjust.
  • No Swahili or multilingual prompt handling — the keyword tests are English words, so a prompt in another language falls through to the low-stock fallback every time.

Two of these are worth your attention when reading a demo of anybody's product. The silent fallback is the one that misleads — a system that always produces something looks more capable than one that admits it did not understand, and the honest behaviour is the less impressive one. And the invented thresholds matter because they are the part that will actually misfire in production, long after everyone has forgotten where the number five came from.

Our take

Generated configuration is the riskiest form of AI output in business software, because unlike a paragraph it executes unattended long after the person who accepted it has moved on. For that reason we would rather ship four honest templates than a model that invents a workflow, and we would rather tell you the drafting action is a lookup table than let a demo imply otherwise. Use it as a fast way to scaffold one of four common automations, treat every number in the draft as a placeholder, simulate before publishing, and read the confidence figures as ornament. And when a vendor tells you their automation is AI-powered, ask them the same thing twice in different words — the answer takes ten seconds and settles the question.

Read alongside this: what leaves your server covers which of these actions transmit anything, numbers first, words second explains the same computed-then-narrated pattern in the analytics layer, what an in-app AI assistant can and cannot answer covers the keyword-driven chat assistants, and webhooks and workflow connectors covers what a published workflow can actually reach.

Automation you can read before you trust it

Drafts created switched off, rules and actions written out in full, the prompt and the proposal recorded, and a version snapshot naming where it came from.

See workflow automation

Frequently asked questions

Is the workflow assistant actually AI?

Four of its six actions are not. Drafting a workflow from your sentence, recommending templates, spotting automation opportunities and building a condition from a phrase are keyword tests and arithmetic running on our servers, with no language model involved. Two actions — explaining why a workflow failed and drafting a notification message — will use a model if one is enabled, and fall back to deterministic text when it is not. We would rather describe it that way than let the label imply more, and in this particular case we think the deterministic design is the better product.

What happens if I describe an automation it does not support?

You get the low-stock template, with no indication that nothing matched. There are four blueprints and the fourth is a fallback rather than a match, so a prompt about employees, leave, tickets or assets produces an inventory workflow. Worse, the fallback carries the highest stated confidence of the four. The draft is created inactive so nothing can fire, and the template name on it is your clue — but you do have to read it. An honest "I did not understand that" is the change we would make first.

Can a drafted workflow start running on its own?

No. Every draft is created with the workflow switched off **and** its lifecycle status set to draft — two separate markers — and it can only run after an authorised person publishes it. The response also carries a standing warning to that effect. This is the single most important safety property of the feature and the question we would put to any vendor: anything a generative system produced that can execute against live records without a human publishing it is a risk category most buyers have not assessed.

Should I trust the numbers in a drafted workflow?

No. Five units of stock, three days until expiry, zero days overdue — these are literals written into the templates, not readings of your business. They are the part that will actually misfire in production, quietly, months later. Treat every threshold in a draft as a placeholder, set it from your own reorder levels and your own commercial terms, and run the workflow simulator against sample records before publishing. The assistant saves you the scaffolding; the numbers are yours.

What does the confidence score mean?

Almost nothing, and we would rather say so. On a drafted workflow and a recommended template it is a fixed literal. On a failure explanation and a drafted message it is a constant that never varies. On a spotted opportunity it is arithmetic over your log counts, so it rises with how many failures you have rather than with how sure anything is. Only the condition builder varies with your input, scoring higher when it actually found a number in your phrase. Displaying a value between zero and one implies a calibration none of these has, and the right fix is to rename or remove them.

Are our workflow AI suggestions stored?

Yes, and this is a deliberate difference from the support copilot, where suggestions are shown once and discarded. A workflow suggestion is recorded against your organization with the prompt that produced it, who asked, the full proposal, and a link to the workflow it created — and the workflow itself gets a version snapshot labelled as AI-assisted and created for human review. Because a workflow is configuration that will run unattended, being able to answer "where did this rule come from?" a year later matters far more than it does for a drafted email.

Does it work in Swahili?

No. The keyword tests are English words, so a prompt in Swahili, or in the mix most Kenyan offices actually speak, matches nothing and falls through to the low-stock fallback every time. This is a genuine limitation of the deterministic approach — a model would handle it, at the cost of everything else described in this article. Adding the equivalent Swahili keywords to each test is a small piece of work and a fair request; adding real multilingual understanding is a different product decision.

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center