---
title: "Formstack Documents Integration"
description: "Formstack Documents, formerly WebMerge, generates PDF, Word, Excel, and PowerPoint files from templates and delivers them where the template says. Agents merge data into documents, fan one payload across a bundle with data routes, and combine, convert, encrypt, or split files."
url: https://flowrunner.ai/integrations/webmerge
date_modified: 2026-09-04T14:07:24-07:00
---

# Formstack Documents

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

Formstack Documents, formerly WebMerge, generates PDF, Word, Excel, and PowerPoint files from templates and delivers them where the template says. Agents merge data into documents, fan one payload across a bundle with data routes, and combine, convert, encrypt, or split files.

26 actions · Basic auth · available

[Formstack Documents website](https://www.formstack.com/) · [Platform Documentation](https://www.webmerge.me/developers) · Capability data verified 2026-08-13

1.  A new client engagement is signed and the onboarding pack has to be produced
2.  Agent reads the client, the scope, the jurisdiction, and the fee schedule from the engagement record
3.  Get Data Route Fields reports the merge keys every document in the bundle expects, across the whole route rather than one template at a time
4.  Merge Data Route runs in test mode, which produces the bundle without delivering anything and without counting against the plan
5.  Get Data Route Rules confirms which documents the conditions actually selected, including the jurisdiction specific addendum
6.  The engagement owner receives the test bundle alongside the recipient list read from the route's configured deliveries
7.  The engagement owner approves the recipients, and only then does the live merge run

## What This Integration Enables

Formstack Documents, still known to plenty of people as WebMerge, is built around an idea most document generators do not commit to: the document decides what happens to it. Delivery is configured on the template rather than passed on the call, so a merge does not just produce a file, it runs whatever deliveries that document carries. Data routes take the same idea further and fan one payload across a whole bundle of documents, picking which ones apply by condition, so a client pack can include a jurisdiction specific addendum for the clients it applies to and skip it silently for everyone else. The rebrand kept the old host and the old developer documentation, which is why this connector's slug is still webmerge.

For an agency or a services team producing the same eight documents for every new engagement, that is a real reduction in flow complexity. FlowRunner agents merge data into documents, repeat a section once per line item from an array, and finish the result properly before it leaves: combine several files into one PDF, convert a Word file a client sent, compress a document carrying scanned pages, encrypt it with a reader password and a permissions list, or split a batch PDF into its parts. Two things are worth building around from the start. The merge URL carries no credentials by design and is authorized by its key alone, so treat it as a secret in its own right. And because delivery is a property of the template, [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) belongs in front of the first live merge of any document the flow did not create, which is exactly where this page's gate sits.

### Without FlowRunner

**One document per call, assembled by hand**: A pack of eight documents means eight generation steps and a person stapling the output together

**Conditional documents are conditional logic**: Whether the jurisdiction addendum belongs in this pack is decided in flow branching that nobody outside the flow can read

**Nobody is sure who a merge emails**: Delivery settings live on the template, so the person building the flow cannot see from the call who receives the result

### With FlowRunner

**One payload, one bundle**: A data route fans a single set of data across every document in the pack and returns the whole thing

**Conditions live with the documents**: The route's rules say which document applies under what condition, readable by anyone who opens the route

**Recipients are read before they are reached**: The flow lists the document's deliveries, shows them to a person, and rehearses in test mode before anything is delivered

## Use Case Scenarios

### The engagement pack that assembles itself

An engagement is marked signed in [Pipedrive](https://flowrunner.ai/integrations/pipedrive). The pack is a master services agreement, a statement of work, a data processing addendum, a fee schedule, and, for clients in two particular states, a regulatory addendum that does not apply anywhere else. Rather than five generation steps and a branch, the agent calls Get Data Route Fields to learn the merge keys across the whole bundle, then Merge Data Route once. The route's own rules decide which documents this client gets, and the rules marked to combine come back as a single PDF. Get Data Route Rules is read first so the flow reports what the route selected rather than assuming what it should have.

### Finishing the document before it leaves the building

A client returns a signed schedule as a Word file attached to an email. Convert File To PDF turns it into something archivable, Combine Files joins it to the executed agreement and the countersignature page in the right order, and Compress PDF brings the scanned pages down to a size that will actually send. Encrypt PDF then applies a reader password and restricts what the recipient may do with the file, which matters when the pack carries fee information. The finished artifact lands in the client folder in [Box](https://flowrunner.ai/integrations/box), and the engagement record in [HubSpot](https://flowrunner.ai/integrations/hubspot) gets the link. Split PDF handles the reverse case, pulling one client's pages out of a batch document that arrived as a single file.

### Changing a template without touching the one in production

A partner wants the statement of work reworded. Copy Document branches the existing template under a new name, and the copy gets its own identifier, its own key, and its own merge URL, so nothing pointing at production is disturbed. The agent merges the branch in test mode, which watermarks the output, delivers nothing, and does not count against the plan, and posts the result for review. Once the wording is accepted, the branch becomes the one the route references. Nobody edited a live template to find out whether the change was right, and no client received a watermarked draft to prove it.

## Human-in-Loop Highlight

A merge on this platform is not a file operation. Merge Document runs whatever deliveries the document has configured, and those deliveries were set up on the template, possibly by someone else, possibly years ago. From the flow's point of view the call looks like generation. From a client's point of view an email arrives. That gap is the hazard, and it opens exactly when a flow starts using a document it did not create, which is the normal case for a team inheriting a library of templates. So the agent refuses to run a first live merge blind. It calls List Document Deliveries, resolves what each one does, runs the merge in test mode so nothing is delivered and nothing is billed, and reports: "Document 436346, Client Welcome Letter. Two deliveries configured: an email to the address in the client\_email field, and a webhook post to an endpoint at a domain this workspace does not recognize. Test merge attached. Run live, or fix the deliveries first?" The engagement owner answers. What the agent avoided was discovering the second delivery from the client rather than from the configuration.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via email

Human decides

Agent resumes with decision

## Agent Capabilities

26 actions

### Documents

11

-   **Merge Document** Sends data into a document and produces the merged file, running whatever deliveries the document has configured. Merge fields are supplied as a plain object and nested arrays fill repeating sections. In test mode nothing is delivered and the output is watermarked, which is how a flow rehearses safely.
-   **Create Document** Creates a document template. An HTML document carries its markup inline, while a fillable PDF, Word, Excel, or PowerPoint document is uploaded. The output type decides what a merge produces.
-   **Update Document** Updates a document. Only the values sent are changed, so anything left empty keeps its current setting. A document's type cannot be changed after creation, but its contents, output, and settings can.
-   **List Documents** Lists the documents on the account with their merge URLs, types, and outputs, narrowed by a search term or to a single folder.
-   **Get Document** Returns one document with its settings, its merge URL, and, for an HTML document, its markup. The key it returns is what Merge Document needs alongside the identifier.
-   **Get Document Fields** Returns the merge fields a document defines, which are the keys Merge Document expects. Read this rather than guessing at field names.
-   **Get Document File** Downloads the uploaded template file behind a PDF, Word, Excel, or PowerPoint document and stores it in flow file storage. An HTML document has no uploaded file, and the call says so rather than storing an empty one.
-   **List Document Deliveries** Lists the deliveries configured on a document. A delivery is what happens to the merged file, such as emailing it or posting it to a webhook, and this is the call that makes an inherited template's behavior visible before you run it.
-   **Create Document Delivery** Adds a delivery to a document, so every later merge of it does something with the result. Email deliveries take to, from, subject, and html, and merge fields may be used inside them.
-   **Copy Document** Copies a document under a new name. The copy gets its own identifier, key, and merge URL, which makes this the way to branch a template without disturbing the one already in use.
-   **Delete Document** Deletes a document. Its merge URL stops working immediately, so anything still posting to it starts failing.

### Data Routes

10

-   **Merge Data Route** Sends one set of data into a data route, which merges every document whose conditions the data satisfies. A route that produced a single file returns that file; a route that produced several returns them as a list.
-   **Create Data Route** Creates a data route, which fans one set of data out across several documents. Each rule names the document it merges and may carry conditions, so a route can produce a different bundle for one jurisdiction than for anywhere else.
-   **Update Data Route** Updates a data route. Sending rules replaces the whole set rather than merging into it, so send every rule the route should end up with, not only the ones being changed.
-   **List Data Routes** Lists the data routes on the account, each with its merge URL.
-   **Get Data Route** Returns one data route with its settings and its merge URL. The key it returns is what Merge Data Route needs alongside the identifier.
-   **Get Data Route Fields** Returns the merge fields across every document the route touches, which are the keys Merge Data Route expects.
-   **Get Data Route Rules** Returns the rules of a data route: which document each merges, in what order, under what conditions, and whether it joins the combined PDF. Read this before any update, since an update replaces the whole set.
-   **List Data Route Deliveries** Lists the deliveries configured on a data route, each with its own settings.
-   **Create Data Route Delivery** Adds a delivery to a data route, so every later merge of it does something with the combined result.
-   **Delete Data Route** Deletes a data route. Its merge URL stops working immediately, though the documents the route referenced are left alone.

### Tools

5

-   **Combine Files** Combines several files into one, in the order given, and stores the result in flow file storage. Word, Excel, PowerPoint, image, and HTML files can all be fed in, whatever mix they arrive as.
-   **Convert File To PDF** Converts a Word, Excel, PowerPoint, image, or HTML file into a PDF and stores the result in flow file storage. The step that makes an inbound attachment archivable.
-   **Compress PDF** Compresses a PDF and stores the smaller file. Useful before emailing a merged document carrying scanned pages or large images.
-   **Encrypt PDF** Password protects a PDF. The owner password governs what may be changed about the document, the user password is what a reader must type to open it, and the permissions list what a reader may do once inside.
-   **Split PDF** Splits a PDF. Given no page range it returns a ZIP holding one file per page; given pages to extract it returns just those, and given pages to remove it returns the document without them.

## Frequently Asked Questions

### What can FlowRunner do with Formstack Documents?

FlowRunner agents can run Merge Document, Create Document, and Update Document in Formstack Documents, plus 23 more actions.

### Does connecting Formstack Documents to FlowRunner require OAuth?

No. Formstack Documents connects to FlowRunner with basic authentication (a username and password), no OAuth flow required.

### Can Formstack Documents trigger a FlowRunner workflow automatically?

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

**Work at Formstack Documents?** This integration exposes Formstack Documents 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/webmerge. Site index: https://flowrunner.ai/llms.txt
