Skip to main content

Extract key terms

What this page is — the capability that lifts the commercial facts out of a document as structured data, and writes every concrete commitment it finds into the obligation register.

What it is for — so a deadline buried in clause 12 of a PDF becomes a tracked item with an owner and a due date, instead of something somebody has to remember.

The problem it solves — commitments stay buried in PDFs, and deadlines are missed because nobody wrote them down.

Route: /org/papers/documents/<document>/ai → Understand → Extract key terms · Permission: Use AI drafting/extraction/Q&A for documents. · Utility: papers_term_extractor · Cost: 450 credits estimated, 1,800 maximum.


1. What it is​

Extraction reads the document and returns six structured outputs — parties, contract value, key dates, governing law, renewal terms and obligations. It extracts only what the document actually says, and leaves a field empty rather than guessing, which is the property that makes the output safe to store.

It is the only Understand capability that changes data outside the AI result:

ReadsWrites
Extract key termsThe documentThe obligation register — every obligation found
Entity & concept graphThe documentThe knowledge graph — replaces this document's edges
Every other capabilityThe documentNothing. The result is a result
This capability writes to your obligation register

Most Papers AI is read-only: it produces a result you read and choose to act on. Extraction is different. The obligations it finds are inserted into the document's obligation register tagged source: ai_extracted, and they are then tracked, reported on and chased like any other obligation.

Run it deliberately, and review what it created — see §7.

Against its neighbours:

Returns
Extract key termsTyped values to store and track
SummarizeProse to read, with clause citations
Smart fieldsValues for the specific fields your admin configured, with evidence

2. Why you would use it​

An obligation that lives only in a sentence is an obligation nobody is tracking. The 30% advance due on 15 August is a real commitment the moment the document is signed, but until somebody types it somewhere it exists only in a paragraph that a person would have to be re-reading to notice.

  • It converts prose into tracked work. Deadlines and deliverables become register items with owners and dates, which is what makes them show up before they are missed rather than after.
  • It seeds the register in one pass. Typing out fifteen obligations from a distribution agreement is an hour of work nobody schedules. This is the reason registers stay empty.
  • The typed outputs feed reporting. contract_value, key_dates[] and governing_law come back as data, so a portfolio question — total committed value, everything governed by Singapore law — becomes answerable.
  • Empty is honest. Because it never guesses, an empty governing_law tells you the document genuinely does not state one. That is a finding.

3. What you provide​

Nothing. Extraction is a one-press capability with no parameters.

InputRequiredNotes
——No parameters. It works on the open document
Run it on a finalised document, not an early draft

The register is a record. An early draft yields sparse terms and half-formed obligations, and because extracted obligations cannot be deleted (§7), a premature run leaves clutter you can only cancel. Fill the fields and settle the clauses first.


4. What it reads automatically​

Read from the documentUsed for
Document text — the full rendered bodyEverything
Title & family — e.g. "Distribution Agreement"Frames what kind of obligations to expect
Parties — everyone namedPopulates parties[] and the who of each obligation
Key field values — filled schema fieldsAmounts and dates, so extraction agrees with the form

5. What you get back​

FieldTypeValuesMeans
parties[]string[]—Every party named, as Name (role)
contract_value.amountnumber0 if none statedThe primary monetary value
contract_value.currencystringISO code, or the symbol as writtenThe currency, as the document expresses it
key_dates[]array—Every material date
key_dates[].labelstring—What the date is. A relative period with no fixed date stays verbatim here
key_dates[].datestringYYYY-MM-DDThe absolute date, when there is one
governing_lawstringempty if noneThe governing law or jurisdiction, as stated
renewal_termsstringempty if noneHow the document renews or extends, in a sentence or two
obligations[]array—Every concrete commitment — also written to the register
obligations[].whostring—The party who owes it
obligations[].whatstring—The commitment, in the document's own terms
obligations[].due_datestringempty when no absolute dateWhen it falls due
obligations[].obligation_typeenumpayment, deliverable, renewal, expiry, milestone, noticeWhich kind of commitment it is

