Skip to content

AI Systems

Structured information extraction: a field you can trust, or an empty one

Customers write “next Tuesday, before noon, the one you installed a few years back”. Your scheduling system needs a date, a time window and an address. Extraction turns the message into those fields, shows where each one came from, and leaves a field empty rather than guess.
From K.M. · received Thu 29 Oct, 07:42Water heater leakingHi, our water heater startedleaking from the bottom thismorning. It's the one youinstalled in 2021 at 22 Birch Lane.Could someone come next Tuesday,ideally before noon? I think it'sstill under warranty. Thanks, K.issueissueleak, bottom of tankaddressaddress22 Birch Laneinstall_yearinstall_year2021preferred_datepreferred_date2026-11-03windowwindow08:00–12:00warranty_claimedwarranty_claimedyes, to verifymodel_numbernull · not in the messageschema ✓ · 1 field empty · sent to booking with a warranty check

Software can't book “next Tuesday”

The facts a business needs arrive in free text: emails, texts, voicemail transcripts, notes. Someone reads each one and types the details into the job system, and the details that are missing get filled in from memory or assumption.

Extraction converts that text into fields that downstream software can safely use. The schema is written first; the model fills it; every value is normalised and checked; and every field points back to the words it came from. When a fact isn't there, the field says so.

The schema comes first

Each field has a type, a rule, and a decision about what happens when it's missing.
issueOne of: leak, no hot water, noise, other, plus the customer's wordsAsk in the reply
addressText; must match a customer or a service areaSend to the office lead
install_yearYear, not in the futureLeave empty
preferred_dateDate, today or later; relative dates resolved from when the message arrivedAsk in the reply
windowOne of: 08:00–12:00, 12:00–16:00, anyDefault to “any”, flagged
warranty_claimedYes, no, or not said“Not said”
model_numberText in the manufacturer's formatLeave empty; never guessed

Three messages, one schema

Different writers, different channels, the same fields out. Look at what happens to what isn't there.

email · K.M. · Thu 29 Oct, 07:42

Hi, our water heater started leaking from the bottom this morning. It's the one you installed in 2021 at 22 Birch Lane. Could someone come next Tuesday, ideally before noon? I think it's still under warranty. Thanks, K.

  1. issueleak, bottom of tankfilled
  2. address22 Birch Lanefilled
  3. install_year2021filled
  4. preferred_date2026-11-03filled
  5. window08:00–12:00filled
  6. warranty_claimedyesto verifyfilled
  7. model_number—empty

Valid. A booking request is created for 3 November and a warranty check is queued.

Four rules for fields software can trust

  1. Empty beats a guess

    A missing value says so

    A guessed value looks exactly like a real one. An empty field is handled by a rule: ask, default and flag, or send to a person.

  2. Every value has a source

    The words it came from

    Each field points to its span in the text, so a reviewer can check it in one look.

  3. Normalised before it's stored

    One format

    Dates, phone numbers and addresses in one form, with relative dates resolved from when the message arrived.

  4. Validated before it's used

    The schema decides

    Types, allowed values and checks against your records. A field that fails goes to a person.

What extraction hands off

In

Free text
email, text, transcript, document
Schema
fields, types, rules
Context
received time, customer records
Extraction
text → fields → checks

Out

Validated fields
ready for your systems
Empty fields
flagged, never guessed
Source spans
for review

Worth building when the same facts arrive as free text

Good fit

  • The same kinds of facts arrive in free text, over and over.
  • A system downstream needs them as fields.
  • You can write down what each field must look like.

Not the right fit

  • The input is already structured, like a web form. Map it directly.
  • You need a judgement about the message, not facts from it. That's classification, or a person.

Questions about structured information extraction

What happens when a field is missing?

It stays empty, and a rule you agreed decides what's next: ask in the reply, use a default and flag it, or send it to a person.

How do you handle “next Tuesday” or “tomorrow morning”?

Relative dates are resolved from when the message arrived, in your time zone, and the customer's original words are kept beside the date.

Can it pull fields from documents, not just messages?

Yes. Document intelligence reads the document first, then the same schema-and-checks approach applies.

What if it extracts a field wrong?

Validation catches format errors and mismatches with your records. What gets past it is caught in review, and each correction becomes a test case for the next version.