Skip to main content

Power Automate

The Formfeed connector works in Power Automate, Power Apps, Logic Apps and Copilot Studio. Microsoft certified and released it on 5 October 2026 and rolls it out region by region, marked Preview like every newly certified connector. It is a premium connector, so flows and apps that use it need a licence with premium connectors, as the HTTP action does. Until it appears in your environment, the HTTP action does the same job with one request, see the end of this page.

Connect​

Add a Formfeed connection and paste an API key from the app (API keys) as it is: the connector adds the Bearer prefix. A ff_test_ key renders for free (with a watermark on the Free plan), which is what you want while building a flow. The default scopes of a new key (render:create, render:read, template:read, account:read) cover the connection test, the template picker and fields, and every action. When a render or batch finishes registers a webhook endpoint, so its key needs the webhook:manage scope as well; new keys do not have it unless you tick it.

Actions and trigger​

OperationWhat it does
Create a documentRenders a template to PDF, PNG, JPG or WebP, and a Word or PowerPoint template to DOCX, PPTX or PDF. Returns the render with its download link, page count and units.
Create a document fileThe same render, returning the file itself as File Content.
Create a document from HTMLRenders HTML built earlier in the flow, in Jinja2, Liquid or Handlebars.
Create a document from a web pageRenders a public page.
Get a renderReturns a render by its ID, with a fresh download link.
Get a batchReturns the progress of a batch created through the API, its documents and the zip URL.
Convert a document to PDFTurns a Word, Excel, PowerPoint, OpenDocument or RTF file of up to 20 MB into a PDF; the file is not kept. Starter plan and above.
When a render or batch finishesStarts the flow on render.completed, render.failed, job.completed or job.failed.

The fields of each operation (the designer lists the advanced ones among the advanced parameters):

OperationFields
Create a document, Create a document fileTemplate (required), Data (the template's fields, see below), Output (empty: the template's format; PDF, PNG, JPG, WebP, DOCX or PPTX), File Name; advanced: Version, Locale (for example de-DE)
Create a document from HTMLHTML (required), Template Language (Jinja2, the default, Liquid or Handlebars), Data, Output (PDF when empty, PNG, JPG or WebP), File Name
Create a document from a web pageURL (required, a public page), Output (PDF when empty, PNG, JPG or WebP), File Name
Get a render, Get a batchRender ID (rnd_…) or Batch ID (job_…), required
Convert a document to PDFFile (required: DOCX, XLSX, PPTX, ODT, ODS, ODP, DOC, XLS, PPT or RTF), File Name (the file's own name with .pdf when empty); advanced: Page Ranges (for example 1-3,5), Landscape, One Page per Sheet
When a render or batch finishesEvents (required); advanced: Environments (renders of live keys, test keys or both; both when empty)

Fields from your template​

The template picker lists the workspace's templates (up to 100); only published templates render, and an unpublished one fails with template_not_found. Picking a template loads the fields of its data schema or, when the template has none, the fields of its sample data. Nested objects become groups, and lists such as invoice lines become arrays: map an array from an earlier action onto them, or build the whole Data object with a Compose action. Version (advanced) renders a release channel or a version number instead of the published version.

Attaching the file​

Create a document file is the one to use when the document goes on as a file: its File Content is the attachment of Send an email (V2), or the content of Create file in OneDrive or SharePoint. Give the attachment a name with the extension, such as invoice.pdf. Create a document returns the download link instead, which is what a Teams message or a SharePoint list column wants.

Long renders​

A render that takes longer than a minute continues in the background, and the action waits for it: Power Automate asks again every few seconds until the document is finished, then returns it as usual, the file of Create a document file included. A render that fails ends the action with its error.

The trigger​

When a render or batch finishes registers a webhook endpoint in the workspace when the flow is turned on and removes it when the flow is turned off; it shows in the app under Webhooks as Power Automate. The events carry the render, or for batch events the batch with its zip URL. Power Automate does not check the delivery's signature; the flow's callback address is a secret of its own, and every render in an event can be read back with Get a render.

Until the connector reaches your region​

Microsoft released the connector on 5 October 2026 and deploys it to one group of regions per working day, starting on a Friday (9 October at the earliest): its own test region and the US preview region first, then Asia, then Europe, then Brazil, Canada, Japan and India, and last Australia, the United Kingdom and the United States. Microsoft gives 10 to 14 days for the whole rollout. Until the connector appears in your environment, the HTTP action (a premium action) calls the API directly:

  • Method POST, URI https://api.formfeed.dev/v1/renders?output=binary
  • Header Authorization: Bearer ff_test_…, header Content-Type: application/json
  • Body {"template": "invoice-de", "data": {"invoice": {"number": "2026-0042"}}}

With ?output=binary the response body is the document itself, so body('HTTP') goes straight into an email attachment; without it the response is the render as JSON with its download_url. A render that takes longer than a minute answers 202 with a Location that the HTTP action polls until the document is there, as long as the action's asynchronous pattern setting is on (its default). The request shape is described in Rendering. Keep the key in a secure input or an environment variable of the solution rather than in the action.