Single unified prompt
One AI call extracts every field, detects corrections, writes the reply and matches options. The prompt is built from your configuration.
Four phases: chat, select, review, send. Typelessity turns one sentence from your customer into a booking request with one AI call per turn; if your booking system has an API, it asks it what is free.
Brake pads for my RAV4 on Tuesday 20 October at 2pm, name Robert Smith
{ "service": "brake_pads",
"date": "2026-10-20",
"time": "14:00",
"name": "Robert Smith" }Natural-language data collection.
The customer describes the booking in plain language, in their own language, by voice or text. The AI model reads your field configuration and extracts the values directly. No regex, no hardcoded patterns, no language switches.
Smart cards for precise choices.
When an option must be exact (a specific mechanic, a time slot, a vehicle) the widget shows tappable cards. If your booking system has an API, the cards come from it: service filled → GET /mechanics?service=brakes → cards.
Edit inline before you send.
A full review card. The customer checks every extracted field and edits it inline. Cascade-aware: changing a field clears the fields that depended on it, after asking.
Send it to your system.
The request goes to your endpoint as JSON, shaped by the field mapping in your config, or by email. A 502, 503 or 504 from your endpoint is retried with exponential backoff.
The model decides. Code orchestrates. No hardcoding.
One AI call extracts every field, detects corrections, writes the reply and matches options. The prompt is built from your configuration.
Each field has an aiHint that tells the model what it means. The system never matches words like “airport” with regex.
Fields can trigger calls to your system: service → mechanics, date → slots. A call times out after 10 s by default and a failure is never fatal.
Change an upstream field and every dependent field is cleared, with a confirmation if the change is destructive.
Fields outside your configuration are dropped; a reply claiming the booking is done before the visitor sends the request is discarded.
Retries with backoff on model calls and on submission; every message is stored with its conversation.
A booking form asks the customer to fit their request into your fields. With Typelessity the customer writes or says what they want, and the widget fills the same fields for them to check.
Nothing else on your website changes: the widget is added next to the page you have, and the request reaches you by email or at your own endpoint, in the same shape as a form would send it.
The model call is retried once. If it still fails, the widget stays in the chat and asks for the next field directly — there is no separate form mode.
Non-fatal. AI continues with partial data and asks the user to confirm what was extracted.
DFS-walk over the dependency graph clears stale downstream fields. Destructive cascades show a confirmation.
Fields outside the configuration are dropped; a changed value for a filled field is treated as a correction; the visitor reviews every field before sending. _meta.mf is logged, not enforced.
Retried with exponential backoff, 3 retries by default. If it still fails, the widget shows a Retry button and keeps everything the visitor entered.
User → widget → API → GPT → enrichment → response.