Note the key_dates[].label rule: "thirty days after commencement" has no calendar date, so it survives in the label rather than being invented as a date. Search the labels, not only the dates, when you are looking for a deadline.


6. Worked example​

A commercial manager finalises a distribution agreement and presses Extract key terms.

Input: none.

One entry from the obligations[] returned — and now in the register:

who: "Buyer (Gatiro Retail Pvt Ltd)" what: "Pay the 30% advance against the pro-forma invoice" due_date: 2026-08-15 obligation_type: payment

Alongside it the same run returned contract_value: { amount: 4200000, currency: "INR" }, governing_law: "Laws of India, courts at Bengaluru", and four more obligations — two deliverable, one notice, one renewal.

What the manager does next. The register now holds five items where it held none. They open it and correct two things the AI could not know: the payment obligation is reassigned from the party name to the named accounts-payable owner, and the notice obligation's due date is left empty because the document expresses it relative to termination. Both edits take a minute; typing the five items from scratch would not have happened at all.


7. Running it, and what it leaves behind​

  1. Open the document in Orbit Papers.
  2. Open the AI Assistant drawer, or go to the document's AI workspace.
  3. Choose Extract key terms under Understand.
  4. The structured terms appear in a result tab; the obligations are added to the register.

Re-running is safe, and deliberately conservative. An obligation is inserted only if no ai_extracted obligation with the same description already exists on that document. So a second run adds what is new and leaves the rest alone — it will not duplicate the register, and it will not overwrite the owner or date you corrected by hand.

Extracted obligations cannot be deleted. They can be cancelled — marked no longer applicable — but they stay in the register, because the register is a record of what the document committed to and silently erasing that would make it dishonest. This is why running extraction on a draft is a decision rather than a free action.

Always review the owner and the due date after a run. The AI can only capture what the text spells out; who inside your organisation is actually responsible is not in the document.

Extraction can also be set to run automatically on submit, round or finalize from the type's AI Config tab — see AI configuration. Given that it writes to the register, on_finalize is the sensible choice.


8. The admin contract​

Must be trueWhereWhat happens if it is not
Your role holds Use AI drafting/extraction/Q&A for documents.Role editorThe AI Assistant button does not appear
The papers_term_extractor utility is activeOrbit AI Flow → utilities"This utility is currently disabled"
The utility is enabled for your organisation/org/ai-utilitiesAbsent from Understand, with no error
papers.ai_monthly_credit_cap not yet reachedSystem Config"monthly AI credit cap reached: n of n credits used this month"
The Obligations surface is enabledPapers module settingsExtraction still succeeds and still writes rows — but nobody can see or work them
Confidential documents: automatic runs are blocked, manual runs are not

For a confidential document, auto-run is default-denied — a platform administrator must set papers.ai_confidential_cloud to the literal allow, and the block shows only in the server log. A manual press still works, and where a local model key is configured the run is forced on-prem and audited on the timeline as ai_local_routed.


9. Don't confuse this with…​

SummarizeProse for a reader. This is data for a system
Smart fieldsFills the fields your admin defined. This returns a fixed shape
Obligation registerWhere the obligations land. This is what puts them there
Zonal extractionReads values from fixed positions on a scanned page. This reads meaning from prose

10. Troubleshooting​

SymptomCause
The register filled with items I did not wantExtraction was run on a draft. They can be cancelled, not deleted (§7)
A re-run did not add an obligation I expectedAn ai_extracted obligation with the same description already exists on the document — dedupe by description
My hand-edited owner was overwrittenIt was not. Re-runs never touch an existing row; check you are looking at a second, differently-worded obligation
governing_law is emptyThe document does not state one. That is the finding
A deadline has no due_dateIt is expressed relatively — look in key_dates[].label, where the phrasing is kept verbatim
contract_value.amount is 0No monetary value is stated. Common for NDAs and framework agreements
The capability is missing from UnderstandRole lacks Use AI drafting/extraction/Q&A for documents., or the utility is off for the organisation (§8). The document type does not gate it — AI Config controls auto-run only