Description
FillKite is a form builder that stays out of your way. Build a contact, quote, booking or survey form in a couple of minutes, put it on any page, and read every lead in an inbox made for following up. The form adds about 11 KB (gzipped) to the page, and only on pages that have a form.
A builder that feels like a design tool
- The builder opens full screen: fields on the left, your form in the middle, the field’s settings on the right.
- 29 field types: text, paragraph, email, phone, number, website, date, time, name, address, rating, dropdown, multi-select, country, radio buttons, checkboxes, image choices, slider, Net Promoter Score, Likert scale, checkbox grid, ranking, colour, formatted text, consent, heading, divider, HTML block and hidden value.
- Fields can be full, ¾, ⅔, ½, ⅓ or ¼ wide, with help text, a starting value, read-only fields, sizes and your own CSS classes.
- Undo and redo, keyboard shortcuts, and a live preview that uses your site’s real form styles on desktop and mobile.
- A built-in accessibility check flags missing labels, placeholders used as labels, unclear messages and hard-to-read colours while you build.
- A visual designer per form: button, text, field and border colours, rounded corners, spacing and a full-width button, with a contrast warning. No CSS needed.
- Start from a template or from scratch.
Logic you can read
Show or hide fields with rules written as sentences: If Budget is greater than 500, show Phone. No code and no maze of dropdowns. The same rules run in the visitor’s browser and again on your server, so hidden fields are never validated or stored.
A lead inbox, not a spreadsheet
- Every entry lands in an inbox with statuses: New, Read, Replied, Won and Spam.
- Lead quality: each new entry is marked High, Medium or Low quality (a real mailbox, a company or free address, a duplicate, the spam score, answers filled in), and the inbox can show the best leads first.
- Reply timer: see how long each lead has been waiting, your average first-reply time, and get a reminder when a lead waits too long.
- Star the ones that matter, add private notes, edit answers, and search everything.
- Filter by form, date and lead quality, act on many entries at once, and export to CSV, Excel or JSON.
- Download or print any entry as a PDF.
- Duplicate submissions from the same email are flagged, never lost.
- The forms list shows views, entries and conversion per form for the last 30 days (counted without cookies), and on which pages each form is used.
Switch from Contact Form 7 or WPForms in one click
FillKite reads your old forms, even when that plugin is switched off. It brings over fields, choices, required settings, notifications, auto-replies and thank-you messages, and tells you exactly what it could not bring and why. Then it can switch your pages to the new forms for you: you see every change first, and each page keeps a revision you can go back to. You can also move forms between sites as a file, and import past leads from a CSV file.
Emails that arrive
- Built-in SMTP: send the site’s email through your own mail server, with the password stored encrypted (or in wp-config.php) and a test-email button.
- A sender check tells you whether inboxes can trust your domain (SPF, DKIM and DMARC), with the fix in plain English.
- A daily self-test email warns you in WordPress before a lead is missed.
- Branded emails: your logo, brand colour and footer on every FillKite email.
- An admin notification out of the box; add up to ten per form. Merge tags for any answer, plus {all_fields}, {page_url}, {entry_url} and more.
- An auto-reply to the visitor, and a webhook for Zapier, Make or your own app, retried once if it fails.
- A weekly summary email: new entries per form, how many still wait for a reply, and how fast you replied.
- A delivery log with Sent / Failed views, so you can see what was sent and what failed.
Spam protection without puzzles
- A hidden honeypot and a time check stop most bots with no extra step for people.
- An explainable spam score, worked out on your own site with no cloud service: links, pasted or untyped messages, long text sent too fast, repeated messages, text in another script, spam phrases and capitals. Each Spam entry says why, and “Not spam” teaches the site.
- A per-visitor rate limit, disposable email blocking, and a check that the email’s domain can receive mail.
- Optional Akismet, Cloudflare Turnstile, hCaptcha or reCAPTCHA v3.
Marketing built in
- Add subscribers to Mailchimp or Brevo from any form, optionally only when the visitor ticks your consent box (Mailchimp also with double opt-in and tags).
- Records where each lead came from (UTM tags, referrer and landing page) without cookies, optionally on every page of the site.
- Fires the GA4
generate_leadand Meta PixelLeadevents when those tags are already on your site. - A QR code for the page a form is on, as SVG or PNG, made in your browser.
Privacy and consent
- Consent receipts: each ticked consent box is saved with the exact wording, a version fingerprint, the time and page, sealed against later changes, and printable as proof.
- IP addresses are stored only as a hash, and entries can be deleted automatically after a number of days you choose, per form.
- Test mode lets you try a live form without saving entries or sending emails.
Works with your site
- A FillKite Form block for the block editor, with a live preview.
- A FillKite Form widget for Elementor with style controls that start from your kit’s global colours and fonts.
- The
[fillkite id="123"]shortcode anywhere else, and any form can open in a popup from a button. - WooCommerce: show a form in its own tab on a product page; entries and emails know the product.
- Uncanny Automator: the trigger “Someone submits a form”, with every answer as a token.
- Forms pick up your theme’s fonts and colours. In block themes the button uses your theme’s own button style; with Astra, Kadence or an Elementor kit it uses your brand colour.
- Team access: let any WordPress role build forms, answer entries, or both.
- WP-CLI commands to list forms and entries and export entries.
Built with care
- Accessible: real labels, errors announced to screen readers, full keyboard support in the builder, and tested with axe.
- Right-to-left languages and multisite networks are supported.
- No limits on forms or entries.
For developers
FillKite has filters and actions for everything that matters, including fillkite_before_save_entry, fillkite_after_save_entry, fillkite_register_fields, fillkite_render_field, fillkite_form_gate, fillkite_notification_email, fillkite_merge_tags, fillkite_webhook_payload, fillkite_spam_check, fillkite_spam_phrases, fillkite_lead_quality, fillkite_rate_limit, fillkite_marketing_providers and fillkite_client_ip.
External services
FillKite does not contact any outside service unless you turn a feature on.
CAPTCHA (optional, off by default). When you choose a provider under FillKite Settings Spam protection and enter your keys, the provider’s script loads on pages with a form, and the visitor’s answer token and IP address are sent to the provider to check it when the form is submitted.
- Cloudflare Turnstile: Terms, Privacy policy
- hCaptcha: Terms, Privacy policy
- Google reCAPTCHA: Terms, Privacy policy
Mailchimp (optional, off by default). Only when you add a Mailchimp API key under FillKite Settings Email marketing and turn it on for a form: when that form is sent (and, if you ask for it, only when the visitor ticks the consent box), the visitor’s email address, first and last name and the tags you set are sent to Mailchimp (Intuit) to add or update the subscriber in the audience you chose. The key is also used to load your lists. Terms, Privacy policy
Brevo (optional, off by default). The same as Mailchimp, for a Brevo API key: the visitor’s email address and first and last name are sent to Brevo (api.brevo.com) to add the contact to the list you chose. Terms, Privacy policy
Webhooks (optional, off by default). When you add a webhook URL to a form, each new entry is sent to that address. You choose the address and its terms apply.
SMTP (optional, off by default). When you turn on FillKite Settings Email sending, the site’s emails are sent through the mail server you enter. You choose the server and its terms apply.
Akismet (optional, off by default). Only when the Akismet plugin is active and “Also check entries with Akismet” is on under FillKite Settings Spam protection: each entry’s name, email, text answers, IP address, browser and page are sent to Akismet (Automattic) to check for spam. Terms, Privacy policy
DNS lookups. The email domain check on an email field (off by default) and the sender check under Settings Email ask your server’s DNS for the domain’s mail and TXT records. No form data leaves your server.
The disposable email list ships with the plugin and is never downloaded. QR codes are made in your browser.
Bundled libraries
- tFPDF (LGPL 2.1) writes the entry PDFs.
- DejaVu Sans (free licence, see fonts/unifont/DejaVu_LICENSE.txt) is the PDF font.
- qrcode-generator (MIT) draws the QR codes.
- Plus Jakarta Sans and IBM Plex Mono (SIL Open Font License 1.1, see static/fonts) are the admin screen fonts.
Screenshots








