GriffinForms – Contact Form Builder & Multi-Step Forms

Description

GriffinForms is a contact form plugin and WordPress form builder built for structured, multi-step forms. It uses a drag and drop layout system (pages, rows, and columns), supports conditional logic, and stores submissions on your site so your data stays under your control.

If you need a WordPress form plugin that can handle everything from a simple contact form to a multi step form workflow, GriffinForms focuses on clean layouts, predictable form behavior, and practical admin tools.

For teams that need stronger oversight, GriffinForms includes compliance-ready controls, submission metadata, and audit-friendly logging. You can review submission context (version, metadata events), download compliance data, and use builder warnings to catch common gaps before publish.

Quick Start

  1. Create a form in GriffinForms Forms.
  2. Build your layout with pages, rows, and columns, then add fields.
  3. Publish with the shortcode [griffinforms_form id="123"].

Key Features

  • Drag and drop form builder: build structured forms with pages, rows, columns, and multiple field types.
  • Multi-page forms: add steps for longer workflows with clear page navigation.
  • Conditional logic: show or hide fields and sections based on user input (conditional fields).
  • File upload fields: collect documents or screenshots when your workflow needs attachments.
  • Submissions in WordPress: view entries in the admin and keep data in your database.
  • Themes: apply form themes so your contact form matches your site design.
  • Payments (Stripe): collect payments when enabled and configured.
  • CAPTCHA options: support reCAPTCHA, Cloudflare Turnstile, or hCaptcha.
  • Email delivery: send notifications using WordPress mail or configured providers like Custom SMTP or SendGrid.

Use Cases

  • Contact form pages and support intake
  • Registration and request forms
  • Multi step form wordpress workflows with multiple pages
  • File upload forms for applications or support tickets
  • Payment forms (Stripe forms) for donations or simple orders

Layout-first builder

GriffinForms treats layout as a core part of form building. Use pages to split long flows, rows to group content, and columns to control alignment. This structure makes complex forms easier to maintain and helps users complete longer submissions without fatigue.

Conditional logic for smarter forms

Conditional logic lets you build adaptive forms that respond to user input. Use it to show or hide fields, simplify longer questionnaires, or guide users through the right path based on their selections.

Submissions and data

Submissions are stored in your WordPress database. You can review entries from the admin area, and logs are available for troubleshooting when enabled.

Payments when you need them

If you enable Stripe, you can build payment forms that collect payments as part of a submission. This is useful for donations, paid applications, and simple order-style forms.

Spam protection

Choose a CAPTCHA provider that fits your site. GriffinForms supports Google reCAPTCHA, Cloudflare Turnstile, and hCaptcha so you can add spam protection without locking every form behind a heavy challenge.

Email notifications

Send admin notifications or autoresponders using WordPress mail or a configured provider such as Custom SMTP or SendGrid.

Autoresponders (email users after submission)

Enable an autoresponder to send a confirmation email to the person who submitted the form. You can include their answers in the message using merge tags so the email is personalized and useful.

Admin notifications with form data

Send submission alerts to one or more admin emails and include key fields (name, email, selections) using merge tags. This is helpful for support, sales, and intake workflows where you need details right away.

Products in forms

Add products or services to a form using the Payment field and let users select quantities. This turns a contact form into a simple order or donation form when Stripe is enabled.

Turn a form into a template

If you need the same form on multiple sites, export it as JSON and import it elsewhere. You can also import a form directly as a template so it stays in your template library instead of being created as a new form. This is a quick way to reuse onboarding, registration, or request forms without rebuilding them.

Themes and styling

Apply presets like a dark form theme or create your own so forms match your brand.

Privacy and external services

By default, GriffinForms stores form data on your site. External services are only used when you enable them (payments, CAPTCHA, or email delivery). See the External Services section below for details.

External Services

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

Learn more

License

GriffinForms is open source and licensed under GPLv2 or later.

Screenshots

  • Drag-and-drop WordPress form builder with pages, rows, columns, and fields
  • Frontend form view with the default theme
  • Frontend themed form (light preset) applied
  • Editing the themed form (same theme as screenshot 3)
  • Frontend themed form (dark preset) applied
  • Live editing of the dark themed form (admin builder)
  • Frontend form with Product/Payment field
  • Frontend Review & Pay step for Stripe payments
  • Frontend file upload field with queued files
  • Theme selection modal with presets
  • Edit theme view (Theme Designer controls)
  • Conditional Logic modal (rules list view)
  • Conditional Logic modal (edit rule view)
  • Dragging a field pill to create a new field
  • Dragging a row to sort layout structure
  • Resizing a column to adjust layout
  • Text field edit view with validation settings
  • Checkbox field edit view + frontend preview (creating a multi-column checkbox grid)
  • Form creation modal with template selection
  • Admin Submissions list view

Blocks

This plugin provides 1 block.

  • GriffinForms Form Embed a GriffinForms form and see a quick preview in the block editor.

Installation

  1. Upload the plugin to the /wp-content/plugins/griffinforms-form-builder directory or install it via the WordPress plugin screen.
  2. Activate it through the Plugins screen.
  3. Go to the GriffinForms menu in the admin sidebar to start building forms.

FAQ

How do I add a contact form to WordPress?

