How it works

How Typelessity works

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.

Customer says

Brake pads for my RAV4 on Tuesday 20 October at 2pm, name Robert Smith

Typelessity extracts

{ "service": "brake_pads",
  "date": "2026-10-20",
  "time": "14:00",
  "name": "Robert Smith" }
Four phases

From conversation to booking request

01

Chat

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.

02

Select

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.

03

Review

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.

04

Send

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 AI

How the AI actually works

The model decides. Code orchestrates. No hardcoding.

01

Single unified prompt

One AI call extracts every field, detects corrections, writes the reply and matches options. The prompt is built from your configuration.

02

Config-driven, not pattern-driven

Each field has an aiHint that tells the model what it means. The system never matches words like “airport” with regex.

03

Enrichment APIs

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.

04

Cascade-aware corrections

Change an upstream field and every dependent field is cleared, with a confirmation if the change is destructive.

05

Anti-hallucination guardrails

Fields outside your configuration are dropped; a reply claiming the booking is done before the visitor sends the request is discarded.

06

Reliable by design

Retries with backoff on model calls and on submission; every message is stored with its conversation.

How to let customers book by chat instead of a form

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.

See what you need and the code to paste

Edge cases handled

What happens when things go wrong

  • GPT outage

    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.

  • Enrichment timeout (10s)

    Non-fatal. AI continues with partial data and asks the user to confirm what was extracted.

  • User changes upstream field mid-flow

    DFS-walk over the dependency graph clears stale downstream fields. Destructive cascades show a confirmation.

  • GPT hallucinates a value

    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.

  • Submit endpoint returns 502, 503 or 504

    Retried with exponential backoff, 3 retries by default. If it still fails, the widget shows a Retry button and keeps everything the visitor entered.

One turn, end to end

What happens in a single turn

User → widget → API → GPT → enrichment → response.

User
Types or speaks
→
Widget
Captures input
→
API
Session API
→
GPT
Single call
→
Enrichment
Optional API · 10s timeout
→
Response
Filled fields + reply
Install

Two lines of HTML

It is a standard web component (a custom HTML element) that you paste into your page.

<script type="module" src="https://typelessity-widget.vercel.app/widget.js"></script>
<typelessity-widget api-url="https://typelessity.vercel.app"></typelessity-widget>

Add Typelessity to your website

Ready to replace your form?