FillKite QA

QA – All forms

A. Field types

PageFormWhat to check
QA A01Text: common optionsLabel, placeholder, help text, starting value, read-only, sizes, help above, label left/hidden, widths, CSS class, URL prefill (?qa=hello).
QA A02Text: rulesMin length, masks, every pattern preset, custom pattern + message, allowed answers, blocked words, max words. Try a wrong value in each.
QA A03ParagraphTextarea: character and word limits, min length, starting value, read-only, pattern, blocked words, counter.
QA A04Email: basic + type twicePlaceholder, required, ask-to-type-twice (try mismatching), read-only, starting value.
QA A05Email: allowed domainsOnly dotance.com and example.org accepted. Try gmail.com (must be refused).
QA A06Email: blocked domainsmailinator.com and test.com are blocked. Try one (must be refused).
QA A07Email: block disposable + check MXDisposable addresses (e.g. a@10minutemail.com) refused; a domain with no mail server refused.
QA A08Phone: plainFree-text phone, required, placeholder, read-only, starting value.
QA A09Phone: international + countryCountry picker with dial code; default country GB. Try a number without code.
QA A10Number: min / maxMin 1, max 100, required, placeholder, starting value, read-only. Try 0 and 101.
QA A11Number: decimals + thousandsDecimals 0, 2 and 4; thousands separator on and off. Entries show the formatting.
QA A12Website (URL)Required, placeholder, starting value, read-only. Try "notaurl".
QA A13Date: limits + todayMin today, max +30 days (past/far dates refused), start today, formats.
QA A14Date: blocked days + date formatsNo weekends, holidays 2026-12-25/26 blocked, every display format (d/m/Y, m/d/Y, d.m.Y, j F Y, site).
QA A15Time: 24 hour + step24-hour time, 15-minute step, required. Try 09:07.
QA A16Time: 12 hour + min/max12-hour (AM/PM) display, only 09:00 to 17:00. Try 18:00.
QA A17Name: first + lastDefault two-part name; required; custom sub-labels.
QA A18Name: one boxSingle full-name box.
QA A19Name: first, middle, lastThree boxes, custom labels incl. middle.
QA A20Address: all partsStreet, line 2, city, state, postcode, country. Required marks on street/city/country.
QA A21Address: some parts + default countryOnly street/city/postcode/country; country is a list with GB preselected; inline layout; custom labels.
QA A22Address: stacked + USStacked layout, default country US.
QA A23Country: basicCountry dropdown, required, placeholder.
QA A24Country: searchable + defaultSearch box over the list; default value DE.
QA A25Slider: basicRange 0-100, step 1, shows value, required.
QA A26Slider: ticks, prefix/suffix, defaultTick marks, hidden value, prefix "$", suffix "%", starting value 30.
QA A27ColourColour picker, starting colour, required.
QA A28Formatted textRich text box (bold, italic, lists, links). Limits, required, placeholder.
QA A29Dropdown: basicPlaceholder, required, pre-selected, help text.
QA A30Dropdown: other, search, shuffleAn "Other" option with text box (custom label), search box, shuffled order (refresh to see it change).
QA A31Dropdown: 40 optionsLong list with search.
QA A32Multi-select: min / maxPick several. Min 2, max 3 (try 1 and 4). Required.
QA A33Multi-select: pre-selected, search, other, shuffleStarting choices, search box, Other text box, shuffle.
QA A34Radio: layoutsOne per line, side by side, 2 columns, 3 columns. Required, pre-selected.
QA A35Radio: other + shuffleOther with text box and custom label; shuffled order.
QA A36Checkboxes: layoutsVertical, horizontal, 2 and 3 columns; required; pre-ticked.
QA A37Checkboxes: select all, min/max, otherSelect-all link; min 1 / max 2; Other box; shuffle.
QA A38Image choices: singlePick one picture; required; labels shown.
QA A39Image choices: multiple, large, no labelsSeveral allowed, large images, labels hidden.
QA A40Image choices: smallSmall images, single choice, help text.
QA A41Checkbox gridRows with several ticks each; custom columns; required means a tick in every row.
QA A42RankingPut 4 options in order (Move up / Move down, keyboard). Required.
QA A43Rating: stars5 stars, required, help text.
QA A44Rating: hearts, numbers, smileysEach icon style, different sizes.
QA A45Likert scaleStatements x scale; default and custom scale; required means every row answered.
QA A46NPS (0-10)Net promoter score; custom low/high labels; required.
QA A47ConsentCheckbox with a text and a link (HTML allowed). Required (try without ticking).
QA A48HeadingHeading levels 2, 3 and 4 with fields between; heading has no value in entries.
QA A49DividerA line between sections; no value in entries.
QA A50HTML blockFree HTML: paragraph, link, list, image; scripts must be stripped.
QA A51Hidden valueHidden field with fixed value; one filled from ?src= in the address; value appears in the entry.
QA A52Prefill from logged-in accountLog in as admin and open: name/email/username fill automatically. As visitor: empty.
QA A53Every field type togetherAll 29 free field types on one page; layout, spacing, no overlaps; submit once.

