Integration

n8n node for Tiro: document data in your workflows

Tiro as an n8n node: trigger on finished extracts (whole or row by row), upload from the workflow, fetch a result by document ID – signed, without polling.

By Christian Gerloff · Published September 13, 2026

In short: the community node n8n-nodes-tiro adds two building blocks to your editor – a trigger that fires on every finished document, and a node that uploads files and fetches results. No polling, no credits for the delivery, the same field names as in your inbox.

The package is n8n-nodes-tiro and it is open source (source on GitHub, MIT licence). On self-hosted n8n you install it under Settings → Community nodes. Getting onto the verified list that n8n Cloud requires is the next step.

What the n8n node is for

n8n is the automation platform for people who keep their data in their own house: self-hosted, with direct access to databases, file shares and internal APIs. That is exactly where the values from your documents belong – without the detour through someone else's service.

Typical workflows:

  • Order confirmations → Postgres: trigger in “One Item per Row” mode, then an insert node. Every line item becomes a row, with order number and supplier on each of them.
  • Delivery notes → ERP: trigger “Extract Completed”, then an HTTP Request node against your ERP API. Header fields and line items arrive ready-structured.
  • Email attachments → Tiro: IMAP trigger, then Tiro → Document → Upload. The route for everyone who cannot use Tiro's own email intake.
  • Failures → Slack or a ticket: trigger “Document Failed”, then a message with the error and the link. Nothing falls silently off the table.

The two nodes

Building blockWhat it does
Tiro Trigger · Extract CompletedFires when a document has been extracted. Delivers every header field, the line items as a list, filename, pages, credits and links to the document and its downloads.
Tiro Trigger · One Item per RowFires with one item per line item; the header fields sit on every item. Made for tables and database inserts.
Tiro Trigger · Document FailedFires when a document could not be processed after all attempts – with the error message and the link.
Tiro · Document → UploadPuts a binary file from a previous step into an inbox. Returns document ID and status; extraction runs in the background.
Tiro · Extract → GetFetches the result of a document by its ID – for “Upload → Wait → Get” in a single workflow. If the document is not finished yet you get found: false instead of an error, and an IF node sends the run back into the Wait step.

The field keys are the ones you named in the inbox: header fields under fields, the line items under rows (in row mode the single row under row).

How it works under the hood

When you activate a workflow with the Tiro Trigger, the node creates a destination of type n8n in Tiro – you see it in the inbox under “Destinations”, next to your webhooks. As soon as a result is finished, Tiro sends a signed call to your workflow's webhook URL, with the same retries on trouble as any webhook: after 1, 5 and 15 minutes, then after 1, 3, 6 and 12 hours. Every attempt shows up in the document's history. Deactivate the workflow and the destination disappears again.

For this to work your n8n instance has to be reachable from the internet: https only, public hostname. Tiro never calls private, loopback or link-local addresses – which protects both sides. To try it out, put a tunnel in front of your local instance – cloudflared tunnel --url http://localhost:5678, say – and start n8n with WEBHOOK_URL set to that public address. (The built-in --tunnel switch is gone as of n8n 2.)

What else is worth knowing

  • Review: if the inbox reviews, n8n waits for the release. “Approve all” in the app sets the waiting workflows off at once.
  • Reprocessing: reprocess a document and the workflow runs again – with the new values. The new run carries its own ID.
  • Credits: every uploaded document costs page credits like in the app; the delivery to n8n costs nothing.
  • Downloads: the CSV and Excel links in the item point at the REST API and need your API key as a bearer header – an HTTP Request node with the Tiro credential pulls the file straight into the workflow.
  • Alternatives without the node: a Webhook node in n8n plus a destination of type webhook in Tiro – that works on every n8n version, you verify the signature yourself. For code there is the REST API, for your AI assistant the MCP server.

How it works

  1. Create an API key

    Sign in to Tiro and create a new key under Account → API keys. It is shown exactly once – copy it right away.

  2. Install the node

    In your self-hosted n8n go to Settings → Community nodes, click “Install” and enter the package n8n-nodes-tiro. n8n pulls it from npm and adds the nodes “Tiro” and “Tiro Trigger” to the editor.

  3. Create the connection

    Add a Tiro Trigger to a workflow and create a new Tiro API credential with your key. n8n checks it right away against your workspace's inbox list.

  4. Pick an inbox and switch it on

    Choose the inbox and the event. As soon as you activate the workflow, the node registers itself as a destination in that inbox – from then on Tiro reports every finished document to n8n at once.

Frequently asked questions

Do I need n8n Cloud or is self-hosted enough?

The node is built for self-hosted n8n, where you install community nodes freely. n8n Cloud only allows verified community nodes; getting on that list is planned. Either way your n8n instance has to be reachable over https under a public hostname, because Tiro calls it.

Why are there two result modes?

“Extract Completed” starts the workflow once per document and delivers the header fields plus all line items as a list. “Extract Completed (One Item per Row)” starts it with one item per line item, with the header fields on every row – so an order confirmation with twelve line items becomes exactly twelve items for the next node.

How fast does a workflow start?

Immediately. The trigger is a webhook – Tiro calls your n8n instance as soon as a document is finished. You never wait for a polling interval, and there are no empty executions.

What happens with inboxes that review?

If an inbox reviews its results, n8n only ever gets the released result – exactly like a webhook. Unreviewed data does not leave Tiro.

What does the n8n integration cost?

Nothing on Tiro's side. Deliveries to n8n consume no credits – only processing a document is counted, as everywhere. The node itself is open source and free.

Can I send documents from n8n to Tiro?

Yes, with the “Tiro” node and the operation Document → Upload. It takes the binary file from a previous step – an email attachment, a file from an S3 bucket – and puts it into an inbox. Processing runs in the background; you pick the result up with the trigger in a second workflow or, in the same workflow, after a Wait step with Extract → Get.

Is the connection secure?

n8n authenticates with your API key; it belongs to your workspace and can be revoked in Tiro at any time. Every call from Tiro to n8n is signed, and the node verifies signature and timestamp before it starts a workflow. File contents never go to n8n – only the extracted values and links.