Apps
However the work arrives, it becomes SAP
An email, a WhatsApp message, a text file, or one sentence you type. AnrilX reads the work, builds the SAP documents it implies, and holds the whole batch for you to check before any of it is written.
- Work arrives as email, WhatsApp, a text file or a sentence
- A batch becomes SAP documents in one pass, under one approval
- An app you describe exists: no release, no ticket
- Read apps cannot reach a write tool at all
- Write apps stop for a person, every time
Library · task apps
Library · task apps
The questions a team repeats become small screens rather than something retyped each morning. Each one is a saved question with a form around it, reading the same live SAP as everything else, and the ones that write go through the same approval gate as every other write.
Sales order creator
- Sold-to party
- 152210 · Najd Contracting
- resolved from the name as it was typed
- Sales organisation
- 1600 · Riyadh
- Distribution channel
- 10 · Direct sale
- Division
- 01 · Components
- Order type
- OR · standard order
- Requested delivery date
- 2026-10-02
- earliest the ATP check allows is 2026-09-29
- Customer PO number
- PO-88412
- Payment terms
- ZB01 · 30 days net
- from the customer master, not typed
- Incoterms
- CIP · Riyadh
- Currency
- SAR
- the company code currency; not a choice this screen offers
Items
| Item | Material | Description | Quantity | Plant | Net price | Net value |
|---|---|---|---|---|---|---|
| 000010 | TG-2207 | Sensor array | 420 EA | 1000 | 1,281.20 SAR | 538,104.00 SAR |
| 000020 | TG-1140 | Control unit | 310 EA | 1000 | 812.40 SAR | 251,844.00 SAR |
| 000030 | TG-0915 | Housing kit | 880 EA | 1000 | 336.75 SAR | 296,340.00 SAR |
| 000040 | TG-3302 | Drive coupling | 34 EA | 1200 | 2,940.10 SAR | 99,963.40 SAR |
| 4 items | 1,644 EA | 1,186,251.40 SAR |
SAP write requires your approval
- operation
- create
- entity set
zsd_sales_order / A_SalesOrder_2- record
new document · order type OR
Fields that change
SoldToParty - 152210
SalesOrganization - 1600
DistributionChannel - 10
OrganizationDivision - 01
RequestedDeliveryDate - 2026-10-02
PurchaseOrderByCustomer - PO-88412
to_Item - 4 items · 1,186,251.40 SAR
Source: zsd_sales_order / A_SalesOrder_2 · POST with 4 item lines · every field validated against the service contract and the availability check before this dialog was shown · nothing has been sent
The app collects the fields and the platform compiles the call. Nothing typed into this screen reaches SAP until the dialog above is released, and the payload cannot be edited inside the dialog; approving one object and sending another is not approval. Each app stores its own compiled query; opening one costs no model call.
How it works
01
Whatever it arrived as, it gets read
A customer's email, a WhatsApp message, a chat thread, a text file, a note from a call. The relevant values are pulled out and placed in the form's own fields, where you can see them and change them. A field the extractor could not find is left empty rather than guessed.
02
A batch is one pass, not one at a time
Forty messages become forty draft orders together, and the ones that could not be read are listed as such rather than quietly dropped. Say "create sales orders for every confirmed quotation this week" and it builds each order with its positions. The whole batch is presented once, with every line attributed to what it came from, and nothing reaches SAP until a person releases it.
03
An app you describe is an app that exists
Apps are configuration rather than deployments, so describing the screen you need is enough to have it, across modules, not only the one a tool was built for. The write rules are not part of what you describe: an app that writes stops for an approver whether or not its description mentions it.
04
A prefilled value is a real value
What the extractor fills in is written into the form properly, so it submits as typed input would, and an edit you make on top of it survives. A prefilled box that displays a value and submits nothing is the worst outcome available here, because it looks exactly like it worked.
05
Write capability is per app, and enforced by withholding
An app that does not write is not given the write tools at all. It is not asked to refrain from using them, which matters because the instructions an app runs on are editable configuration and the tool list is not.
06
The paste is sent as well as extracted
The form is always a subset of what an enquiry says. So the original text travels with the extracted fields; otherwise every detail the form had no box for is silently discarded on the way through.
The work between the questions
Not everything is a question. A lot of the day is a task with a shape: somebody sends an enquiry, four values need to come out of it and go into SAP, and the person doing that has done it two hundred times.
Asking a chat interface to do that is worse than a form, because you end up describing the same structure in prose every time. So apps are forms, with the useful part being what fills them.
Why a prefilled field has to be a real value
This is a genuinely subtle failure and worth describing, because it looks like success.
In most component libraries, giving a field a value as a property makes it display that value
without putting it into the form’s state. The box shows 106434. The form submits nothing for
that field. Every visible signal says it worked.
AnrilX writes extracted values into the form’s own state, exactly where typed input goes. Which also means an edit you make on top of an extracted value is your edit, and survives; a form that quietly restores the model’s guess over a human correction is worse than one that never guessed.
Read and write are different things
Most apps only read. Those are not given write tools at all, rather than being instructed not to use them, because an app’s instructions live in editable configuration and its tool list does not. An app that has no write tool cannot be talked into a write by anything written in its description.
The apps that do write go through the same approval gate as everything else: the exact payload and the exact call, in front of a person, before anything is sent.
Where it stops
What this capability will not do
Where this one stops, said here rather than discovered in a pilot.
-
Extraction is a reading of prose and it can be wrong. Every value is shown in an editable field before anything happens, and the source of each is attributed.
-
Form fields are a closed set of kinds (text, number, date, period, select, checkbox and so on), not an arbitrary form builder.
-
An app is scoped to a task. It is not a general SAP client with a nicer skin.
Questions people ask us
What is an app, as opposed to just asking a question?
An app is a purpose-built screen for a task you repeat: tracking an order through delivery and billing, inspecting discounts by condition type, raising a quotation. It carries its own framing and its own form, so the work is a few fields rather than a well-phrased question.
Can an app change something in SAP?
Only if it is a write app, and only through the same approval gate everything else uses. Apps that read cannot reach a write tool at all; the tools are withheld rather than the app being told not to use them.
What happens to text the form has no field for?
It is submitted alongside the form. The agent reads the whole enquiry, not only the boxes, so a detail without a matching field is not thrown away.
Next
From answer to action
Nothing reaches SAP unapproved
When something must change, the exact change and the exact SAP call are put in front of a person first. Approve it and it runs. Reject it and the reason becomes a constraint for the rest of the conversation.
Conversational SAP
Ask it the way you would ask a person
No query language, no entity names, no transaction codes. A question in plain English comes back as figures, with the SAP field and the period they were computed from printed underneath.
It learns your rules
It reports on your basis, not its own
Give it the documents you have already written (reporting standards, close policy, pricing guidelines), and it works out which figures each one governs.
Bring the question your reports cannot answer
Thirty minutes against a live SAP system we provide: no access to yours, nothing to set up. If it cannot answer, you find that out in half an hour rather than three months into a pilot.