

Drag-and-drop form builder with rows, columns, and fields — no shortcodes required
GriffinForms is a WordPress form builder for multi-step forms, user registration, uploads, payments, and forms that need more than a single message field. It gives you stronger control over how the form looks, behaves, and continues after submission.
It is a better fit for registration forms, applications, requests, uploads, and payment collection than for a simple one-page contact form. If you need forms that do real work, GriffinForms is built for that next step.
GriffinForms treats layout as a core part of form building. The drag-and-drop builder uses pages, rows, columns, sidebar controls, and reusable fields to make complex forms easier to shape and maintain. Then you can layer in conditions, uploads, notifications, and payments where needed. This makes longer forms easier to manage and easier for users to complete.
Reusable fields also help solve a common admin problem: teams should not need to recreate the same Name, Email, Phone, or Address field across every new form. Common fields can be managed from one place, which helps keep repeated workflows faster to build and more consistent over time.
File uploads are not limited to a basic attachment field. GriffinForms supports multi-file uploads per field and is designed for workflows where uploads matter, such as applications, support requests, and document collection. For example, an application form can collect resumes, ID documents, certificates, and supporting images in one submission instead of forcing users to send files separately later. You can control allowed file types, per-file and total upload size limits, max file counts, image-specific constraints, and storage behavior, then manage uploaded files from WordPress.
If you enable Stripe, GriffinForms can handle payment collection inside the form flow. This is useful for donations, simple product or service requests, paid applications, and other workflows where payment is part of submission instead of a separate checkout. GriffinForms also supports a fuller review-and-pay pattern with product-style selections, product images, and cart-style summaries. For pending payments, resume links can bring users back so they can continue from where they left off.
Conditional logic in GriffinForms goes beyond a simple show-or-hide toggle. You can use field, row, and form-level rules to change labels and values, control headings and visibility, swap success messages, trigger redirects, and adjust submit-button behavior.
Conditions also go beyond basic text matching. GriffinForms supports checks across field values, counts, password strength, browser time, address parts, and payment-specific conditions such as product, gateway, totals, and counts. That makes it useful for smarter routing, cleaner payment flows, and forms that react as the submission takes shape.
For example, you can show a payment step only when a paid option is selected, then change the success message or redirect users to a different next step after submission.
Forms should not look disconnected from the rest of your site. GriffinForms includes built-in themes, but the theme system goes further than picking a preset. You can create new themes from scratch or modify existing ones with control over typography, layout, inputs, buttons, and states such as hover, focus, and active. Dark themes also look especially strong in GriffinForms, which helps when you want forms to feel more polished and deliberate instead of settling for one generic form look.
Submissions are stored in your WordPress database, but the admin experience goes further than a simple entry list. GriffinForms includes a richer submission view with metadata, payment context where applicable, submission-specific logs, and event timelines so you can follow what happened to a submission and where it changed.
Native logging adds another layer of visibility for production sites. Timeline-style logs, searchable categories, job visibility, retention settings, and settings history make it easier to troubleshoot failed steps, trace changes, and understand what happened over time.
GriffinForms also supports partial submissions, which means incomplete multi-step submissions can still remain visible in the admin area when that workflow matters.
GriffinForms includes a flexible user registration workflow for registration forms that need to create or manage WordPress users after submission. You can build a simple WordPress registration form for one account, or use an iterable email field for multi-user registration from a single form submission. GriffinForms lets you choose whether a registration form should use a mapped password or send the native WordPress password setup link, assign the WordPress user role for the account being created, and map optional profile data such as username, first name, last name, and profile image when the form collects it.
This user registration system is built for real workflows, not just one fixed registration form pattern. You can decide whether user registration happens immediately, waits for admin activation, or stays in manual review, and you can control how duplicate-account cases are handled. GriffinForms also gives registration forms stronger admin visibility through native logging, submission-side account activity, account-action follow-up, and builder checks that help catch missing mappings, risky password choices, and iterable registration-form edge cases before the form goes live.
Helpful docs:
– Registration workflow modes
– Submission Accounts Accordion
– Password strategies
GriffinForms supports multiple CAPTCHA providers, including reCAPTCHA, Cloudflare Turnstile, and hCaptcha. It also includes native rate limiting and backend anti-spam checks, so spam protection does not depend on a single layer. That protection applies across the submission flow, including workflows that use file uploads.
GriffinForms can send admin notifications and autoresponders through WordPress mail or configured delivery providers such as Custom SMTP, SendGrid, and Mailgun. That gives you more flexibility when you need more dependable delivery for production forms.
Helpful docs:
– Email settings
– Managing messages
– Mail merge placeholders
GriffinForms includes a reusable message system for admin alerts and autoresponders. You can build messages once, reuse them across forms, and insert merge variables so subjects and message bodies can pull values from the submission at send time. That makes it easier to maintain more personalized and more consistent email workflows without rewriting the same message for every form.
GriffinForms also supports mapping autoresponders to different email fields inside the same form. For example, a staff member can submit a form on behalf of a client, student, or employee, while the correct confirmation message is still sent to the email field for that actual person.
Admin alerts can also be mapped per recipient, so different staff members or teams can receive different messages for the same submission. For example, one alert can go to admissions, another to finance, and another to operations when each team needs different context.
GriffinForms includes a guided onboarding flow to help new users create and publish a useful first form more quickly. That makes it easier to start with a working form instead of a blank builder and then expand into more advanced flows later. Starter forms and reusable templates also help teams move faster when they need to repeat similar workflows across forms or sites.
Griffin Assist lets you build and refine forms using plain-English prompts directly inside the GriffinForms builder. Describe the form you need, and Griffin Assist drafts the structure for you. From there you keep full control — drag, rearrange, and fine-tune using the same builder you already know.
This is not a separate AI tool that hands off a static export. Griffin Assist works inside your live draft, so changes appear immediately in the builder as you prompt them.
Drafting a new form: type a prompt in the Create Form modal and Griffin Assist generates a starting structure with pages, rows, and fields. The draft opens in the builder ready for you to refine. When you are happy with it, publish it to make it live. If you want to start over, discard it — your other forms are never affected.
Editing an existing form: open any form in AI draft mode using the AI Edit action. Griffin Assist targets only the elements you ask about, so editing a field label or adding a new page does not rebuild the whole form or disturb fields and logic you already configured.
Chat Mode: toggle Chat Mode on to ask questions, explore ideas, and get suggestions before committing to a change. Griffin Assist returns clickable action buttons so you can review a suggestion and apply it with one click. Structural suggestions such as adding a new section, page, or row appear alongside copy advice.
Suggestion pills: each element type in the builder has a set of context-aware suggestion pills — one-tap actions tailored to what is currently selected. Improving a field label, polishing a description, adding a file upload hint, or refining dropdown options all have their own targeted pills. Translation is also available as a one-tap action that rewrites all labels, descriptions, options, and button text into your target language.
Griffin Assist requires an active AI provider connection. You can connect OpenAI, Anthropic, or another supported provider from the AI settings tab. A data-sharing consent step is required before Griffin Assist sends any form data to an external provider.
GriffinForms works with Gutenberg and also includes a stronger technical foundation for advanced evaluators, including a documented REST API surface, capability-aware access control, device management for protected companion routes, and webhook-ready architecture. Multi-step submissions use AJAX handling with server-side validation and anti-spam checks, which helps longer forms feel more responsive while still enforcing validation on the backend. Post-submission actions such as emails and other follow-up work can also be processed in the background, which helps more complex workflows stay smoother after a form is submitted.
These are not the first thing most users need, but they help show GriffinForms is built for more than a simple one-page contact form.
Helpful docs:
– Embedding forms
– Multi-page forms
– Conditional logic
Form submissions stay in WordPress by default. External services are only involved when you enable them, such as payments, CAPTCHA, or email delivery providers. See the External Services section below for details.
GriffinForms also includes per-form compliance profiles (Standard, GDPR, and HIPAA-ready) with submission hashing, layout snapshots, configurable retention policies, and WordPress personal data export and erase integration when those workflows matter.
GriffinForms can connect to these third-party services when enabled:
– Google reCAPTCHA (spam protection): Terms and Privacy
– Stripe (payments): Terms and Privacy
– Cloudflare Turnstile (spam protection): Terms and Privacy
– hCaptcha (spam protection): Terms and Privacy
– SendGrid (email delivery): Terms and Privacy
– Mailgun (email delivery): Terms and Privacy
GriffinForms is open source and licensed under GPLv2 or later.