Structured Outputs Make Intake Automation a Schema Design Job

Illustrated infographic summarizing: Structured Outputs Make Intake Automation a Schema Design Job

By Greg Nowak. Last updated 2026-07-18.

When a business asks to automate intake, the visible problem is usually the messy input: emails, PDFs, forms, support tickets, copied notes, or documents supplied by customers. The tempting response is to start writing prompts. That is rarely the best place to start.

Structured Outputs make it substantially easier to obtain JSON that follows a defined schema. This removes an important source of production failures, but it does not remove the harder operational questions. What should the canonical record contain? What counts as missing? Which values may be inferred? When should a person review the result? And what is allowed to write into the CRM, ERP, or case-management system?

In other words, the work has shifted. A reliable intake project is now less about persuading a model to produce roughly the right shape and more about designing a trustworthy data contract around it.

Schema adherence changes where the value sits

JSON mode and Structured Outputs are not interchangeable. JSON mode helps produce valid JSON, while Structured Outputs are designed to make the response adhere to a supplied schema. OpenAI recommends Structured Outputs where the selected model and use case support them.

That distinction matters commercially. Valid JSON can still contain missing keys, unexpected nesting, inconsistent field names, or values that downstream software cannot accept. A strict schema removes much of that structural uncertainty. The valuable work then moves upstream into record design and downstream into validation, exception handling, and integration controls.

For an operations team, the deliverable should therefore be a controlled intake pipeline—not merely a prompt and an API call. For an agency, this is also a better project boundary: schema versions, acceptance criteria, review rules, and system ownership are tangible items that can be agreed with the client.

Design the record before choosing the model

Start with the record the receiving system needs. Give every field a precise meaning, type, permitted values, and owner. Resolve disagreements such as whether “customer” means the purchaser, account holder, or end user before asking a model to populate the field.

OpenAI supports a subset of JSON Schema, so an existing enterprise data model may need simplifying. The root must be an object rather than a top-level anyOf. Fields must be marked as required; when a value may legitimately be absent, model that state explicitly with a nullable type. Strict function schemas also require additionalProperties: false on each object.

Do not use an empty string, zero, or “unknown” interchangeably. A useful intake schema distinguishes at least three situations: the source explicitly supplied a value, the value was not present, and the source was too ambiguous to decide. That distinction makes review queues and reporting far more useful.

Workflow need Recommended pattern Operational control
Normalize content for another processing step Structured text.format Validate business rules before accepting the record
Call an internal service or create a record Strict function calling Authorize and execute the action in application code
Process routine, high-volume material Lower-cost model proven by an eval Escalate low-confidence or invalid cases
Handle ambiguous or high-impact records More capable model or human review Require approval before consequential writes
A practical decision matrix for choosing the output pattern and its corresponding control.

A production pipeline needs more than schema validation

A sensible implementation separates extraction from action:

  1. Capture the original input. Keep the source document, message, identifiers, and arrival time so the result can be audited.
  2. Extract into a versioned schema. Record which prompt, schema, and model produced the output.
  3. Apply deterministic checks. Validate dates, identifiers, totals, permitted statuses, cross-field dependencies, and duplicate rules in ordinary application code.
  4. Route exceptions. Send incomplete, contradictory, refused, or truncated responses to a retry path or human queue.
  5. Write through a controlled integration. Use permissions, idempotency, logging, and approval rules appropriate to the cost of a bad update.

Function calling is appropriate when the model needs to request an operation in your system. The application still owns the actual execution. Enable strict: true, and consider parallel_tool_calls: false when a turn should produce no more than one auditable tool call. That setting is a workflow decision, not a substitute for authorization.

Choose models with representative records, not a price table

OpenAI’s current model catalog presents GPT-5.6 Sol for complex work, Terra as the intelligence-and-cost balance, and Luna for cost-sensitive volume. Those labels are a starting point, not proof that a model suits your intake.

Build a test set from representative, properly handled records, including poor scans, missing fields, conflicting statements, unusual layouts, and genuinely ambiguous cases. Define ground-truth outputs and graders, then compare field accuracy, exception rates, latency, and cost. Re-run the evaluation when the schema, prompt, model, or source mix changes.

A useful routing design may send routine records through an economical model while escalating harder cases. However, routing should be based on measured performance and business impact—not on an untested assumption that every long document needs the most expensive option.

Structure is not the same as truth

A perfectly shaped record can still contain the wrong customer number, an invented date, or a confident interpretation of ambiguous text. OpenAI’s guidance explicitly notes that Structured Outputs can still contain mistakes. Schema adherence is therefore necessary for dependable automation, but it is not an accuracy guarantee.

Before launch, agree who owns the schema, which fields may be inferred, what triggers review, how corrections feed back into testing, and which actions require approval. Those decisions determine whether the automation becomes dependable infrastructure or simply moves cleanup work somewhere less visible.

Planning an intake automation project?

Greg can help map the sources, design the data contract, choose and evaluate the model path, and connect the result to the systems your team already uses. Discuss the workflow with Greg before committing it to production.

Related on GrN.dk

Need help with this kind of work?

Plan your intake automation with Greg Get in touch with Greg.

Sources

Latest articles

How Danish businesses can automate Gmail and Microsoft 365 with rapid sorting, limited permissions and human approval.

When WordPress jobs run late, check WP-Cron and queue capacity first. Diagnose triggers, handlers, and Action Scheduler without guesswork.

WordPress 7.1 makes speculative loading configurable. Here’s how to spot overlapping rules and test speed gains without adding hidden costs.

Multiple records for the same customer in HubSpot? Learn how CVR number matching, AI suggestions and human approval can help you clean up duplicates while keeping track of fields, associations and customer history.

Before a Google AI shopping pilot, check which products qualify, where your catalog data disagrees, and whether checkout reflects your delivery and return terms.

Check whether prompt caching reduces cost per completed task, accounting for cache writes, retries, review effort and the charges on your provider's bill.

A practical Drupal translation workflow for Danish service pages: German review, commercial approval, publication and keeping translations current after edits.

Build a weekly marketing report from GA4 and Google Ads with verified calculations, clear data caveats and a short AI draft to support your Monday meeting.

Before buying a GPU, test one real team workflow on existing hardware. A Linux pilot can show whether quality, memory, response times, and running costs add up.

Planning a Drupal relaunch? Set clear rules for content, translations, media and old URLs, with a practical checklist for approving the migration and launch.