B. Conditional logic

PageFormWhat to check
QA B01Logic: show whenTarget is hidden at first; choose "Yes" in the source and it appears; "No" hides it again. Hidden required target does not block sending.
QA B02Logic: hide whenTarget visible at first; choose "Yes" and it disappears (and is not required any more).
QA B03Logic: isType exactly "hello": target appears. Anything else: hidden.
QA B04Logic: is notTarget shows while the value is NOT "hello" (and not empty-or-any other).
QA B05Logic: containsType "concatenate": target appears (contains "cat").
QA B06Logic: does not containTarget shows unless the text contains "cat".
QA B07Logic: starts withTarget appears when text starts with "QA".
QA B08Logic: greater thanNumber source: enter 18 or more and the target appears; 17 keeps it hidden.
QA B09Logic: less thanNumber source: below 18 shows the target.
QA B10Logic: is emptyTarget shows while the source is empty; disappears when you type.
QA B11Logic: is not emptyTarget appears once the source has any text.
QA B12Logic: match ALLTarget needs BOTH rules: A = "yes" and B = "yes".
QA B13Logic: match ANYTarget appears when A = "yes" OR B = "yes".
QA B14Logic: chainedStep 1 "yes" shows step 2; step 2 "yes" shows step 3. Un-answering step 1 hides both.
QA B15Logic: rule on a hidden fieldThe hidden field is filled with "vip" via ?tier=vip; its value decides whether the VIP note shows.
QA B16Logic: on checkboxesTicking "Other" shows the extra box; ticking "Red" alone does not.
QA B17Logic: on dropdown + number + consentThree rules (ANY): dropdown = Gold, number > 100, or consent ticked.
QA B18Logic: hidden fields are not savedFill the target, then change the source so it hides: the old value must not appear in the entry.

C. Form settings

