Platform

AI order entry

Your customers already sent you the order. Stop typing it again.

Most orders in this market arrive as a message: a name, a phone number, an address written the way people actually give addresses, and two or three items described the way people actually describe them. Somebody then retypes all of it into a form. AI order entry reads the message and fills the form, and it is built with a very specific discipline about what it is allowed to decide.

This is a small feature that removes a genuinely large amount of work. A shop taking thirty messaged orders a day is spending an hour on transcription, and transcription is where wrong phone numbers and wrong quantities come from — not from a lack of care, but because copying six fields from one window to another thirty times is exactly the task humans are worst at.

The design constraint is that it must never be confidently wrong. A filled form that looks complete but quietly guessed a quantity is worse than an empty one, because nobody checks a field that already has something in it. Everything below follows from that.

01

From a pasted message to a saved order

  1. 1

    Paste what the customer sent

    The whole message, exactly as it arrived — greetings, voice-note transcription, emoji, the lot. There is no format to follow and nothing to clean up first.

  2. 2

    The message is read and structured

    A language model extracts the customer's details and the items they asked for, returning them in a fixed structure. It sees the message and nothing else about your business.

  3. 3

    The extraction is normalised on the server

    Arabic-Indic digits become Latin ones, phone numbers are put into the local shape, and the city is separated from the address and matched to a governorate. None of this is left to the model to get right.

  4. 4

    Item phrases are matched against your real catalogue

    Each extracted phrase runs through the ordinary item search — the same search a member of staff would type into. Typo tolerance applies, and so does whatever the current user is permitted to see.

  5. 5

    You check the form and save

    The order form appears filled in, with anything the message did not contain left empty rather than filled with a plausible guess. You review it and save it like any other order.

02

What it pulls out of a message

Customer name

Taken from how the customer identified themselves, not fabricated from an email or a greeting.

Phone numbers

A primary and, where the message contains one, a second number. Both are normalised to the local mobile format so they are dialable and match your existing customer records.

City

Folded into an Iraqi governorate and returned in both Arabic and English, so it lines up with your shipping rules and your carrier's own city list.

Address

The address line as written, with the city deliberately kept out of it. A city name duplicated into the address is the classic way an automated form breaks per-city delivery pricing.

Items

Each with the phrase the customer used, the quantity, and any variant they mentioned — a size, a colour, a flavour. A missing quantity becomes one, which is what a person would assume.

Notes

Anything that is clearly an instruction rather than a field: call before arriving, deliver after five, leave it with the neighbour.

03

The model never sees your catalogue

The strongest decision in this feature is about what is withheld. The model receives the customer's message, a fixed instruction and a schema — and nothing else.

Your items stay on your side

No product list, no prices, no cost prices and no customer database are ever sent to a language model. It is asked to read a message, not to know your business.

Matching happens through your own search

The extracted phrase is resolved by the same item search the app already uses. That means typo rescue works exactly as it does when someone types it by hand, and a member of staff restricted to certain categories gets exactly the same restricted results here. Access rules did not need a second implementation, so they cannot drift.

Nothing is invented

A field the message does not contain comes back explicitly empty. The model is not asked to be helpful about a missing house number or a plausible-looking quantity, because a confident guess in an order form is one that nobody will double-check.

Numbers are not trusted to the model

Arabic-Indic and extended Arabic-Indic digits are converted to Latin on the server rather than in the prompt. A model that misreads one digit of a phone number produces an order that cannot be delivered, and that class of error is cheap to eliminate with code.

The output shape is fixed

The response is constrained to a strict schema and generated with randomness turned off, so the same message produces the same structured result and the parser never has to cope with prose where a field was expected.

Written the way customers actually write

The instruction is tuned for Iraqi Arabic dialect first, with English and mixed Arabic-Latin script handled alongside it. That matters more than it sounds: dialect messages are full of local spellings, dropped vowels, Latin-script Arabic and numbers written in two different digit systems within the same sentence. A system tuned for formal written Arabic reads those messages considerably worse than a person would.

04

The daily allowance

AI order entry is a paid feature, and it is honest about it. The allowance is per business, per day.

PlanParses per dayNotes
Pro30Enough for a business taking a steady stream of messaged orders.
Business, Growth, EnterpriseUnlimitedNo daily ceiling.
Solo, Starter, Team and trialsNot availableThe feature is not part of these plans.

The allowance resets at midnight in Baghdad for every business, regardless of where they are — a fixed offset with no daylight saving, so the reset never moves. Only successful parses count against it: if a parse fails, you are asked to try again and nothing is deducted. A failure is treated as our problem rather than returned as your mistake. Each response also carries your current limit, usage and remaining count, so the app can tell you where you stand before you run out rather than after.

05

Every call is on the record

Each parse is logged against your business with the text that went in, the normalised result that came out, which model was used, the tokens consumed and the exact provider cost of that call. Failures are logged too, because a feature you cannot see failing is one you cannot improve. When the app later records whether the suggested items were the right ones, that outcome is written back onto the same row.

The model itself is a configuration value rather than something wired into the code, so it can be changed for a better or cheaper one without a release. Keeping per-call cost on every row is what makes that a measurable decision instead of a guess.

06

Questions

Is my customer data sent to a third party?

The text of the message you paste is sent to a language-model provider for extraction. Your catalogue, prices, cost prices, customer records and order history are not — the model is given the message, a fixed instruction and the output schema, and nothing more.

What if it picks the wrong item?

It does not pick items at all. It extracts the phrase the customer used, and your own item search resolves it — so you see the same candidates you would have seen typing that phrase yourself, and you confirm the choice before saving.

Does it respect the limits I have set on my staff?

Yes, because matching goes through the normal search path. A team member restricted to certain categories gets results from those categories only. There is no separate lookup that could quietly ignore the restriction.

What happens if it cannot read the message?

You are told to try again, and the attempt does not count against your daily allowance. A failed parse is never billed and never returned as though you did something wrong.

Orders

Where a parsed message lands — statuses, stock movement, editing with a full change log, and idempotent creation.

Catalogue

The search that resolves an extracted phrase, including typo rescue and Arabic-Indic digit handling.

Team and permissions

The category and creator restrictions that apply here exactly as they do everywhere else.

See it against your own catalogue

Start on the plan that fits, import your products from a spreadsheet, and have a working store, counter and order book the same day.

Free tier available. No card required to try. Import brings your existing catalogue with you.