Happyforms
FormsHappyforms 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.
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
With FlowRunner
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 Capabilities
9 actionsSite 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 triggersEvent 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.