Create a form in GriffinForms, then embed it with the shortcode [griffinforms_form id="123"] in any post or page.

Can I build multi-step (multi-page) forms?

Yes. Use pages in the builder to create multi-step forms with navigation.

Does GriffinForms support conditional logic?

Yes. You can show or hide conditional fields based on user input.

Can I collect file uploads?

Yes. Add a File Upload field to accept documents or media with a submission.

How do I reduce spam (reCAPTCHA/Turnstile/hCaptcha)?

Choose a CAPTCHA provider (reCAPTCHA, Cloudflare Turnstile, or hCaptcha) and enable it in the integrations settings.

Where are submissions stored?

Submissions are stored in your WordPress database. File uploads are stored in the WordPress uploads directory.

Does it work with Gutenberg or page builders?

Yes. Use the shortcode in the block editor or your page builder’s shortcode/widget block.

Can I send emails via SMTP/SendGrid/Mailgun?

Yes. Configure Custom SMTP, SendGrid, or Mailgun for email delivery.

Do I need Stripe to use payments?

Stripe is required for payment processing. If you do not enable Stripe, you can still use GriffinForms for non-payment forms.

Can I create payment forms with Stripe?

Yes. Stripe forms are supported when payments are enabled and configured.

Where can I find documentation?

See the docs at GriffinForms Docs.

Is GriffinForms free?

Yes. The core plugin provides the full feature set with no paid tiers.

Reviews

جنوری 12, 2026
GriffinForms is a delightfully lightweight yet surprisingly capable form builder. It feels refreshingly intuitive — you can spin up clean, professional forms in minutes without wrestling with cluttered menus or bloated settings. The interface is smooth, the customization options are thoughtful, and everything just works the way you hope it will. A lovely choice for anyone who wants simple, elegant form creation without the fuss.
جنوری 12, 2026
I have used 3 different form plugins within last year, and always ran into some sort of issue. I am not technically very sound, and wanted something that doesn’t require all the fuzz and yet offer all the features. And boy, did GriffinForms surprised me or what. I chose it on a whim really, not expecting much. But more I use it, more I believe this might be a next big thing in forms plugin. The developers have launched some truly great updates as well and I can see how far they have come within a short space of few months. Really happy to be one early adopter- keep up the good work guys!
جُون 10, 2025
Efficient and free plugin that is useful for site owners and developers. The interface is clean and easy to navigate, even for non-tech users. It handles the tasks like contact forms or signups without issues. Great for small sites that need something that works without the bloat. Setup is quick and it runs smooth.
Read all 3 reviews

Contributors & Developers

“GriffinForms – Contact Form Builder & Multi-Step Forms” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.3.2.0 – 2026-02-14

  • Fix: Added themed/no-theme validation parity so invalid controls are clearly highlighted in themed frontend forms.
  • Fix: Removed leftover frontend theme asset debug error_log() output.
  • Fix: Prevented Undefined array key "email_domain" warning in excluded email domain validation messaging.
  • Fix: Corrected relation sync on page delete so formpages stays consistent and form list page counts remain accurate.
  • Fix: Stabilized builder form-tree toggle behavior and resolved jerky right-sidebar accordion close motion.
  • Fix: Improved no-theme responsive behavior in narrow containers (row/action button stacking) and aligned Gutenberg no-theme preview button styling with frontend defaults.

2.3.1.0 – 2026-02-08

  • Fix: Restored a clear phone country dropdown caret across frontend, form builder, and Gutenberg preview renderers.
  • Improvement: Phone country select sizing and compact behavior refined to avoid overlap and unbalanced wide-field layouts.
  • Fix: Phone input-group border sync now preserves asymmetric theme border styles (per-side width/style/color) across renderers.
  • Improvement: Message editor now preserves allowlisted HTML better between Code/Visual modes.
  • Improvement: Message save sanitization now uses a dedicated allowlist policy for email-safe HTML (including heading tags).
  • Fix: Removed invalid frontend theme stylesheet dependency causing WP_Styles::add notices on newer WordPress versions.

2.3.0.0 – 2026-02-06

  • Feature: Compliance profiles (Standard, GDPR, HIPAA‑ready) with per‑form inherit/custom overrides.
  • Feature: Submission metadata timeline with page + payment events and form version context.
  • Feature: Builder warnings pipeline with status bar counts and overlays.
  • Feature: WordPress Tools export/erase integration for GriffinForms data.
  • Improvement: Compliance downloads now include full layout snapshots for traceability.
  • Improvement: GDPR profile masks IPs and stores summarized user agent details.

2.2.0.0 – 2026-02-01

  • Feature: Form builder right sidebar now includes Form and Element tabs with auto-switching.
  • Feature: Form tab adds Summary, Structure, Recent Logs, and Recent Submissions widgets.
  • Improvement: Right sidebar structure tree visuals refined (chips, counts, row bars) and accordion controls added.
  • Improvement: Form summary now links to submissions list and theme modal.

2.1.9.1 – 2026-01-30

  • Improvement: Auto-select phone country based on browser locale when no selection is set (phone + address).
  • Improvement: Phone country dropdown width now adapts to display mode (flag + code + name vs code-only).
  • Fix: Divider visibility between phone dropdown and number input in the form builder.
  • Fix: Narrow layouts no longer push the phone dropdown/input onto separate rows.