---
title: "pdf noodle (pdforge) Integration"
description: "Generate pixel-perfect PDFs from reusable pdforge templates or raw HTML, and post-process existing documents. Agents merge record data into Handlebars variables and produce a finished file."
url: https://flowrunner.ai/integrations/pdforge
date_modified: 2026-08-07T17:20:23-07:00
---

# pdf noodle (pdforge)

[Documents](https://flowrunner.ai/integrations/category/documents-forms)

Generate pixel-perfect PDFs from reusable pdforge templates or raw HTML, and post-process existing documents. Agents merge record data into Handlebars variables and produce a finished file.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 18 actions · API key · available

[Platform Documentation](https://app.pdfnoodle.com) · Capability data verified 2026-08-12

1.  A client engagement closes and the delivery packet has to be assembled from several sources
2.  Render Templates In Batch produces the cover letter, the statement of work, and the per-milestone summaries in one call
3.  Get Batch PDF Status reports the overall result as SUCCESS, PARTIAL\_SUCCESS, or FAILED with per-item detail
4.  Merge PDFs concatenates the parts in the exact order supplied, followed by Compress PDF to bring the file under the mail size limit
5.  The agent counts the sections in the merged file against the sections the batch was asked to produce
6.  The agent posts the merged packet and the per-item results to the delivery channel
7.  The engagement lead confirms the packet is complete and correctly ordered before it goes to the client

## What This Integration Enables

pdforge is the connector that keeps working after the render. Most document [connectors](https://flowrunner.ai/concepts/connectors) stop at producing a file. pdforge renders from reusable templates by merging your data into Handlebars variables, from raw HTML with full control of paper size, margins, and header and footer templates, and from Markdown into a styled document. It then goes on to merge, split, compress, and re-tag PDFs that already exist. It runs synchronously, asynchronously with a webhook callback, or in batches of up to twenty template and data pairs, and it will build a whole new template from a natural-language prompt with Create Template With AI. Note that pdforge now trades as pdf noodle; the connector calls the pdfnoodle.com API and existing pdforge keys continue to work.

That combination is what makes it the right choice for assembled documents rather than single ones. A client packet, a compliance pack, a merged run of payslips or certificates: these are documents made of parts, where each part is fine on its own and the risk lives in how they come together. The batch call reports SUCCESS, PARTIAL\_SUCCESS, or FAILED, and the merge combines every part that succeeded. Read those two facts together and you have the failure mode this connector is really about, which is a document that looks finished while quietly missing a piece. FlowRunner's answer is not to hide the partial result behind a retry. It is to put the per-item results in front of the person who owns the deliverable.

### Without FlowRunner

**A merged packet hides its own gaps**: A section that failed to render leaves no visible hole in the combined file

**Ordering is assumed rather than checked**: Parts are concatenated in whatever order the URLs happened to arrive in

**Design changes wait on a release**: Every layout tweak becomes a ticket for whoever owns the template code

### With FlowRunner

**Completeness is verified before delivery**: The per-item batch result is reconciled against the merged output

**Order is explicit and confirmed**: Merge order is set deliberately and a person signs off on the assembled document

**Design and data are separate concerns**: Templates change in the builder while the flow keeps sending the same payload

## Use Case Scenarios

### Assembling a client delivery packet

An engagement closes and the agent calls Render Templates In Batch with the cover letter, the statement of work summary, and one milestone report per phase, each item using a different template. Get Batch PDF Status returns per-item request IDs and signed URLs along with an overall status. The agent then calls Merge PDFs with the URLs in deliberate order, runs Compress PDF at the medium quality level so the file clears the recipient's mail gateway, and stores the result. The packet goes to the engagement lead with the batch's per-item results attached, so the reviewer can see at a glance whether the merged file contains everything it was supposed to.

### Bulk payslip generation on a payroll cycle

Payroll finalizes and the agent pulls the period's employee records from [BambooHR](https://flowrunner.ai/integrations/bamboohr). It renders payslips through Render Template To PDF Asynchronously, which is the right shape for volume because asynchronous requests carry a far higher rate ceiling than synchronous ones and pdforge posts each finished result to the flow's webhook. The agent tracks completion with Get PDF Status, files each document to [Amazon S3](https://flowrunner.ai/integrations/s3) under the employee's record, and reports the count rendered against the count expected. Any shortfall stops the distribution step rather than being logged and forgotten.

### Turning an AI-written summary into a document someone will sign

An agent drafts a scope change in Markdown, calls Convert Markdown To PDF to produce a styled document with the account's CSS, and prepares it for signature through [DocuSign](https://flowrunner.ai/integrations/docusign). Before it leaves, the agent calls Update PDF Metadata to set the title, author, and subject correctly, because a document that will live in a counterparty's records for years should not carry the metadata of whatever generated it. The scope change itself is read by a person first. Markdown that an agent wrote is a draft, and a draft that goes out for signature is a commitment.

## Human-in-Loop Highlight

The gate is on the merged packet, and it exists because of one specific pdforge behavior: Render Templates In Batch can return PARTIAL\_SUCCESS, and Merge Into Single PDF combines every render that succeeded. A packet assembled from a partial batch is not obviously broken. It opens, it paginates, it looks like a finished document, and the missing milestone report leaves no gap a reader would notice. So the agent stops before delivery and posts to the engagement channel: "Client packet for Northwind is assembled. The batch returned PARTIAL\_SUCCESS: 6 of 7 sections rendered, and Milestone 4 failed. The merged file contains six sections in this order. Send as is, re-render Milestone 4 and rebuild, or hold?" Note what the agent does not do. It does not decide that six out of seven is close enough, and it does not silently retry until the numbers look right. It puts the per-item result and the merge order in front of the person whose name is on the deliverable, which is the same reflex as a [digital andon cord](https://flowrunner.ai/concepts/digital-andon-cord): the line stops at the point where the defect is still cheap.

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

18 actions

### Template Rendering

3

-   **Render Template To PDF** Renders a pdforge template into a PDF or PNG by merging a JSON object into the template's Handlebars variables, waiting for the file and returning a signed download URL with render metadata. Renders over thirty seconds are queued automatically and return a request ID instead.
-   **Render Template To PDF Asynchronously** Queues a template render and returns a request ID immediately, with pdforge posting the finished result to a webhook. This is the shape to use for heavy documents and high throughput, because asynchronous requests carry a much higher rate ceiling than synchronous ones.
-   **Render Templates In Batch** Renders between one and twenty template and data pairs in a single call, each item optionally using a different template. Returns per-item results plus an overall status of SUCCESS, PARTIAL\_SUCCESS, or FAILED, and can merge every successful render into a single combined file.

### HTML and Markdown Conversion

3

-   **Convert HTML To PDF** Renders raw HTML into a PDF or PNG with full page control: paper format, orientation, margins, background graphics, and custom header and footer templates that can inject the date, title, URL, page number, and total pages.
-   **Convert HTML To PDF Asynchronously** Queues an HTML conversion and returns a request ID immediately, with the completed result posted to a webhook. Preferred for large or slow documents and for sustained volume.
-   **Convert Markdown To PDF** Converts Markdown into a styled PDF with headings, lists, tables, blockquotes, links, images, and syntax-highlighted code blocks. Custom CSS overrides the default theme. Used to turn agent-written or AI-written summaries into something a person will actually read.

### Render Status

3

-   **Get PDF Status** Checks a single queued render using the request ID from an asynchronous call or from a synchronous call that exceeded the time limit. Returns ONGOING, SUCCESS, or FAILED, with the signed download URL populated only on success.
-   **Get Batch PDF Status** Checks a batch render using its batch request ID. Returns the overall status, how many items have finished, the per-item results with their own request IDs and URLs, and the merged file URL when merging was requested.
-   **Get Tool Status** Checks a PDF tool operation that ran in the background: a merge, split, compression, metadata update, or Markdown conversion. On failure the response carries the error message explaining what went wrong.

### Template Management

4

-   **List Templates** Retrieves every template available to the account with its ID and display name. Used to resolve a template ID before rendering.
-   **Get Template** Retrieves a single template's full definition including its type, styling configuration, and generated HTML. This also doubles as the status check while a template is still being built by Create Template With AI.
-   **Get Template Variables** Extracts the complete variable schema for a template, returning a sample object that mirrors every placeholder including nested objects and repeating arrays. Used to validate a payload before rendering rather than discovering a missing field in the output.
-   **Create Template With AI** Generates a new template from a natural-language prompt, optionally using a reference document or image for design direction. Creation runs in the background, so the call returns a template ID to poll with Get Template until it succeeds or fails.

### PDF Post-Processing

5

-   **Merge PDFs** Combines two or more PDFs into one document, concatenating them in exactly the order the URLs are supplied. Every URL must be publicly reachable, so local files are pushed through Get Signed Upload URL first.
-   **Split PDF** Splits one PDF into several smaller files, either every N pages or by explicit page ranges. Returns a URL per part plus a ZIP archive of all parts.
-   **Compress PDF** Reduces a PDF's file size at one of three quality levels and reports the original size, the compressed size, and the percentage reduction. Used before email delivery or archiving.
-   **Update PDF Metadata** Rewrites the embedded document properties of an existing PDF, including title, author, subject, keywords, creator, copyright, dates, accessibility marking, and trapping status, while leaving the page content untouched.
-   **Get Signed Upload URL** Issues a pair of presigned URLs so a local PDF can be pushed into temporary storage and then processed. The returned download URL is what Merge PDFs, Split PDF, Compress PDF, and Update PDF Metadata consume.

## Frequently Asked Questions

### What can FlowRunner do with pdf noodle (pdforge)?

FlowRunner agents can run Render Template To PDF, Render Template To PDF Asynchronously, and Render Templates In Batch in pdf noodle (pdforge), plus 15 more actions.

### Does connecting pdf noodle (pdforge) to FlowRunner require OAuth?

No. pdf noodle (pdforge) connects to FlowRunner with an API key, no OAuth flow required.

### Can pdf noodle (pdforge) trigger a FlowRunner workflow automatically?

pdf noodle (pdforge) doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at pdf noodle (pdforge)?** This integration exposes pdf noodle (pdforge) to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/pdforge. Site index: https://flowrunner.ai/llms.txt
