FlowRunner
PricingContact
Theme
Start Free

Klippa DocHorizon

Document Processing

Klippa DocHorizon, now presented as Doxis AI.dp, extracts structured data from invoices, receipts, identity documents, and bank statements. Agents capture documents with pretrained or custom models, prompt for their own fields, manipulate files, and route results to a human reviewer before release.

27 actions API key available
Klippa DocHorizon website Platform Documentation Capability data verified 2026-08-13
A scanned batch of supplier invoices lands in the AP mailbox as a single file
Get Document Info reports the page count and page dimensions without spending a metered read
Render Document produces a thumbnail of every page in the batch
Agent proposes where each invoice starts and ends, and marks the boundaries it is least sure about
List Enabled Models confirms the Financial model is available on the project before anything is spent
Agent posts the contact sheet with the proposed boundaries to the finance channel
The AP lead confirms the boundaries, and only then does the agent split the batch and capture each invoice

What This Integration Enables

Klippa DocHorizon, which the vendor now presents as Doxis AI.dp, takes a different position from most extraction platforms: you do not build an extractor, you pick a model. Financial reads invoices and receipts, Identity reads identity documents, Salary Slip and Bank Statement read their own document types, and Generic reads anything without a fixed schema. When the pretrained set does not cover a document, Prompt Builder holds a prompt-driven extraction of your own and Model Builder holds a trained model, both addressed by slug and both listed through the same connector. Get Capture Model Schema returns exactly what a model produces, so a flow can be built against real field names rather than against a guess, and List Capture Presets shows the saved configurations that narrow or extend a base model.

Around that sits a document toolkit that does the preparation: merging, splitting by page range, rendering pages as images at whatever sizes you need, and converting mixed incoming formats into one type before any of them are read. Storage matters more here than it looks, because Upload File To Storage returns a file id that every other operation accepts in place of the file, so a document that has to meet three models is sent once and referenced three times. Klippa can also route an extraction to its own reviewer before releasing it, and a job in that state reports back as hitl. FlowRunner treats that as one input among several rather than as the whole answer, because Orchestration as a Service is about where a decision belongs in the process, not about which vendor happens to own the review screen.

Without FlowRunner

Batches separated and keyed by hand A scanned run of invoices gets pulled apart page by page and typed into the ledger one document at a time
An extractor per supplier layout Every new supplier means a rule somebody writes and then has to maintain when the template changes
Processing spend found in arrears What document capture cost last month shows up as a line item rather than as a signal during the run

With FlowRunner

Boundaries confirmed with the pages in view Splits are proposed from rendered thumbnails and agreed before any metered read runs
A pretrained model per document type Invoices, receipts, identity documents, salary slips and bank statements each meet a model built for them
Spend readable during the month Usage statistics are queryable, grouped and filtered, so a run can be checked before it is repeated

Use Case Scenarios

  • Inbox to ledger without a keying step

    Supplier invoices arrive as attachments in Gmail in every format a supplier might use. Convert Document normalizes them to PDF, Upload File To Storage puts each one in Klippa storage and hands back a file id, and Capture Document Async queues each with the Financial model rather than holding a request open. The agent polls Get Capture Job Status until done, reads the fields with Get Capture Job Result, and posts amounts, tax, dates and line items into Xero or Acumatica with the source file attached to the bill. A digest of what posted and what did not goes to Slack. Get Usage Statistics runs on a schedule so the finance team sees what the pipeline is spending while the month is still open.

  • One document, several questions

    An onboarding packet contains a salary slip, a bank statement and an identity document, and each one needs a different model. Rather than sending the content three times, the agent calls Upload File To Storage once per document and reuses the file ids. Get Capture Model Schema is read first so the flow knows the exact field names each model returns, and List Enabled Models confirms which models the project may actually call, since a model that is not enabled is refused before a request is spent. Capture Document To Spreadsheet handles the case where the output is going to a person rather than to a system, returning the extracted data as a spreadsheet instead of JSON. Where the project is hosted matters here: Klippa serves a default host and a German one, and a project exists in one region only, which is worth setting deliberately when the documents carry personal data.

  • When Klippa's own reviewer says no

    Capture Document Async can carry a Human in the Loop configuration, which routes the extracted data to a Klippa reviewer before it is released. A job in that state reports hitl, and when the reviewer refuses it the job reports rejected with the reason recorded alongside it. The agent reads both, and instead of retrying blindly it acts on the reason. A poor scan goes back to the supplier for a better copy. A wrong document type is rerouted to the model that should have read it. A genuine dispute goes to the AP lead with the rejection text quoted. Get Capture Job Logs is where a job that reached error explains itself, so failures produce a cause rather than a retry loop. One detail governs all of this: a job that reaches closed has had its data purged from Klippa servers, and Cancel Capture Job removes a job and its data too, so the flow reads the result before it does either.

Human-in-Loop Highlight