PageFormWhat to check
QA C01Submit button: label + centreButton text "Send it now" centred.
QA C02Submit button: right alignedButton on the right, label "Go".
QA C03Submit button: defaultDefault label (Submit) and left alignment.
QA C04Labels: left of fieldsForm-wide: labels beside the fields.
QA C05Labels: hiddenForm-wide: labels hidden (placeholders only); still read by screen readers.
QA C06Labels: per-field overrideForm labels on top, but one field left and one hidden.
QA C07Required mark: asteriskDefault: red * after required labels.
QA C08Required mark: "(required)"Required labels get the word (required).
QA C09Required mark: "(optional)"Optional labels get (optional).
QA C10Check your answersAfter Submit a summary appears with Edit / Confirm; nothing is sent until Confirm.
QA C11Test modeForm works and shows the confirmation, but NOTHING is saved or emailed. Entries stay empty (seed submit made none).
QA C12CSS class on the formForm element carries qa-form-class and qa-second; field also has its own class.
QA C13Design: colours, radius, buttonCustom accent/button/text/background/border colours, radius 20, roomy spacing, full-width button.
QA C14Design: compact, squareCompact spacing, radius 0, orange accent.
QA C15Confirmation: messageAfter sending, this custom thank-you message replaces the form.
QA C16Confirmation: redirectAfter sending you are sent to the "QA – All forms" page.
QA C17Confirmation: download buttonMessage plus a "Get the guide" button that downloads qa-sample.txt.
QA C18Conditional confirmationsChoose "Sales" -> sales message; "Support" -> support message; other -> default message. (Redirect variant for "Press" goes to the index page.)
QA C19Notification: basicOne email to the admin with all answers and a link to the entry.
QA C20Notifications: several + CC/BCCTwo notifications: admin (with CC) and a second one (BCC) with a shorter message.
QA C21Notification: only when conditions holdNotification sends only when Topic = Urgent. Seeded with Urgent (email expected); Normal sends none.
QA C22Notification: switched offThe only notification is disabled: no email on submit. Turn it on in the builder to check.
QA C23Auto-reply to the visitorVisitor gets a custom confirmation (to = their Email field). Seed email is usman@dotance.com.
QA C24WebhookSends entry JSON to example.com (a harmless test endpoint; it answers 405/200). Result shows in Settings -> Log (type Webhook).
QA C25Analytics events offGA4 and Meta Pixel events switched OFF for this form (check page source: no events fire).
QA C26Data retention 30 daysEntries of this form are deleted after 30 days (setting visible in Settings card).
QA C27Email marketing connectionMailchimp connection configured with a PLACEHOLDER list (no API key): the card works, nothing is sent; a failure is logged in Settings -> Log.
QA C28Who can fill in: logged-in onlyVisitors see a notice with a login link; logged-in users see the form. (No seed entry: seed ran as a visitor and was refused, as expected.)
QA C29Who can fill in: some rolesOnly Administrators can use the form; others get the message without a login link.
QA C30Schedule: not open yetOpens 2030-01-01: shows "not open yet" message instead of the form.
QA C31Schedule: already closedClosed since 2020-01-01: shows the closed message.
QA C32Limit: 1 entry then fullMax 1 entry: seed fills it, so the page shows the "full" message.
QA C33Schedule: open now + max 5Open window (2020 to 2035) and 5 entries max: form works.
QA C34Reply reminderIf the entry is still "New"/"Read" after 15 minutes, a reminder email is sent (WP-Cron: visit the site to trigger).
QA C35Merge tags in emailsEmail uses {form_title}, {entry_id}, {date}, {site_name}, {page_url}, {field:ID}, {admin_email}, {all_fields}.
QA C36Everything on one formMessage confirmation, review step, own style, required mark text, notification + auto-reply + retention together.

D. Real forms and starter templates

PageFormWhat to check
QA D01Contact formReal contact form: name, email, subject, message, privacy. Notification + auto-reply.
QA D02Quote requestService, budget slider, timeline, details; logic: "Other" service asks for a description.
QA D03Booking requestDate (no weekends), time (9-5), party size, notes.
QA D04Customer surveyLikert, rating, NPS, checkbox grid, ranking, open comment. No email.
QA D05Event registrationAttendee details, ticket type, guests (logic), dietary needs, consent.
QA D06Job applicationPersonal data, role, experience, links, cover letter (file upload is Pro, so a link is used).
QA D07Newsletter signupEmail + optional name + consent; compact design. (Marketing connection is covered in C27.)
QA D08Feedback formSmiley rating, category, comment; low rating shows a follow-up question.
QA D09Order form (no payment)Pick items with numbers (payment is Pro), delivery address, delivery date, notes.
QA D10Template: ContactStarter template "Contact" as the chooser makes it (Name, email and a message.) Check all fields, logic and the button.
QA D11Template: Quote requestStarter template "Quote request" as the chooser makes it (Service, budget and timeline for a proposal.) Check all fields, logic and the button.
QA D12Template: NewsletterStarter template "Newsletter" as the chooser makes it (A short sign-up with clear consent.) Check all fields, logic and the button.
QA D13Template: FeedbackStarter template "Feedback" as the chooser makes it (A rating plus what went well and what didn’t.) Check all fields, logic and the button.
QA D14Template: Job inquiryStarter template "Job inquiry" as the chooser makes it (Position, portfolio and a cover letter.) Check all fields, logic and the button.
QA D15Template: Event RSVPStarter template "Event RSVP" as the chooser makes it (Attendance, guests, dietary needs and a note for the host.) Check all fields, logic and the button.
QA D16Template: Support requestStarter template "Support request" as the chooser makes it (Topic, urgency and the details, with a reply timer in your inbox.) Check all fields, logic and the button.
QA D17Template: Booking requestStarter template "Booking request" as the chooser makes it (Preferred date and time, party size and contact details.) Check all fields, logic and the button.

