---
title: "Deftform Integration"
description: "Deftform is a lightweight online form builder positioned against Typeform and Jotform. Agents enumerate forms and fields, pull submissions with their answers, record submissions from a custom front end, render a submission to PDF, and adjust form settings and notifications without opening the editor."
url: https://flowrunner.ai/integrations/deftform
date_modified: 2026-09-04T19:20:34-07:00
---

# Deftform

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

Deftform is a lightweight online form builder positioned against Typeform and Jotform. Agents enumerate forms and fields, pull submissions with their answers, record submissions from a custom front end, render a submission to PDF, and adjust form settings and notifications without opening the editor.

1 trigger · 16 actions · API key · available

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

1.  On New Response fires when a completed submission lands on a campaign form
2.  Get Form Response returns the answers keyed by field UUID
3.  Get Form Fields maps each UUID to its label, so a renamed question does not break the mapping
4.  Download Response PDF renders the submission and stores the file in FlowRunner file storage
5.  The lead and its PDF reach the team that owns the form
6.  Count Form Responses compares the running total against the campaign target
7.  The campaign owner decides whether the form closes now that the target is met

## What This Integration Enables

Deftform draws its line clearly and does not apologize for it. Forms are designed in the Deftform editor, and the API exists so the collected data can leave and so a short list of settings can be driven from outside. There is no create-a-form route in the vendor's published surface and nothing here deletes a form or a submission. That makes this a different kind of [connector](https://flowrunner.ai/concepts/connectors) from a full form platform API: it is a data exit and a remote control, and the automation worth building on it is about what happens to a response after it arrives and what state the form is in when the next visitor opens it.

FlowRunner agents enumerate forms and their field definitions, pull submissions with their answers, count them without carrying the answers back, render a submission to PDF into file storage, record a submission from a custom front end, and change a form's general, email, search and integration settings. Two details shape how flows are built. Answers are keyed by field UUID rather than label, and a label can be renamed at any time, so mapping on the UUID is what makes a flow survive an edit. And a submission created through Add Form Response deliberately sends no email to anyone, so a flow that owes the respondent a confirmation has to send it itself. The small surface also decides where [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) belongs here: nothing on this connector destroys data, so the judgment call is about the form's public state rather than about a deletion.

### Without FlowRunner

**Data stops at the form**: Submissions sit in Deftform until somebody remembers to export them

**Closing a form is an errand**: A campaign ends and a person has to go into the editor to turn the form off

**Field labels as the join key**: A question gets reworded and every downstream mapping quietly stops matching

### With FlowRunner

**Data leaves as it arrives**: Each completed submission is read, mapped and delivered in the same run it lands

**Closing follows the condition**: The count, the end date or an upstream record decides, and the closed message is set from the flow

**UUIDs as the join key**: Answers are mapped on identifiers that survive an edit to the form's wording

## Use Case Scenarios

### The lead is filed before anyone opens the notification