Klippa treats several files sent in one capture call as pages of the same document and returns a single result. That is exactly right for a two-page invoice and exactly wrong for a batch scan cut in the wrong place. A split boundary that is one page off does not produce an error: the last page of invoice seven joins invoice eight, one blended record comes back carrying two suppliers and a total that belongs to neither, and every automated check it faces passes, because it is a well-formed result. Every capture is metered per page, so rerunning the batch spends again. FlowRunner's human-in-the-loop step therefore lands before the split rather than after the extraction. The agent reads the batch with Get Document Info, renders every page with Render Document, proposes the boundaries, and posts to the finance channel: "Batch scan 2261, 46 pages, 11 invoices proposed. Pages 22 to 24 read as either one invoice with a continuation sheet or two invoices from the same supplier. Confirm the split, or mark 22 to 24 for manual handling." The AP lead answers from a contact sheet in about the time it takes to scroll it, and only then does Split Document run and the metered captures begin.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

27 actions

Document Toolkit

5
  • Get Document Info Returns what Klippa can tell about a document without extracting anything from it: content type, metadata, the dimensions of every page, and the permissions the file carries. A cheap first step for deciding how to route a document.
  • Merge Documents Merges several documents into one file in the order given, optionally taking only selected page ranges from each. The result comes back as content or is written into Klippa storage for reuse by file id.
  • Split Document Splits one document into several files by page range, so a single call can cut an invoice batch into one file per invoice. Each range produces its own file.
  • Render Document Renders pages as images at the sizes given, and several sizes can be produced in one call. The operation behind a contact sheet a person can scan quickly.
  • Convert Document Converts a document into a PDF or a PNG. Used to normalize mixed incoming formats into one type before anything reads them.

Storage

2
  • Upload File To Storage Uploads a file and returns the file id that every other operation accepts in place of the file itself. Upload once and reference the id when the same document has to meet several models.
  • Get Storage File Returns a file previously uploaded to Klippa storage, by its file id.

Document Capturing

15
  • Capture Document Extracts structured data and waits for the result. The model chosen decides what is extracted, from the pretrained Financial, Identity, Salary Slip and Bank Statement models through Generic, and on to Prompt Builder and Model Builder for configurations and models of your own.
  • Capture Document Async Queues a document for extraction and returns a job id immediately instead of holding the request open. A Human in the Loop configuration can be attached, which routes the result to a reviewer before release, and a webhook URL can be supplied for the callback.
  • Capture Document To Spreadsheet Runs the Generic model over a document and returns the extracted data as a spreadsheet rather than as JSON. Used when the output is going to a person rather than to another system.
  • List Capture Jobs Lists the asynchronous capture jobs of one model, newest first, optionally filtered by status, with paging data reporting the total.
  • Get Capture Job Status Returns the state of one job: in_queue, processing, hitl while it waits for a reviewer, done, error, rejected, or closed once the data has been purged. Review details and any rejection reason come back with it.
  • Get Capture Job Result Returns the extracted data of a finished job. Read it once the status reports done, and read it before anything moves the job toward closed.
  • Get Capture Job Logs Returns the processing log of one job. This is where a job in the error state explains itself, so it is the first thing to read when a capture fails.
  • Cancel Capture Job Cancels a job that has not finished, or removes one that has. The job and its data are gone afterwards, so fetch the result first if it is still wanted.
  • Get Capture Model Schema Returns the JSON schema of what a capture model produces, so a flow can be built against the exact field names it will receive.
  • List Capture Presets Lists the saved presets of a capture model, each with the components it turns on. A preset slug replaces spelling out a configuration on every call.
  • Get Capture Preset Schema Returns the JSON schema produced by one preset. A preset can narrow or extend the base model, so this is the schema to build against when one is in use.
  • List Enabled Models Lists the capture models enabled on the project. A model that is not enabled cannot be called, so this is the first thing to check when a capture is refused.
  • List Prompt Builder Configurations Lists the Prompt Builder configurations on the project, each a prompt-driven extraction of your own addressed by slug.
  • List Custom Models Lists the Model Builder models on the project with their slugs and whether each is published. Unpublished models can be included, which helps while one is still being trained.
  • List Custom Model Versions Lists the versions of one Model Builder model, reporting which is the default, which is deployed, and each version's training status. Pass a version to pin it rather than following the deployed one.

Account

5
  • Get API Key Info Returns what the configured key is, which organization and project it belongs to, and what it may do. The cheapest authenticated call in the API, so it doubles as a connection check.
  • Get Usage Statistics Returns platform usage for the project, which is what the account is billed on. Results can be grouped, ordered and narrowed with filters, so spend is readable during the month rather than after it.
  • List Human In The Loop Configurations Lists the review configurations on the project. A configuration slug attached to an asynchronous capture routes the extracted data to a Klippa reviewer before it is released.
  • Create API Key Mints a new key on an existing credential and returns it. The key is shown only in that response, so whatever reads it has to store it there and then.
  • Delete API Key Revokes a key. Anything still authenticating with it stops working immediately, and the key cannot be restored.

Frequently Asked Questions

What can FlowRunner do with Klippa DocHorizon?

FlowRunner agents can run Get Document Info, Merge Documents, and Split Document in Klippa DocHorizon, plus 24 more actions.

Does connecting Klippa DocHorizon to FlowRunner require OAuth?

No. Klippa DocHorizon connects to FlowRunner with an API key, no OAuth flow required.

Can Klippa DocHorizon trigger a FlowRunner workflow automatically?

Klippa DocHorizon doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with Klippa DocHorizon

Free plan, no card required. Connect in minutes.