---
title: "Quill Forms Integration"
description: "Quill Forms is an open source conversational form builder that runs as a WordPress plugin. Agents read and write forms and their block-based questions, manage submissions, submit entries, manage themes and provider integrations, generate a form from a plain language brief, and react on every new entry."
url: https://flowrunner.ai/integrations/quill-forms
date_modified: 2026-09-04T19:08:45-07:00
---

# Quill Forms

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

Quill Forms is an open source conversational form builder that runs as a WordPress plugin. Agents read and write forms and their block-based questions, manage submissions, submit entries, manage themes and provider integrations, generate a form from a plain language brief, and react on every new entry.

1 trigger · 32 actions · Basic auth · available

[Quill Forms website](https://quillforms.com/) · [Platform Documentation](https://quillforms.com/) · Capability data verified 2026-08-26

1.  On New Entry fires when a respondent finishes a conversational form
2.  Get Form Questions maps block IDs back to the labels the respondent actually read
3.  Answers are checked against the fields the destination record requires
4.  The CRM is queried for an existing contact on the submitted email address
5.  The contact is created or updated and the readable answers are attached to it
6.  The channel that owns the form receives the submission in question order
7.  Entries the destination refused are held for a person to correct or discard

## What This Integration Enables

Quill Forms is the choice teams make when they have decided the answers people give them are not going to live on somebody else's server. It is an open source conversational form builder running as a WordPress plugin on your own install, which means there is no vendor API host in this integration at all. FlowRunner authenticates to your site with a WordPress Application Password and talks to the plugin's own routes, so the same connector works whether the site sits in a data center you rent or one you own.

That ownership changes what an agent can safely do. FlowRunner agents read the form structure and resolve block IDs into labels, list and count entries, submit new entries through the plugin's real submission path so offline intake runs the same validation and notifications a web respondent triggers, re-drive submissions through a provider connection that was misconfigured when they first arrived, manage themes centrally, and draft an entire question tree from a plain language brief. What they do not do is write structure unattended, because Quill Forms replaces a form's blocks wholesale rather than merging them. That is exactly the boundary [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) exists to hold.

### Without FlowRunner

**Data lives on a vendor host**: Lead answers sit in a form vendor's database, and getting them out means paying per destination

**Block IDs, not labels**: Raw submissions arrive keyed by internal identifiers, so nobody can read them without the form open beside them

**Failed integrations stay quiet**: A provider connection that broke on Tuesday is discovered when someone asks where the leads went

### With FlowRunner

**The data stays on your site**: Entries are read from the WordPress install you already run, and routed anywhere without a per destination addon

**Submissions arrive readable**: Agents resolve the question tree first, so every downstream record carries human labels

**Broken connections announce themselves**: The plugin's own log table is read on a schedule and errors reach a person while the leads are still recoverable

## Use Case Scenarios

### Conversational lead capture that lands as a readable record

A respondent completes a lead form and On New Entry fires. The agent calls Get Form Questions to turn block IDs into the labels the respondent saw, then looks the person up in [HubSpot](https://flowrunner.ai/integrations/hubspot) and creates or updates the contact with the answers attached under their real names. A row goes to [Google Sheets](https://flowrunner.ai/integrations/google-sheets) for the weekly pipeline review and a message posts to [Slack](https://flowrunner.ai/integrations/slack) for the sales channel. Because the labels are resolved before anything is written, the CRM record reads like the conversation rather than like a database dump.

### Offline intake through the same pipeline as the web

Registrations collected by phone, at an event, or in a legacy system are pulled from [Airtable](https://flowrunner.ai/integrations/airtable) and pushed through Submit Form Entry one at a time. That operation posts to the plugin's real submission handler rather than a shortcut route, so each entry runs the form's validation, its conditional logic, its email notifications and its connected providers exactly as a web respondent would. A rejected submission comes back with its field errors and fails the step rather than passing quietly, which is what makes the batch trustworthy. The offline channel stops being a second, weaker pipeline.

### Noticing that a connection has been failing

On a schedule, the agent calls List Logs filtered to error and critical rows and Get System Status to read which provider addons are installed and at what version. When errors appear against a provider, it posts the failing entries and the addon version to the site owner, and offers Run Connection On Entries as the recovery path. The owner picks the entries to re-drive. Nobody has to ask respondents to submit again, and nobody finds out weeks later that a whole campaign's leads never reached the CRM.

## Human-in-Loop Highlight

Generate Form Structure will happily draft a question tree from a brief, and Update Form will happily write it. What makes that combination dangerous is that Quill Forms replaces structure wholesale: a partial blocks tree sent to Update Form deletes every question left out of it, and Delete Form goes further, permanently destroying the form's entries with no trash to recover them from. So a FlowRunner agent revising a live form drafts the tree, reads the current one with Get Form, runs Count Entries, and then stops. It posts: "This brief adds two qualifying questions and drops the budget field. The live form has collected entries under that field, and writing this tree removes it. Apply, or keep the budget question?" The marketing owner answers. Only then does Update Form run. The drafting was the agent's work. Deciding which questions stop existing was not.

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

32 actions

### Forms

7

-   **List Forms** Lists the forms published on the site. The starting point for any workflow that has to find a form by name rather than by ID.
-   **Get Form** Retrieves one form with its blocks, settings, messages, notifications and theme reference. Always read this before any structural write, because updates replace rather than merge.
-   **Get Form Questions** Walks the block tree, including questions nested inside group blocks, and reports every question with its label, type and parent. This is what turns a raw submission into something a person can read.
-   **Create Form** Creates a new form from a block structure. Used to stand up campaign forms programmatically instead of cloning by hand.
-   **Update Form** Updates a form's structure and settings. The write this page's human gate exists for, because the blocks tree it sends replaces the one already there.
-   **Delete Form** Deletes a form. A permanent delete also destroys every entry the form collected, with no trash to recover them from.
-   **Export Forms** Returns the raw export document for one or more form definitions. Used to snapshot a form before a change or to move a definition between sites. It carries definitions only, never entries.

### Entries

7

-   **List Entries** Lists submissions with their stored and rendered answers, keyed by block ID. Date filtering is whole days, so a range at a day boundary is widened rather than trimmed.
-   **Count Entries** Returns how many entries a form holds. Used to confirm what a destructive change is standing on before it runs.
-   **Get Entry** Retrieves a single entry. Quill Forms publishes no single entry route, so this searches the ordered listing rather than downloading the table.
-   **Update Entry** Sets the read and starred flags on an entry. Those are the only two fields the plugin actually applies, so this operation exposes exactly those.
-   **Delete Entry** Deletes one entry and reports honestly whether it was removed.
-   **Delete Entries** Deletes entries in bulk. The route acknowledges unconditionally, so the result names the IDs that were requested rather than the rows that were destroyed. Confirm with Count Entries when it matters.
-   **Submit Form Entry** Submits an entry through the plugin's real submission handler, so validation, conditional logic, notifications and connected providers all run. The way an offline channel joins the same pipeline as the web form.

### Themes

6

-   **List Themes** Lists the reusable visual themes defined on the site.
-   **Get Theme** Retrieves one theme's properties.
-   **Create Theme** Creates a theme. Used to publish a house style once rather than restyling each form.
-   **Update Theme** Updates a theme's properties. Like form structure, a theme's properties are replaced rather than merged.
-   **Delete Theme** Deletes a theme. Forms using it fall back to the plugin's default appearance rather than breaking.
-   **Set Form Theme** Points a form at a theme by ID. This exists as its own operation because writing the theme field by hand is easy to get wrong and fails silently.

### Integrations

5

-   **Get Form Connections** Reads the provider connections configured on a form.
-   **Update Form Connections** Writes a form's provider connections. Used to wire a newly created form up to its destinations in the same flow that created it.
-   **Get Addon Settings** Reads the account level settings of one provider addon.
-   **List Addon Accounts** Lists the connected accounts a provider addon holds, so a connection can be pointed at the right one.
-   **Run Connection On Entries** Re-drives selected entries through a provider connection. The recovery path for submissions received while an integration was broken. Read the per entry results rather than the top level success flag.

### Site

6

-   **Get Plugin Settings** Reads the plugin's site wide settings.
-   **Update Plugin Settings** Writes the plugin's site wide settings. Site wide by definition, so it changes behavior for every form at once.
-   **Get System Status** Reports the install's health and the addons present with their versions. Used to explain why a provider route is missing before anyone calls it a bug.
-   **List Logs** Reads the plugin's own log table, filterable by level. The scheduled read behind failure alerting.
-   **Delete Log Entry** Removes a single log row.
-   **Clear All Logs** Empties the log table.

### AI

1

-   **Generate Form Structure** Drafts a complete question tree from a plain language brief using the AI builder in the free plugin. Produces a proposal, not a published change.

## Triggers

1 triggers

### Event Triggers

1

-   **On New Entry** Fires when a new submission arrives on the watched form. It polls the entries listing and tracks the highest entry ID it has already reported, because the plugin's update timestamp is copied from the creation date and cannot be used for change detection. The first cycle records a baseline and emits nothing, so enabling it on an established form does not replay its history.

## Frequently Asked Questions

### What can FlowRunner do with Quill Forms?

FlowRunner agents can run List Forms, Get Form, and Get Form Questions in Quill Forms, plus 29 more actions.

### Does connecting Quill Forms to FlowRunner require OAuth?

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

### Can Quill Forms trigger a FlowRunner workflow automatically?

Yes. Quill Forms supports 1 trigger that can start a FlowRunner workflow automatically.

**Work at Quill Forms?** This integration exposes Quill Forms 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/quill-forms. Site index: https://flowrunner.ai/llms.txt