On New Response fires. The agent reads the submission, resolves each answer against Get Form Fields so the values land in the right properties, and creates or updates the contact in [HubSpot](https://flowrunner.ai/integrations/hubspot). A summary posts to [Slack](https://flowrunner.ai/integrations/slack) for the team that owns the form, and the row is appended to [Google Sheets](https://flowrunner.ai/integrations/google-sheets) for the weekly campaign report. Because the trigger polls the form's submissions and remembers what it has already emitted, a restated submission does not produce a duplicate contact.

### An application becomes a reviewable document

A grant or job application form receives a completed response. The agent calls Download Response PDF, which renders the same summary Deftform attaches to its own notification emails, and stores it in FlowRunner file storage. The file goes to the reviewer over [Gmail](https://flowrunner.ai/integrations/gmail-service) with the applicant's key answers in the body, and if the review ends in an offer the same file is attached to the envelope in [DocuSign](https://flowrunner.ai/integrations/docusign). The applicant's answers and the document a human reads are the same artifact.

### A custom front end that still reports into one place

A checkout on the marketing site collects the order and the onboarding details in its own interface. When the payment succeeds in [Stripe](https://flowrunner.ai/integrations/stripe), the agent calls Add Form Response against the onboarding form, passing the answers as a Data object keyed by field UUID, so the whole intake history stays in one searchable place regardless of which front end captured it. Since submissions added this way send no email at all, the flow sends the confirmation itself, which means the wording is under the campaign's control rather than the form's.

## Human-in-Loop Highlight

Update Form Settings with Is Closed switched on is the one write here that changes what a stranger sees. Every visitor who arrives after it reads the closed message instead of the form, and while a later call can reopen it, nothing brings back the people who bounced in between. What makes it a decision rather than a rule is that both inputs are soft. Deftform publishes no count route, so Count Form Responses derives the figure from a submissions call and splits it into complete and incomplete, which means a form that tracks partial entries can look full or look short depending on which half you count. And when the form was resolved by title rather than by its short code, Find Form By Name returns the first match along with how many matched, so an ambiguous name can point a settings write at the wrong form entirely.

So the agent assembles both and stops: "Registration form Spring Workshop reports 118 complete and 26 incomplete submissions against a target of 120. Find Form By Name matched 2 forms on that title. Close the form now on the complete count, wait for 120 complete, or confirm which form you mean first?" The campaign owner answers. Counting, matching and drafting the closed message were the agent's work. Turning the public form off 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

16 actions

### Workspace

1

-   **Get Workspace** Reads the workspace the access token belongs to, including its branding, default after submission behavior, timezone and members. A token is scoped to one workspace, so this also confirms which workspace a connection points at.

### Forms

4

-   **Get Forms** Lists every form in the workspace with its field definitions. The fastest way to discover the short form codes the rest of this connector needs.
-   **Get Form** Returns a single form with its fields and settings, raising a clear error rather than an empty result when the code matches nothing.
-   **Find Form By Name** Looks a form up by title instead of short code, for flows where the name arrives from a message or a sheet. Returns the first match and how many matched, so a flow can detect an ambiguous name.
-   **Get Form Fields** Reads a form's field definitions with each field's UUID, label, type and optional custom key. The UUIDs are the stable identifiers to map on, since labels can be renamed at any time.

### Form Settings

4

-   **Update Form Settings** Updates a form's general settings, including its name, whether it is closed and what a visitor sees when it is, the response limit, button labels, captcha and after submission behavior. Only the values supplied are sent.
-   **Update Form Email Settings** Updates the admin notification and respondent confirmation emails, including whether either carries the submission PDF. These govern submissions made through the form itself.
-   **Update Form SEO Settings** Updates the title and description used when the form's page is shared or indexed, and whether crawlers may index it at all. Useful when a form is published as a standalone landing page.
-   **Update Form Integrations** Turns a form's built in Slack, Discord, HubSpot and Google Sheets integrations on or off. The practical way to mute or resume a noisy form without opening the editor.

### Responses

6

-   **Get Form Responses** Returns the submissions collected by one form with their answers, submission numbers and referrers, with a filter for complete or incomplete entries.
-   **Get Form Response** Returns one submission by UUID, raising a clear error when the identifier is not present in that form rather than looking like an empty result.
-   **Count Form Responses** Counts a form's submissions and splits the total into complete and incomplete, without carrying the answers back. A cheap gate before an expensive branch.
-   **Add Form Response** Records a submission against a form from outside Deftform, which is what keeps a custom front end while still using Deftform to store and export the answers. Submissions added this way send no email.
-   **Get Response PDF Link** Asks Deftform to render a submission as a PDF and returns the link, without pulling the file itself. Use it when a link is all a later step needs.
-   **Download Response PDF** Renders a submission as a PDF, downloads it and stores it in FlowRunner file storage, ready to attach to an email or hand to a signature service.

### Utilities

1

-   **Make API Call** Sends a request to any Deftform API route with the workspace token already applied, for endpoints this connector does not name.

## Triggers

1 triggers

### Event Triggers

1

-   **On New Response** Fires when a form receives a new submission, emitting the whole record with its answers. Deftform publishes no webhook management API, so this trigger polls the form's submissions and remembers what it has already emitted, which means a submission is delivered once even when Deftform restates it. The first cycle records the existing submissions without firing, so a backlog is never replayed, and by default only completed submissions fire.

## Frequently Asked Questions

### What can FlowRunner do with Deftform?

FlowRunner agents can run Get Workspace, Get Forms, and Get Form in Deftform, plus 13 more actions.

### Does connecting Deftform to FlowRunner require OAuth?

No. Deftform connects to FlowRunner with an API key, no OAuth flow required.

### Can Deftform trigger a FlowRunner workflow automatically?

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

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