โ†
AI for Instructors & Learning Professionals
Capable ยท M18 ยท lesson 18 of 21 ยท queued
Preview โ€” browse every lesson free. Enroll to mark lessons complete, open partner links and save your progress. Login & enroll โ†’
Structured Output Your Authoring Tool and LMS Accept
๐Ÿ“–
now learning

Structured Output Your Authoring Tool and LMS Accept

15 min

An e-learning developer has a beautiful AI-drafted module sitting in a chat window. The content is verified, the claims are sourced, the objectives align. Then she starts moving it into the authoring tool, and the next three hours disappear. She is copying one paragraph at a time, guessing where the narration ends and the on-screen text begins, retyping the quiz options because the model wrote them as a run-on list, and rebuilding the structure the model already knew but never told her. The draft was finished in two minutes. The rebuild took half a day. That gap, between a draft that is correct and a draft that is usable, is what structured output closes, and closing it is the difference between AI that saves you a week and AI that just moves the bottleneck downstream.

The Blob Problem

By default, an AI model writes prose. Ask it for a module and it gives you flowing paragraphs, the way it gives you flowing paragraphs for an essay or an email, because prose is the most common shape in its training data. For a human reading on a screen, prose is fine. For the thing you actually have to do next, which is drop the content into an authoring tool like a rapid-development environment, or into a question bank, or into the LMS, prose is a disaster. The tool does not want a paragraph. It wants fields: this is the on-screen text, this is the narration, this is the question stem, these are the four options, this one is correct, this is the feedback for a wrong answer. A paragraph that contains all of those things mashed together is what we will call a blob: content that is correct but shapeless, holding the right information in a form no system can ingest without a human pulling it apart by hand.

The blob is expensive in a way that hides from the time savings story. Everyone counts the two minutes the draft took. Almost nobody counts the three hours of copy, paste, separate, and retype that followed, and yet that downstream rebuild is often longer than the time AI saved upstream. Worse, the rebuild is exactly the kind of tedious manual transcription where errors creep back in: a correct answer mis-keyed, a piece of narration accidentally shown on screen, a distractor dropped. You verified the content carefully, and then you reintroduced risk by hand-rebuilding it. The blob does not just waste time. It quietly threatens the verification you already paid for.

A correct draft you have to rebuild by hand is not a finished draft. It is a draft plus a hidden second project, and the second project is where the speed you were promised goes to die.

Ask for the Shape, Not Just the Words

The fix is almost embarrassingly simple, and almost nobody does it: tell the model what shape you want, and it will produce that shape. A model that writes a blob by default will, on instruction, write a clean table, a labeled list of fields, or a machine-readable structure, because structure is just another pattern it can follow. Structured output means content the model produces in a consistent, predictable format with every part labeled and separated, so the next system can ingest it with little or no manual rework. The same content that arrived as a paragraph arrives instead as rows and fields, and the three hours of pulling it apart simply never happen.

There are two formats worth knowing, and they cover almost everything a learning professional needs. The first is a table, which is the right shape for anything with repeating rows of the same kind: a storyboard where every screen has the same columns, an item bank where every question has a stem, options, a key, and feedback. A table is human-readable, pastes cleanly into most authoring and spreadsheet tools, and makes a missing field instantly visible as an empty cell. The second is JSON (JavaScript Object Notation), a structured text format that labels every piece of data with a name, like "stem," "options," "correct_answer," and "feedback." You do not need to write JSON, but you should recognize it, because it is the format an authoring tool, an LMS import, or an automated pipeline can read directly without a human in the middle. When you want a person to review the content, ask for a table. When you want a system to ingest it, ask for JSON.

The Schema Is the Real Asset

The deeper move is not asking for structure once. It is defining the structure once and reusing it forever. A schema is the agreed list of fields and what each one means: for an assessment item, perhaps stem, four options, the correct option, a rationale, the objective it maps to, and the source line that grounds it. Once you have written that schema down, every item the model produces fits it, every item your authoring tool expects matches it, and every reviewer knows exactly what each field is. The schema is the contract between the AI's output and your tools' input. Defining it is a one-time act of design that pays off on every single build afterward, because the model stops guessing at structure and starts filling in a form you control.