Blocks
This plugin provides 1 block.
- FillKite Form Add a form you built with FillKite.
Installation
- Install FillKite from Plugins Add New, or upload the zip, and activate it.
- Go to FillKite Add New and pick a template, or start blank.
- Publish the form, then add it to a page with the FillKite Form block, the Elementor widget, or the shortcode shown in the builder.
Moving from another plugin? Go to FillKite Import.
FAQ
-
Is FillKite free?
-
Yes. Everything described on this page is free, with no limits on forms or entries.
-
Is there a paid version?
-
FillKite Pro is a separate add-on with extra fields (file upload, payments, multi-step and more) and connections. The builder and the FillKite Pro features screen show what it adds, marked PRO. Nothing in this plugin is locked or time-limited.
-
Will it slow my site down?
-
No. FillKite loads its small script and stylesheet (about 11 KB gzipped together) only on pages that show a form, and adds no database queries to pages without one.
-
Do visitors need JavaScript?
-
Yes. The form uses JavaScript to send without reloading the page and to show or hide fields. Visitors without it see a short message asking them to turn it on.
-
Where are entries stored?
-
In your own WordPress database, in FillKite’s own tables. Nothing is sent to FillKite.
-
Emails from the form do not arrive. What can I do?
-
Open FillKite Settings Email and run the sender check, then look at the delivery log under Settings Log. Most mail problems come from the server, not the form: set a From address on your own domain, and turn on Settings Email sending to send through a real mail server.
-
Can I import forms from Contact Form 7 or WPForms?
-
Yes, under FillKite Import. File upload, payment and quiz fields are not imported; the import report lists anything left out and why.
-
Does it work with page caching?
-
Yes. Forms for logged-out visitors contain nothing personal, so cached pages keep working.
-
Is FillKite GDPR friendly?
-
It includes a consent checkbox field with consent receipts, stores IP addresses only as a hash, and can delete entries automatically after a number of days you choose, per form. Deleting all data on uninstall is an option in Settings Data.
-
Where is the source of the JavaScript?
-
In the plugin itself: the files in assets/ are built from the readable source in src/ with @wordpress/scripts. To rebuild them, run npm install and then npm run build in the plugin folder.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“FillKite – Contact Form Builder with Conditional Logic & Lead Inbox” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “FillKite – Contact Form Builder with Conditional Logic & Lead Inbox” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.2.0
- After someone submits you can now offer a download: your message with a button to a file (a guide, a price list). Works for the form’s own confirmation and for conditional ones.
- A new
window.fillkite.holds()and aLogicEditorprop on add-on settings cards, so add-ons can build rules on the same engine (used by FillKite Pro’s Submit rules).
1.1.0
- A new look for every FillKite screen: one header with Forms, Entries, Import and Settings, a bundled font, redesigned template chooser, forms table, inbox, import and Settings pages, and a first-run welcome.
- Forms, Entries and the form itself work on a phone: forms as cards, entry filters that scroll, bigger tap targets and a full-width Send button.
- An entry’s status shows next to its name, and Edit answers sits with the other actions.
- The Pro features page shows what the add-on adds, with lock icons.
- New hooks
fillkite_app_tabsandfillkite_app_planlet an add-on put its own screens in the header.
1.0.18
- The print pages and the admin menu icon load their styles and scripts the WordPress way (enqueued), no inline tags.
- Form settings: the FillKite Pro card is one line, with the list of Pro settings shown only on request.
1.0.17
- Plugin header: only a Plugin URI (it was the same address as the Author URI).
1.0.16
- The plugin now ships the readable JavaScript source (src/) and its build files next to the built assets.
1.0.15
- Plugin Check clean-up: composer.json ships next to the vendor folder, and the PDF font files are marked as tFPDF data.
1.0.14
- Add-on fields (FillKite Pro: page break, file upload, payment, signature and more) show the new FillKite-style icons in the builder instead of generic ones.
1.0.13
- Elementor: no more empty gap under a form on phones when the form sits in a wrapping container.
1.0.12
- The empty-state picture (empty form in the builder, Entries with nothing selected or an empty Trash, the welcome card) uses the new FillKite mark; the old kite is gone everywhere.
1.0.11
- Elementor widget: the Labels colour now also colours checkbox, radio and consent labels, so they stay readable on a dark section.
1.0.10
- The Uncanny Automator integration uses the new FillKite mark, the last icon still on the old one.
1.0.9
- New icon for every field type, drawn to match the FillKite mark.
- The admin menu icon now follows your admin colour scheme instead of staying black, and brightens on hover like the icons above it.
1.0.8
- Forms list: Export all forms sits next to the search box on wide screens, not in the middle.
1.0.7
- Entries: the filters, search and Export fit on one row on laptop screens.
1.0.6
- Delete permanently buttons are red, with an outlined Cancel next to them, in every dialog.
- Confirm dialogs keep a readable width.
1.0.5
- Dialogs (Pro features, delete, QR code, bulk actions, shortcuts, switching pages) use FillKite’s design: rounded corners, spacing and buttons.
- The builder’s “All forms” link stays on one line.
1.0.4
- Form Settings tab: every section is the same width.
- Readme: the full feature list, Mailchimp and Brevo under External services, and new screenshots.
1.0.3
- Form builder opens full screen, with one header bar (title, Build / Settings / Preview, save) and panes that scroll on their own.
- Form Settings tab: a section list on the left that jumps to each section and follows your scrolling.
1.0.2
- Forms list and Entries: initials badges for forms and senders; “1 entry” / “1 view” wording fixed.
1.0.1
- Settings redesigned: a section sidebar, switches for on/off options, the same width and spacing on every section.
- Delivery log: Sent / Failed views, rows per page, pages, and Delete selected / Delete all.
1.0.0
- First version: drag-and-drop builder with 29 field types, conditional logic, lead inbox, notifications and auto-replies, spam protection, attribution, form designer, Gutenberg block, Elementor widget, WooCommerce product forms and importers for Contact Form 7 and WPForms.