E. Pro locks, admin screens, block, shortcode

PageFormWhat to check
QA E01Pro lock: builder paletteOpen the builder (new form). The PRO group in the field palette shows locked tiles with a PRO badge; clicking one opens an "X is a FillKite Pro feature" dialog; nothing breaks, the field is not added.
QA E02Pro lock: form settings cardIn a form's Settings, the card "More settings with FillKite Pro" lists locked items; each click shows the Pro dialog; the card links to Pro info.
QA E03Pro lock: Pro features pageFillKite -> Pro features lists the Pro groups (Fields, Form types, Workflow, Connections and data); no locked code, only a list and the link to fillkite.com/pro.
QA E04Forms listSearch, filters (published/draft/trash), duplicate, trash/restore, entries count, copy shortcode, QR code, export forms to a file, starter-template chooser (all 8 templates).
QA E05Entries inboxFilters (form, status, date), search, status changes (new/read/replied/won/spam/trash), star, notes, entry detail, CSV export, print, PDF, bulk actions.
QA E06Import: Contact Form 7Import screen lists "QA CF7 sample"; import it; report shows converted/skipped fields. (Sample is a stand-in CF7 post; CF7 itself is not installed.)
QA E07Import: WPFormsImport screen lists "QA WPForms sample"; import it; check the report. (Stand-in post; WPForms itself is not installed.)
QA E08Import: FillKite fileExport a form from Forms list (a .json file), then import that file again here. A copy appears in the Forms list.
QA E09Import: entries from CSVUse qa/import-samples/qa-entries.csv: choose form "QA D01", map the columns, import; entries appear in the inbox marked imported.
QA E10Settings: EmailFrom name/address, default recipients, email layout, weekly summary; the self-test email.
QA E11Settings: Email sendingSending method / SMTP fields render. DO NOT change SMTP on this site (see QA rules).
QA E12Settings: Spam protectionThreshold, honeypot, time trap, rate limit, disposable email block, Akismet, captcha provider list. No real keys.
QA E13Settings: Email marketingMailchimp and Brevo key fields render. No real keys.
QA E14Settings: TrackingGA4 / Meta Pixel / UTM capture options.
QA E15Settings: AccessWho may manage forms/entries (roles).
QA E16Settings: DataRetention defaults, delete-on-uninstall, export/erase tools.
QA E17Settings: Log (delivery log)Delivery log with filters (All/Sent/Failed; Email/Webhook/Marketing). After the seeding it holds the sent notification emails, the C24 webhook and the C27 marketing failure.
QA E18Gutenberg blockThis page uses the real FillKite Form block (form D01). Open it in the block editor too: the block shows a preview and a form picker.
QA E19Block in a popupBlock with "Open in a popup": a button "Contact us" opens the form in a modal (Esc closes, focus stays inside).
QA E20Shortcode in a popup: button opens the form in a dialog.
QA E21Shortcode: unknown id: must show a friendly notice (admins) / nothing harmful (visitors), no PHP error.