This is also where structure quietly strengthens verification, the thread running through this entire chapter. A schema can require a field for the source line behind each claim and the objective each item measures. When those fields are part of the structure, the model has to populate them, and a missing source becomes a visible empty field rather than an invisible omission. Structure does not just make content portable. It makes provenance and alignment into columns you can see, which means the same format that drops cleanly into your LMS also makes the hallucinated claim and the misaligned item easier to catch. Speed and defensibility, for once, point the same direction.

It is worth sitting with why a missing field is so much more powerful than a missing sentence. In a prose blob, an absent source is invisible: the paragraph reads completely whether or not the claim is grounded, because nothing in flowing text demands a citation. In a schema, the source is a column, and a claim with no source leaves a blank cell that your eye lands on instantly. The structure converts an omission, the hardest kind of error to notice because there is nothing there to read, into a presence, an empty box that announces itself. This is the same reason a pilot's checklist has a line for every item: not because the pilot would forget the engines exist, but because a blank next to "flaps set" is visible in a way that a vague feeling of having forgotten something is not. A schema is a checklist the model fills out, and the empty cells are your most reliable warning system.

What Good Structured Output Looks Like

Make this concrete. Suppose you need ten assessment items for a data-handling module. Asking for "ten quiz questions" gets you a blob: ten questions in prose, options run together, answers indicated inconsistently, no objective mapping, no source. Asking for the items in a defined schema gets you something your item bank can almost ingest as-is.

ItemStemOptionsCorrectObjectiveSource
1A colleague emails you a spreadsheet of customer records to an external address. What must you do first?A) Forward it; B) Encrypt and report; C) Delete it silently; D) Ignore itBLO-2: Apply the data-transfer ruleData Policy 4.2, line 5
2Within what timeframe must a suspected data breach be reported?A) 24 hours; B) 72 hours; C) One week; D) When convenientALO-3: State the breach deadlineData Policy 7.1, line 2
3Which of these counts as personal data under the policy?A) Aggregate stats; B) A work phone extension; C) A home address; D) A public job titleCLO-1: Classify personal dataData Policy 2.3, line 1

Look at what the structure bought you. Every item drops into the question bank by column. The correct answer is unambiguous, not buried in a sentence. Each item names the objective it measures, so misalignment is visible at a glance: if item 1 mapped to "LO-1: classify personal data," you would see immediately that the stem tests a transfer rule, not classification. And each item carries its source line, so the verification routine from the previous lesson runs straight down the last column. The same request that produced a portable item bank also produced an auditable one. That is not a coincidence; it is what asking for a schema does.

Prompting for Structure in Practice

Getting structured output reliably comes down to a few habits, none of them technical. First, name the format explicitly: "return this as a table with these columns," or "return this as JSON with these fields," never just "write the questions." Second, define the fields, the schema, and give them once at the top so every row obeys the same shape. Third, show one filled-in example, a single completed row or record, because a model shown one example of the exact structure you want will match it far more reliably than one given only a description. Fourth, tell it what to do with a missing value: leave the cell empty, or write a flag, rather than inventing content to fill the field, which keeps the structure honest and preserves the gap-marking discipline from earlier in this chapter.

One caution keeps structured output from becoming a new way to hide errors. A clean, well-formed table is persuasive. Its very tidiness makes the content look verified when it has only been formatted. Structure is about portability and visibility, not truth. A beautifully schematized item bank can still contain a hallucinated breach deadline in row 2, and the neat columns make it easier to miss precisely because the whole thing looks so finished. So the order matters: structure the output to make verification easier, then actually verify, walking the source column the way the last lesson taught. Format is the servant of verification, never its substitute.

There is a useful way to hold these two ideas together. Structure and verification are two different jobs that happen to play well together. Structure answers "can my tools and my reviewers use this without a rebuild." Verification answers "is each load-bearing claim actually true and sourced." A draft can pass one and fail the other in either direction: a verified blob is correct but unusable, and a schematized hallucination is usable but wrong. You need both, and the sequence is fixed, structure to make the content portable and the gaps visible, then verify to make the content true. Reverse the sequence and you verify a blob you then have to rebuild, reintroducing risk; skip the verification and you ship a tidy lie. The schema's real gift is that it puts the source and objective fields right where the verification step needs them, so the two jobs hand off cleanly instead of fighting each other.

