Browse the docs
Documentation
PDF parsing: turn PDFs into text an agent can read
Invoices, contracts and reports usually arrive as PDFs, which a model cannot read directly. The Parse PDF node turns a PDF into clean Markdown in reading order, with headings, lists and tables kept, so the next node can work with it.
Add the Parse PDF node
Drag Parse PDF from the Tool group in the palette and choose where the PDF comes from under Source:
- File: a PDF you upload, or one passed in the run input, such as
{{ input.file }}or{{ trigger.invoice }}. - URL: a public link to a PDF. Private and internal addresses are blocked.
- Base64: the file as base64 text, such as an email attachment from a connector.
Pull the invoice number, total and due date from this invoice:
{{ nodes.parse.output.markdown }}Uploading a file
Uploads must be PDFs up to 25 MB, and Worfilo checks the file itself, not its name. There are three ways to test with one:
- On the node: choose Upload PDF, or drop a file on the File field.
- In the trigger: on the Manual Trigger, choose Attach PDF under Test inputs. The file arrives as
{{ trigger.file }}, the same way an API call sends it, so set the node's File to{{ trigger.file }}and press Run. - In the Playground: attach a PDF with the paperclip next to the message box. The chip shows the name it arrives under, and the code samples switch to a multipart request you can copy.
What the node returns
Output picks the format. Markdown (the default) is best for an agent. JSON lists every heading, paragraph, table and image with its page number and position on the page, which is useful for citations or highlighting. Both returns both.
{
"filename": "invoice-1042.pdf",
"pages": 2,
"needs_ocr": false,
"markdown": "# Invoice 1042\n\nBilled to: Acme Ltd ..."
}Pages limits parsing to part of a document, such as 1-3 or 1,4,7-9.
Scanned PDFs
Parse PDF reads the text stored in a PDF. A scanned document is only images of pages, so it comes back nearly empty with needs_ocr set to true. Branch on it with an If node to tell the sender, instead of passing empty text to an agent.
Privacy
Files are stored encrypted, are visible only to your account, and are deleted after 24 hours. The parser keeps nothing: each PDF is parsed in a temporary folder that is removed straight away. Run history records the page count, never the text.
To keep personal data in a document away from the model, put a Mask PII node between Parse PDF and the agent, with its text set to {{ nodes.parse.output.markdown }}.
Keep reading
- Parse PDF node: turn a PDF into Markdown for an agentThe Parse PDF node turns an uploaded, linked or attached PDF into Markdown and structured JSON, with headings, tables and page numbers, for a Claude agent.
- Workflow API: run workflows from your own codeCall a published workflow over HTTP with an API key and its workflow ID, send it input and get its output back, and test it first in the chat playground.
- PII masking: keep personal data away from the modelMask names, emails, phone numbers, card numbers and national IDs before an AI agent sees them, using the Mask PII node and its data profiles.
Build it on the canvas
Create a free account, describe the workflow or wire it yourself, and run it in the browser.