FlowRunner
PricingContact
Theme
Start Free

Happyforms

Forms

Happyforms is a self-hosted WordPress form builder from The Theme Foundry. Agents submit responses to a form the way a browser does, read a form's field structure off the rendered page, find which pages embed which forms, and read and delete stored responses through the WordPress REST API.

1 trigger 9 actions Basic auth available
Happyforms website Platform Documentation Capability data verified 2026-08-26
On New Response fires for a submission stored on the WordPress site
Get Response returns the raw answers and the form id held in post meta
Agent resolves which form the response came from and classifies the intent
Agent opens a ticket or creates the contact in the system that owns that intent
A summary posts to the team channel with the answers inline
The owner reads the responses that did not classify cleanly and routes them

What This Integration Enables

Most teams who run Happyforms chose it for a reason worth respecting: it is a plugin, not a hosted service, so the submissions live on their own WordPress install and no vendor holds them. That choice usually comes with a cost, because a plugin has no API to automate against. Happyforms registers no REST routes of its own.

This connector works around that instead of asking you to give the choice up. It reaches your forms two ways. As a visitor, it fetches a public page and reads the rendered form's field structure straight off the markup, and it submits responses the way a browser does, so the site runs its own validation, sends its own notification and confirmation emails, and fires its own integrations exactly as if a person had typed. As an administrator, it reads and deletes stored responses through the WordPress core REST API, using a username and application password. Two prerequisites are honest to state up front: response storage is part of the paid Happyforms upgrade, and the response post type has to be opted into the WordPress REST API before anything can read it. Check Site Connection exists so a flow can tell you that in one call rather than through a confusing 404.

Once the site is reachable, agents route responses, keep an inventory of every embedded form, and handle data retention work. The retention work is where FlowRunner's human-in-the-loop discipline earns its keep, because a deletion aimed at the wrong post is the one mistake this connector can make that a person cannot walk back.

Without FlowRunner

Data in one place, work in another Responses sit in the WordPress admin and get copied into other tools by hand
Silent form drift A theme update or an edited form changes a field, and nothing downstream notices until the data is already wrong
Erasure handled by memory Someone searches the admin, guesses at the matches, and hopes the right records went

With FlowRunner

Responses leave the site as events Each stored response starts a flow that routes it to the CRM, the helpdesk or the channel that owns it
Form inventory kept current A scheduled sweep reads every embedded form's field structure and flags the ones that changed shape
Erasure with a named match The agent gathers the candidate records and the evidence, and a person confirms both the match and the deletion mode

Use Case Scenarios

  • Every response routed by what it actually says

    On New Response fires when a submission is stored. The agent calls Get Response in edit context to read the raw, unrendered answers and the form id from meta, then classifies the message: a support request, a quote request, a job application. Support requests open a ticket in Zendesk with the answers as the description. Quote requests create or update the contact in HubSpot and post to the sales channel in Slack. Anything the classifier is unsure about goes to a triage channel instead of being forced into a bucket, because a misrouted job application is worse than a slow one.

  • An inbound lead posted into the site's own chain

    A lead arrives from somewhere else entirely: a chat conversation, a parsed email, a partner feed. Rather than writing it into a database and skipping the site, the agent calls Describe Form to learn the target form's field names and choice options, maps the lead onto them, and calls Submit Form Response. Happyforms validates it, sends the confirmation email, and fires whatever integrations the site owner already configured. Nobody has to rebuild that chain in the flow, and the marketing team's own reporting keeps counting the submission the way it always did.

  • A form inventory that maintains itself

    On a schedule, the agent runs Find Form Embeds across the site's posts and pages to learn which pages render which forms, then calls Describe Form on each hit and stores the field structure in Google Sheets. The following week it compares. A required field that vanished, a choice list that gained an option, a form that appeared on a page nobody mentioned: all of it surfaces as a diff rather than as a support ticket three weeks later about missing data.

Human-in-Loop Highlight

Delete Response has a Permanently Delete flag, and that flag is the whole decision. Left off, WordPress moves the response to the trash, where it stays recoverable until the site's retention expires. Turned on, the post is gone with no way back, and the post content is the only place the answers live. So when an erasure request arrives, the agent does the searching and stops. It runs List Responses over the requester's details, pulls each candidate with Get Response, and posts the comparison to the privacy owner: "Three stored responses match this email address. Two are contact form submissions from March. The third is a job application that also names a second person in a free text field. Delete all three permanently, trash them so they stay recoverable, or exclude the third?" The owner answers. Then the agent deletes, in the mode it was told, and writes the outcome back onto the request. The search was machine work. Choosing what gets destroyed was not.

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

9 actions

Site Readiness

1
  • Check Site Connection Reads the WordPress REST API index on the connected site and reports what this connector can actually reach: the site name, the registered namespaces, and two readiness flags for the form and response post types. Run it first when a Forms or Responses operation returns a 404.

Form Discovery

4
  • Describe Form Fetches a public page and reads back the structure of every Happyforms form rendered on it, including field names, types and choice options. Needs no credentials and no REST exposure, which makes it the reliable way to learn a form's shape before mapping data onto it.
  • Find Form Embeds Searches the site's posts and pages and reports which of them render a Happyforms form, and which form ids appear on each. The basis of a scheduled inventory sweep.
  • List Forms Lists the forms stored on the site, with free text search, status filtering, ordering and pagination. Reads the WordPress post type behind Happyforms, since the plugin exposes no route of its own.
  • Get Form Fetches a single form by its numeric id, returning the post record and, where the site exposes the plugin's meta, the stored field definitions.

Submitting

1
  • Submit Form Response Submits a response exactly the way a visitor's browser does, so the site validates it, sends its notification and confirmation emails, fires its integrations, and stores the response. The way to push a lead captured elsewhere into the site's own chain without rebuilding that chain.

Responses

3
  • List Responses Lists stored responses newest first, with date range filtering, free text search and pagination. The search step behind routing, reporting and erasure work.
  • Get Response Fetches a single stored response by id. Ask for edit context when the flow needs the raw, unrendered answers and the meta rather than the display version.
  • Delete Response Deletes a stored response, either to the WordPress trash where it stays recoverable, or permanently with no way back. The operation this page's human gate exists for.

Triggers

1 triggers

Event Triggers

1
  • On New Response Fires when a new response is stored on the connected site, optionally narrowed to a single form. Happyforms publishes no webhooks, so this polls the WordPress route for the response post type and reports records it has not seen. The first cycle records a baseline only, so responses that already existed when the trigger was enabled do not replay.

Frequently Asked Questions

What can FlowRunner do with Happyforms?

FlowRunner agents can run Check Site Connection, Describe Form, and Find Form Embeds in Happyforms, plus 6 more actions.

Does connecting Happyforms to FlowRunner require OAuth?

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

Can Happyforms trigger a FlowRunner workflow automatically?

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

Start building with Happyforms

Free plan, no card required. Connect in minutes.