A tidy table is not a verified table. Structure makes the truth easier to check; it never makes the content true.

A Worked Example: The Half-Day That Vanished

Return to the developer with the beautiful blob.

Before (the rebuild). She asks for "a module on data handling with a ten-question quiz" and gets flowing prose. The content is good, but to build it she spends three hours separating narration from on-screen text by judgment, retyping quiz options the model ran together, hand-keying correct answers, and inventing the screen structure the draft never specified. Two of the ten answer keys get mis-entered during the retyping, errors that did not exist in the verified draft and now do. The two-minute draft has become a half-day rebuild that also degraded the quality she had carefully checked.

After (the schema). She defines the structure first: a storyboard table with columns for on-screen text, narration, learner action, objective, and source; and an item table with stem, options, correct answer, objective, and source. She gives the model one filled-in example of each and asks it to produce the rest in exactly that shape, leaving any unknown field blank rather than inventing it. The output comes back as two clean tables. The storyboard pastes column-by-column into the authoring tool. The item table imports into the question bank with the keys already unambiguous, so nothing is retyped and nothing is mis-keyed. She spends her time verifying the source column, not rebuilding the format, and the build that took half a day now takes twenty minutes. The content was identical. The shape was everything.

The lesson is that the draft was never the deliverable. The deliverable is content in a form your tools and your reviewers can actually use, and a model will produce that form the moment you ask for it. The half-day rebuild was never necessary work. It was the tax for not specifying the shape, and structured output is simply refusing to pay it.

Notice the second, quieter win in the "after" version: the two mis-keyed answers never happened. In the rebuild, the errors entered during transcription, the most mindless and most error-prone phase of the whole process, hand-copying values from one place to another. Every manual hop between formats is a chance to drop a distractor, mis-mark a key, or paste narration into the on-screen field. Structured output removes the hops. When the model emits the item bank in the shape the question bank imports, no human retypes anything, and the class of errors that lives in retyping simply has no opportunity to occur. This is why structure is a verification ally and not just a convenience: it does not only make the existing claims easier to check, it eliminates a whole category of new errors that manual rebuilding would otherwise inject after your verification was done. The cleanest content is content that was never touched by hand between the verified draft and the live module.

Structure Is Where Speed Becomes Real

The promise of AI in learning design is that a build that took weeks takes days. That promise is only kept if the output is usable, because an unusable draft just relocates the work from authoring to transcription. Structured output is the discipline that makes the speed real all the way to the LMS: name the format, define the schema once and reuse it, show an example, handle missing values honestly, and require the fields that carry provenance and alignment so portability and verification arrive together. Do that, and the AI-drafted module flows from the chat window into Rise, Storyline, the question bank, or the LMS without a rebuild, with its sources and objectives visible in columns, ready for the verification that remains, always, the human's job. The model can produce the shape. You decide what the shape must be, and that decision is what turns a clever draft into a finished build.

Key Takeaways

  • By default a model writes prose, which produces a blob: content that is correct but shapeless, holding the right information in a form no authoring tool, item bank, or LMS can ingest without manual rework.
  • The blob's cost hides from the time-savings story: the downstream rebuild is often longer than the upstream draft and reintroduces errors by hand, threatening the verification you already paid for.
  • The fix is to ask for the shape, not just the words; a model writes a clean table, labeled fields, or JSON on instruction because structure is just another pattern it can follow.
  • Use a table when a human will review the content and JSON when a system will ingest it; both replace the paragraph with labeled, separated fields.
  • The real asset is the schema, the defined list of fields and their meaning, written once and reused on every build, so the model fills a form you control instead of guessing at structure.
  • A schema can require fields for the source line and the objective, turning provenance and alignment into visible columns, so the same format that ports cleanly also makes hallucinations and misalignment easier to catch.
  • Prompt for structure by naming the format, defining the fields, showing one filled example, and instructing the model to leave missing values blank rather than invent them.
  • A tidy table is not a verified table; structure makes truth easier to check but never makes content true, so structure first and then run the source-matching verification, with format always the servant of verification.