Help & Guide

Everything you need to know about creating, managing, and publishing order forms with EZFormz.

Can't find an answer? Join the community. A Telegram group for EZFormz form owners — ask questions, report bugs, request features, and see updates first. Join on Telegram →

Quick Start

Get your first order form live in under 5 minutes:

  1. Create an account at ezformz.net/signup (free).
  2. Click "New Form" on your dashboard. Give it a name and pick a template (or start blank).
  3. Add your products by clicking the Products block, then adding product names, options, and prices.
  4. Add fields from the left sidebar — drag them onto the canvas or click to add.
  5. Customize the look — open Settings → Appearance to pick a theme or customize colors, fonts, and more.
  6. Save and publish — click Save, go to the PUBLISH tab, toggle the form to "Open", and share the link.
Choose the "Standard Order Form" template to get a pre-built form with products, customer info, address, payment instructions, and payment proof blocks already added.

Creating a Form

From your Dashboard, click the "+ New Form" button. You'll be asked for:

  • Form Title — the name your buyers will see at the top of the form.
  • Template — choose a starting point:
TemplateIncludes
Blank FormEmpty canvas — build from scratch
Standard Order FormProducts, Name & Email, Address, Payment Instructions, Payment Proof
Simple Product FormProducts, Name & Email, Payment Instructions
Contact FormName & Email, Subject (text), Message (textarea)

You can also save any form as a custom template and select it when creating new forms.

Editing Your Form

The form builder has three main areas:

  • Left sidebar — Contains all available form elements. Click or drag to add them to your form.
  • Canvas (center) — Shows a live preview of your form. Click any block to select it.
  • Properties panel (right) — Appears when you select a block. Configure labels, options, styles, and more.

Inline Text Editing

For text-based blocks (Form Header, Heading, Text Box, Agreement), you can edit text directly on the canvas:

  1. Click the block — a formatting toolbar appears at the top.
  2. Click on the text to place your cursor and start typing.
  3. Use the toolbar to change font, size, bold, italic, underline, alignment, and colors.
  4. Click the gear icon in the toolbar to open the full properties panel.

Reordering Blocks

Drag blocks by their header bar to reorder them. You can also use the up/down arrows in the block header, or the double-up arrow to move a block to the top of its page. Touch drag is supported on mobile devices.

Duplicating & Deleting

Each block header has a Copy button to duplicate it and an × button to delete it. Singleton blocks (like Products or Name & Email) cannot be duplicated.

Merging fields into a group

You can group adjacent fields into a single visual container with one shared title (e.g. combine a date field + a notes field under "Pickup Details"). On the canvas, click the ↕ Merge slot button between any two consecutive cards to merge them — or drag a field into the drop zone of an existing group to add it. The group has its own editable title input and a × Unmerge button on each slot to undo. On the live form the group renders as one labeled box with the fields stacked inside (each field's individual heading is suppressed so your group title is the only one visible). Works for both simple inputs (date, text, number, dropdown, etc.) and complex blocks (Customer Info, Shipping Address, Payment Info, Payment Proof).

Saving

Click the Save button (or press Ctrl+S). The save button shows an orange dot when you have unsaved changes.

Undo

Click Undo or press Ctrl+Z to revert your last change. EZFormz keeps up to 30 undo steps per session.

Preview

Click the PREVIEW tab to see how your form looks to buyers. The preview renders your form exactly as it will appear on the public page, including theme, products, and all fields.

Sections

Sections are the core building blocks of your form. Most are singletons — you can only have one per form.

Form Header

Displays the form title, description, and optional header image at the top of your form. Edit the title and description directly on the canvas. Use the gear icon to upload a header image.

Products

Displays your product catalog with images, descriptions, options/variants, and prices. Buyers select products and quantities here. See the Products section below for full details.

Name & Email

Collects the buyer's full name and email address. Both fields are required by default. Can be made optional in the properties panel. The email is used for confirmation emails and order notifications.

Shipping Address

Collects a shipping address: Street, Street 2 (optional), City, State, ZIP, and Country. All fields except Street 2 are required by default. The entire section can be made optional.

Payment Instructions

Displays your payment instructions to the buyer. New blocks default to Methods mode — a structured picker where you add one card per payment rail (Venmo, CashApp, Zelle, PayPal, Stripe, crypto, etc.) with handle / address / surcharge fields. Buyers see a clean list of payment options on the public form and can click to copy the address. Switch to Text mode in the props panel for free-form payment notes; that mode uses a rich-text editor in the props panel (Bold / Italic / lists / links). The block no longer supports inline editing on the canvas — click the block to open the props panel.

Payment Proof

Requires the buyer to upload a screenshot or image as proof of payment. Accepts JPG, PNG, GIF, and WebP up to 25MB.

Coupon Code

Adds a coupon code field. Manage coupons (create codes, set percentage or fixed discounts, set max uses) in the properties panel. Discounts are applied to the order total.

Fields

Fields are input elements for collecting information from buyers. You can add as many as you need.

FieldWhat It DoesWhat You Can Customize
HeadingDisplay-only section titleText (edit directly on canvas)
Short AnswerSingle-line text responseLabel, placeholder hint, required or optional
Long AnswerMulti-line text responseLabel, placeholder hint, required or optional
NumberNumeric inputLabel, placeholder text, required or optional
DropdownSelect one option from a listLabel, list of choices, required or optional
Single ChoiceRadio buttons — pick oneLabel, list of choices, required or optional
CheckboxesCheckboxes — pick severalLabel, list of choices, required or optional
Image ChoicePick from clickable image cardsLabel, images with captions, allow one or multiple, required or optional
Multiple ChoiceSearchable dropdown, pick multipleLabel, list of choices, required or optional
PollPoll-style voting with resultsLabel, list of choices, required or optional
PhonePhone number with auto-formattingLabel, placeholder text, required or optional
Price / CurrencyCurrency amount with $ prefixLabel, placeholder text, required or optional
DateDate pickerLabel, required or optional
TimeTime pickerLabel, placeholder text, required or optional
SliderDraggable slider for a numberLabel, min/max value, step size, starting position, show/hide value, required or optional
Star Rating1–5 star ratingLabel, required or optional
File UploadFile upload (images)Label, required or optional
AgreementCheckbox the buyer must checkText (edit on canvas), required by default
Text BoxDisplay-only text (disclaimers, info)Content (edit directly on canvas)
HyperlinkClickable linkLink text, URL
Hidden FieldInvisible — captures data automaticallyName, default value, URL parameter
CalculationAuto-calculated from other fieldsLabel, formula, display as number/dollars/percent

Dropdown, Single Choice, and Checkboxes Options

After adding one of these fields, click it to open the properties panel. You'll see an options list where you can:

  • Type an option name and press Enter or click + Add
  • Click the × next to an option to remove it
  • Drag options to reorder them

Calculation Fields

Calculation fields let you auto-compute values from other numeric fields. In the formula, reference fields by their label in curly braces:

  • {Quantity} * {Price} — multiply two fields
  • {Subtotal} * 1.08 — add 8% tax
  • ({Rating} / 5) * 100 — convert rating to percentage

Output formats: Number, Currency ($), or Percent (%).

Hidden Fields

Hidden fields are not visible to buyers. Set a URL parameter name (like ref) and when someone opens your form via ezformz.net/f/slug?ref=google, the hidden field automatically captures "google". You can also set a default value as a fallback.

Layout Elements

Divider

A horizontal line to visually separate sections of your form.

Image

Display an image on your form. Paste a URL or upload an image file. Great for banners, product photos, or instructions.

Collapsible Section

An expandable/collapsible content block with a clickable title bar. Buyers can click the header to show or hide the section's content. Configure the title, body text, and whether it starts expanded or collapsed.

Page Break

Splits your form into multiple pages. See Multi-Page Forms for details.

Products

The Products block is the core of any order form. Here's how to set it up:

Adding Products

  1. Click the Products block on the canvas to open its properties.
  2. Click "+ Add Product" at the bottom of the products list.
  3. Enter the product name, description (optional), and category (optional).
  4. Click the image placeholder to upload a product photo.
  5. Add at least one variant/option with a label and price (e.g., "Small - $19.99").

Variants & Pricing

Each product has one or more variants (also called options). Each variant has:

  • Label — what the buyer sees (e.g., "5mg vial", "Large", "Bundle of 3")
  • Price — the price for this variant
  • Stock — leave blank for unlimited, or enter a number to limit total availability
  • Low Alert — get an email alert when stock drops to this number
  • Max/Order — the most a single customer can buy of this variant in one order. Blank = no limit. Use this when you want to keep things fair on limited drops ("1 per customer", "max 2 per order", etc.)
When a variant's stock reaches zero, it shows "Out of Stock" and can't be selected. If stock is 5 or fewer, it shows "X left" to create urgency. If Max/Order is set, the qty picker is capped and the buyer sees a small "Max N per order" hint next to the price.

Sale Pricing

Each variant can have a sale price with optional start and end dates:

  • Sale Price — the discounted price shown to buyers (original price shows with a strikethrough)
  • Sale Starts — when the sale becomes active (leave blank for immediately)
  • Sale Ends — when the sale ends (leave blank for no end date)

Click "Clear Sale" to remove a sale and revert to the regular price.

Required Products & Fixed Quantity

  • Required — toggle this on to require buyers to select this product before submitting
  • Fixed Quantity — forces quantity to 1 (buyers can only add or remove, not change quantity)

Bulk Add Products

Click "Bulk Add" to paste a list of products. Supported formats:

  • Product Name - $29.99
  • Product Name, 29.99
  • Product Name | Description | Category | $29.99

Each line becomes a product with one variant.

CSV Export

The Products tab has a CSV ▾ dropdown with an Export option that downloads your entire catalogue as a spreadsheet. The export round-trips losslessly through the CSV import flow — every column the importer accepts comes back out, including sale prices, sale start/end dates, low-stock thresholds, max-per-order caps, and bulk-discount tiers. Filename pattern is {form-title}-products-{YYYY-MM-DD}.csv. Edit it in your spreadsheet of choice and re-import to update the catalogue in bulk.

CSV Import

For large catalogs, use "Import CSV". Download the template CSV first to see the expected format. Columns:

ColumnRequiredDescription
product_nameYesName of the product
descriptionNoProduct description
categoryNoProduct category for filtering
option_labelYesVariant name (e.g., "Small")
priceYesPrice (number, no $ sign)
stockNoStock quantity (blank = unlimited)

Multiple rows with the same product_name are grouped as variants of the same product.

Display Options

  • Variant Display — "Dropdown" (select from a list) or "Individual" (show each variant with its own quantity input)
  • Image Size — Rectangle, Square, Portrait, or Auto
  • Quantity Input — "Number" (type any amount) or "Dropdown" (pick from 1 to max). On the public form, every Number qty input gets tappable − / + stepper buttons on either side so phone buyers don't have to fight iOS Safari's tiny native steppers.
  • Category Filter — If products have categories, buyers can filter by category tabs

Multi-select, bulk delete, and sort

Each product card has a checkbox in its header. Pick any number of products and the bulk-action bar surfaces N selected · Select all visible · Clear · Delete selected. The toolbar's Sort dropdown lets you reorder the catalogue by Manual order, Name A→Z / Z→A, Price low→high / high→low, or Stock low→high / high→low. Sorting commits the new order to the form on save, so buyers see it on the public form too. A second sort section ("Categories") appears when you have 2+ categories, with Manual / A→Z / Z→A. Both sort selections persist per-form across reloads.

Free / zero-priced products

You can have variants priced at $0 (free samples, included extras, etc.). Buyers see "Free" on the public form instead of "$0.00", can select them like any other variant, and the order line records as $0. Products with no variants at all also render on the public form (name + image + description, no qty input) so a placeholder / "contact for pricing" listing isn't silently hidden — the builder shows a yellow "No variants" warning chip on those so you know they aren't orderable.

Email-only restock alerts

When a variant is out of stock, buyers see a Notify me when it's back link below the variant row. They drop in their email — no buyer account required — and EZFormz emails them within an hour of the seller restocking that variant. Anonymous, deduped per (variant, email), and rate-limited 5 per IP per hour. The buyer email links straight back to the form for one-tap reorder. Untracked-stock and in-stock variants don't show the link.

Shipping Options

Add shipping methods and add-ons to your form. The shipping editor is found in the Products block properties panel.

Shipping Methods vs. Add-ons

TypeHow It WorksExample
MethodRadio buttons — buyer picks exactly oneStandard ($5), Express ($15), Overnight ($25)
Add-onCheckboxes — buyer can select multiple, with optional quantityInsurance ($3), Signature Required ($2), Gift Wrap ($5)

Methods are mutually exclusive (pick one). Add-ons stack on top of the selected method.

Setting Up Shipping

  1. Click the Products block, then scroll to the Shipping Options section in the properties panel.
  2. Click "+ Add Shipping Option".
  3. Enter a label, price, and select the type (Method or Add-on).
  4. Optionally upload an image for the option.
  5. Drag to reorder options.

Shipping costs are added to the order total and shown in the cart summary.

Shipping with EasyPost (built-in)

EZFormz has a built-in shipping integration powered by EasyPost. Once connected, you can compare USPS / UPS / FedEx / DHL rates and buy labels directly from the orders page — no separate dashboard, no copying tracking numbers. Use this if you want to fulfill orders without leaving EZFormz.

Step 1 — Connect your EasyPost account

  1. Create a free account at easypost.com.
  2. In EasyPost, go to Account → API Keys and copy your Production key (starts with EZAK) or a test key (EZTK) if you're just trying it out.
  3. Back in EZFormz, open Account Settings → Shipping Integration.
  4. Paste the API key and click Verify. The key is encrypted at rest and never returned to your browser once saved.

Step 2 — Set your return address

In the same settings section, fill in the From Address (name, company, street, city, state, ZIP, phone, email). This is the return address printed on every label you buy. Click Save Shipping Settings.

Step 3 — Add package presets (optional but recommended)

Under Package Presets, add the box sizes you use regularly (e.g. Small Flat Rate, Padded Envelope, 8×6×4). Each preset stores dimensions, weight, and an optional default carrier/service. At ship time you'll pick a preset from a dropdown instead of retyping everything.

Step 4 — Buy a label for one order

  1. Open the form's Received orders page and expand the order you want to ship.
  2. Click the Ship button. A modal opens with the customer's ship-to address already filled in.
  3. Pick a package preset (or enter dimensions + weight manually).
  4. EZFormz fetches live rates from USPS, UPS, FedEx, and DHL. Click the rate you want.
  5. Click Buy Label. EZFormz charges your EasyPost account, downloads the label PDF, writes the tracking number to the order, flips status to Shipped, and emails the customer the tracking number automatically.

Step 5 — Batch shipping (multiple orders at once)

  1. On the Received orders page, tick the checkbox on every order you want to ship.
  2. Click Batch Ship in the bulk action bar.
  3. Pick a package preset to apply to all selected orders.
  4. EZFormz buys labels for each order, downloads the PDFs, saves the tracking numbers, ships the orders, and sends confirmation emails in one pass.
Tip: print the label PDFs directly from your browser's downloads, or use PDF Receipt → Print on each order to get packing slips.

Costs

EZFormz doesn't charge for shipping — you pay EasyPost directly at their published rates (typically the lowest commercial rate available, often below what a retail post office charges). Fund your EasyPost wallet in their dashboard; each label purchase is deducted from that balance.

EasyPost vs. PirateShip

  • EasyPost (built-in): Best for sellers who want one dashboard for everything. Buy labels inline, tracking + emails auto-populated.
  • PirateShip: Best if you already use PirateShip, want their UI, or ship in very large batches. Use the PirateShip round-trip to export orders and import tracking back.

Fulfilling with PirateShip

If you prefer PirateShip over the built-in EasyPost integration, EZFormz lets you export your open orders to a PirateShip-compatible CSV, buy labels in PirateShip, then import the shipment report back to automatically set tracking numbers and mark orders as shipped.

📄 Download the PDF setup guide

PirateShip does not send us tracking events. Status stays as "Shipped" once the CSV is imported — carrier tracking updates happen inside PirateShip.

Step 1 — Export orders to PirateShip format

  1. Open the form's Received orders page.
  2. Click PirateShip CSV. The download includes every order that isn't already shipped/completed/cancelled.
  3. The EZFormz order ID is placed in the Order Number column — don't edit it. Matching on import depends on this value staying intact.

Step 2 — Upload to PirateShip and buy labels

  1. Sign in at ship.pirateship.com.
  2. Go to Ship → Import a Spreadsheet and upload the CSV you downloaded.
  3. Map the columns if prompted (PirateShip usually detects them automatically). Make sure Order Number is mapped to "Order Number" or "Reference".
  4. Buy labels as you normally would. Your EZFormz order ID travels with each shipment.

Step 3 — Export the shipment report from PirateShip

Important: PirateShip's default export is missing the columns we need to match orders reliably. Add Order ID (and optionally address columns) before exporting, or matches will fall back to email/name only.
  1. In PirateShip, click the Ship tab in the left sidebar.
  2. Click the magnifying glass (search) to show your previous labels.
  3. Add these columns: click any column header, scroll to the bottom of the menu, click Columns, and tick all of Order ID, Address 1, Address 2, City, State, ZIP, and Country. The more fields we can verify, the cleaner every match — and you'll rarely have anything in the Review pile.
  4. Click Export and save the file. PirateShip exports as an Excel spreadsheet (.xlsx) — upload it as-is; EZFormz parses Excel and CSV.

PirateShip's own docs on customising export columns →

Step 4 — Import tracking back into EZFormz

  1. Back on the Received orders page, click Import tracking.
  2. Choose the shipment file from PirateShip (.xlsx or .csv).
  3. Review the preview. Rows where every field matches (order ID, name, email, address) are listed as Ready to apply and pre-checked.
  4. Rows matching on order ID or email but with any other field difference show up under Needs review with a side-by-side diff. Tick the ones you want to apply anyway.
  5. Click Apply selected. EZFormz writes the tracking numbers, flips each order to Shipped, and sends the standard shipping-confirmation email to each customer.

Matching rules

EZFormz walks down this ladder for every CSV row until it finds a unique match:

  • Order ID (if you enabled the column in PirateShip) — direct 1-to-1 match. Auto-applies when the remaining fields also agree.
  • Email — if exactly one order has that email, auto-apply.
  • Name + ZIP — if both match a single order. Always routed to Needs review.
  • Name alone — unique-name fallback. Always routed to Needs review.
  • Ambiguous name — two orders share the name and no address to disambiguate → No match, resolve manually.
If you enable Order ID in the PirateShip export, almost everything auto-applies and you rarely have to touch the Review pile. Skip it and you'll be reviewing every row by hand.

Styling & Formatting

Most blocks support style customization. Select a block and check the Style section in the properties panel (or use the inline toolbar for text blocks).

Per-Block Style Options

OptionValues
Font28 fonts across 5 categories: Sans-serif (Inter, Roboto, Open Sans, Lato, Poppins, Montserrat, Nunito, Raleway, Source Sans 3, DM Sans, Quicksand, Rubik), Serif (Playfair Display, Merriweather, Lora, Georgia, PT Serif, Crimson Text, EB Garamond), Display (Bebas Neue, Oswald, Abril Fatface), Handwriting (Pacifico, Dancing Script, Caveat, Sacramento), Monospace (JetBrains Mono, Fira Code)
Text Size15 presets from 10px to 64px
WeightRegular, Medium, Semi-bold, Bold
AlignmentLeft, Center, Right
Letter SpacingTight, Normal, Wide, Extra Wide
Line HeightCompact, Normal, Relaxed, Double
Font ColorAny color (hex picker)
Background ColorAny color (hex picker)
Text DecorationNone, Underline, Strikethrough, Italic
Opacity10% to 100%

Inline Toolbar (Quick Styling)

When you click a Heading, Form Header, Text Box, or Agreement block, a toolbar appears with the most common formatting options. Click the gear icon in the toolbar to open the full properties panel for advanced options.

Theme Engine

The Theme Engine lets you customize the look and feel of your entire form at once. Find it in Settings → Appearance.

Global Colors

Set your primary/accent color (used for buttons, links, and focus rings), page background, form card background, and text color.

Typography

Choose a font family that applies to the entire form. Individual blocks can still override it with per-block styles.

Buttons

Customize button background color, text color, corner shape (square, rounded, or pill), and optional border.

Input Fields

Style all text inputs, dropdowns, and textareas at once — border color, background color, focus ring color, and corner shape.

Section Boxes

Control section appearance: background color picker (overrides the auto-tint derived from your Primary / Accent colors — reset to fall back to the auto-tint), border color, width, style (solid, dashed, dotted, double, none), corner roundness, and shadow intensity.

Product Cards

Customize product card border color, corner roundness, and shadow intensity. The Category bars sub-leaf themes the collapsible brand / category rows in your product list ("Creed · 5 items") independently — background, text color, border color, border width, and corner roundness, separately from the cards themselves.

Form Layout

Set the form width (narrow, medium, standard, wide, or full width) and the spacing between sections (compact, normal, relaxed, or spacious).

Page Border

Add a decorative border around the entire form. Choose color, width, style (solid, double, dashed, dotted, groove, ridge), and corner shape.

Dividers & Cart

Customize divider line color and style, as well as the cart summary box's border and background colors.

Theme Presets

Pick a one-click preset to instantly style your form. Available presets:

  • Standard: Default, Dark Mode, Minimal Light, Warm & Friendly, Ocean Blue, Elegant, Modern, Forest, Sunset Glow
  • Seasonal/Holiday: Christmas, Valentine's, Halloween, 4th of July, Easter, Thanksgiving, St. Patrick's, New Year's, Memorial Day, Veterans Day

You can fine-tune any preset after applying it. You can also save your own custom themes to reuse across forms.

Multi-Page Forms

Split long forms into multiple pages to improve the buyer experience.

Adding Pages

Click the "+ Add Page" button above or below any page on the canvas. This inserts a page break — all blocks after the break appear on the next page.

How It Works for Buyers

  • Each page shows a progress bar: "Step 1 of 3"
  • Buyers click Next to advance (fields on the current page are validated first)
  • A Back button lets them return to previous pages
  • The final page has the Submit button

Removing Pages

Click "× Remove Page" in the page header. The blocks from that page merge into the previous page.

Conditional Logic

Show or hide fields based on what the buyer enters in other fields.

Setting Up a Condition

  1. Select the field you want to conditionally show/hide.
  2. In the properties panel, scroll to Conditional Logic.
  3. Click "+ Add condition".
  4. Choose the source field (the field whose value determines visibility).
  5. Choose an operator: equals, does not equal, contains, is empty, is not empty.
  6. Enter the target value (for dropdown/radio/checkbox sources, a dropdown of options appears).

Multiple Conditions

Add multiple conditions and choose:

  • ALL — the field shows only when every condition is met
  • ANY — the field shows when at least one condition is met
Hidden fields are skipped during validation. If a required field is hidden by a condition, it won't block form submission.

Smart Value Matching

The value input adapts to the source field type:

  • Dropdown, radio, checkbox, image choice, and multi select — dropdown of their options
  • Date — date picker
  • Time — time picker
  • Rating — 1–5 star dropdown
  • Slider — number input matching the slider's range
  • Agreement — "Checked" or "Unchecked"
  • Coupon — "Applied" or "Not Applied"
  • Text and number — plain text input

Form Settings

Click the SETTINGS tab in the builder header to access all form settings.

Notifications

Choose how you're notified when orders come in:

  • Off — no email notifications
  • Every order — instant email for each submission (default)
  • Daily digest — one summary email per day with new orders
  • Weekly digest — one summary email per week

Thank You Page

  • Default — Shows a standard "Thank you" message after submission
  • Custom — Set a custom heading, message, or redirect URL

The default confirmation page also includes an always-visible order summary card (every product line, coupon discount, shipping lines, and total) so the buyer doesn't have to wait for the email to confirm what they just bought. The card uses fixed system styling so it's readable on every theme.

Confirmation Email

  • Toggle — Turn buyer confirmation emails on or off
  • Custom Template — Write your own subject and body using template variables:
VariableReplaced With
{{customer_name}}Buyer's name
{{customer_email}}Buyer's email
{{total}}Order total
{{form_title}}Your form's title
{{items_table}}Formatted table of ordered items
{{payment_instructions}}Your payment instructions

The custom body supports **bold**, *italic*, and [links](url) formatting.

Form Limits

  • Max Submissions — Automatically close the form after this many orders (0 = unlimited)
  • Close Date — Automatically close the form at a specific date and time

Security

  • Password Protection — Require a password to access the form. Buyers see a password screen before the form loads. Passwords are hashed before storage.

Order Edits

Toggle "Allow customers to request edits to their orders" (default on). When off, the buyer-facing edit-order flow is disabled for this form — the confirmation email omits the edit CTA, the My Orders page hides the button, and the public edit page returns a friendly "owner has disabled edits" message. See Order Editing for the full review workflow.

Appearance

The Appearance section contains the full Theme Engine. You can also set:

  • Background Image — Set a full-page background image behind the form. The Display Mode dropdown picks how it lays out: Cover (default, full bleed; may crop), Contain (whole image visible with letterboxing), Centered (intrinsic size, no resize), or Tile (image repeats across the page — with a Tile Size slider for hero images).

Google Sheets

Connect a Google Sheet to automatically sync orders. See Google Sheets Integration for setup details.

Templates

Templates save your form layout and products so you can reuse them.

Saving a Template

In the builder, go to SETTINGS → scroll to the Tools section → click "Save as Template". Give it a name, and your current blocks and products are saved.

Loading a Template

Click "Load Template" in Settings. Choose from built-in presets or your saved templates.

Loading a template overwrites all current blocks and products. Save your form first if you want to keep your work.

Backup & Restore

In Settings → Tools, click "Download Backup" to save your entire form as a JSON file. This includes all blocks, products, shipping options, settings, and theme configuration. To restore, click "Restore from Backup" and upload a previously downloaded file.

Backups save everything about your form (including settings and theme). Templates save only the block layout and products.

Sharing Your Form

Click the PUBLISH tab in the builder header to access all sharing options.

Share Link

Your form's public URL: ezformz.net/f/your-form-slug. Click Copy Link to copy it to your clipboard. You can edit the slug in Settings.

QR Code

A scannable QR code is generated automatically for your form link. You can:

  • Download — save the QR code as an image
  • Print — open a print-ready version
QR codes are great for flyers, business cards, and in-store displays.

Embed Code

Get an iframe embed code to add your form to any website. Copy the code and paste it into your site's HTML. The embed is responsive and adjusts to the container width.

Toggling Form Open/Closed

Toggle the form between Open (accepting orders) and Closed from the Publish tab or the dashboard. Closed forms show a "Form Closed" message to visitors.

Managing Orders

Click "View Orders" from the builder or dashboard to see all submissions for a form.

Order Information

Each order shows:

  • Submission date and time
  • Customer name and email
  • Shipping address (if collected)
  • Items ordered with quantities and prices
  • Shipping selections and costs
  • Order total (with any coupon discount applied)
  • Responses to custom fields (text, dropdowns, checkboxes, etc.)
  • Payment proof image (if uploaded)

Order Statuses

Each order has a status you can update:

StatusMeaning
PendingNew order, awaiting action
PaidPayment received, ready to process
ShippedOrder has been shipped
Direct Vendor ShippedDrop-shipped directly from your vendor (seller-only label, teal badge). Buyers still see "Shipped" with the standard indigo badge and the same shipped-status email — this is just a private flag for orders that didn't pass through your hands.
CompletedOrder delivered and finished
CancelledOrder was cancelled

Use the dropdown on each order card to change its status. You can also use bulk operations to update or delete multiple orders at once.

Tracking Numbers

Add a tracking number to any order. When you save a tracking number, the buyer automatically receives an email notification with the tracking information.

For orders shipped through the built-in EasyPost integration, the seller-side tracking widget includes a Refresh tracking ↻ button that pulls the current tracker state straight from EasyPost — useful when a webhook was missed or you just want the latest scan. EZFormz also runs a daily 4 AM UTC fallback sweep over in-flight shipments so anything the webhook drops gets caught automatically. The seller's "View public tracking page →" link now deep-links to the official carrier page (USPS, UPS, FedEx, DHL, Canada Post, OnTrac), with the link text reflecting the carrier (e.g. "Track on USPS →").

Seller Notes

Add private notes to any order. These are only visible to you (the seller) and are never shown to the buyer.

Custom Messages

Send a custom email to any customer directly from the order card. The message is sent from your form's email address.

Resend Confirmation

Resend the order confirmation email to the buyer (and optionally to yourself).

Edit Orders

Click Edit on any order to modify items, quantities, customer info, address, notes, or tracking number. The edit modal also includes a Submitted Form Fields section that lets you correct any custom field the buyer filled in — phone numbers, Telegram / Discord display name + @handle, dropdown picks, single / multi choice, dates, times, sliders, hidden fields, etc. (Agreement, file upload, calculation, rating, and coupon fields are intentionally read-only since editing them post-submit doesn't make sense.) The order total is automatically recalculated when items change, and edits flow through to your connected Google Sheet in the same atomic save.

CSV Export

Export all orders to a CSV file. The export modal lets you choose which columns to include, and supports expanded columns for custom fields and individual product quantities.

PDF Receipts

Download a professional PDF receipt for any order. The receipt includes all order details, items, totals, and your form branding.

When you click PDF Receipt (or bulk Print Receipts — see below), a chooser modal asks for the page size: Letter / A4 (the standard layout) or 4×6 Thermal Label for sellers running a Rollo / DYMO / Zebra thermal printer. Your last choice is remembered per-browser so repeat use is one tap. The thermal format is its own compact layout: form title at the top, ship-to block (with the buyer's Telegram / Discord @handle right-aligned next to their name when present), bare item lines (`qty × product` — variant suffix dropped, fold variant info into the product name if you need it on the label), then totals and an optional tracking line.

Bulk Print Receipts

Tick the checkboxes on any number of orders, then click Print Receipts in the bulk action bar. EZFormz builds a single multi-page PDF with one receipt per selected order and opens it in a new tab — hit Cmd/Ctrl-P from there to print. Same Letter / A4 vs 4×6 Thermal chooser as the single-order PDF Receipt button.

Repair underpaid orders

If an edit raises an order's total without a balance request — or if a payment-method surcharge or shipping change leaves the stored total below what the items + shipping + surcharges actually come to — a yellow Repair this order banner appears on the affected order. Two buttons:

  • Repair & email buyer — corrects the total, mints a one-time pay-balance link, and emails the buyer for the difference.
  • Fix silently — corrects the total without contacting the buyer (useful for small differences you'd rather forgive).

Overpaid orders aren't flagged — the buyer paid the price they were quoted, so no action is needed.

Change a buyer's payment method

You can switch the payment method on an existing order from the order card — useful when a buyer asks to pay via a different rail than they originally picked. EZFormz emails the buyer a fresh full order confirmation with the new payment info, the recomputed total (the new method's surcharge is folded in automatically), and a Pay & Upload Proof button. Their pay-balance page is filtered to the method you selected, so they can't accidentally pay through a different rail.

Poll & Checkbox Results

If your form includes Poll, Checkbox, or Multiple Choice fields, the orders page shows aggregate results as bar charts — see how respondents voted across all orders.

Product Summary

View aggregate product quantities across all orders to see which items are most popular.

My Orders (Customer View)

Logged-in buyers can view all their placed orders at ezformz.net/my-orders.

  • Orders are grouped by form
  • Each order shows a status progress bar (Pending → Paid → Shipped → Completed)
  • Click an order to expand and see full details: items, shipping, custom fields, tracking info
  • Tracking numbers are shown with links to carrier tracking pages (USPS, UPS, FedEx)
  • Download a PDF receipt for any order
  • The customer name renders above the shipping address so buyers placing orders for multiple recipients can tell at a glance which order is for whom
  • Agreement / disclaimer fields and file-upload echoes are hidden from the order view (the seller still sees both); legacy unlabeled custom fields render with friendly type names like "Phone", "Choice", or "Selection" instead of raw block IDs

Mark as Received

For orders that don't have automated EasyPost tracking, the order detail panel shows a ✓ Mark as Received button (alongside Download Receipt / Edit Order / Reorder) on orders in confirmed, ordered, or shipped status. One click + a confirm prompt flips the order to Completed and syncs the change to the seller's Google Sheet. The button is hidden on orders that have an EasyPost tracker, since the carrier-delivered webhook will auto-complete those.

Cleaning up the page

Once you have a few orders, the toolbar gives you ways to keep the main view focused on what's still active:

  • Hide completed (default on) — orders marked delivered, completed, or cancelled drop off the main list automatically.
  • Show archived — toggles between your active orders and your personal archive.
  • Per-order Archive button — hide an order from your view. The seller still sees it on their end; this is just a personal hide.
  • Multi-select — checkbox on every order. Pick a batch and use the bar at the top to Archive selected, Restore selected, Select all visible, or Clear.
  • Archive all completed — one-click prompt that appears whenever you have completed orders to clean up.

Leaving a review

Any order that is paid or beyond shows a ☆ Leave review button in the order header (within 30 days of being marked paid). Click it to leave a 1–5 star rating + optional text on the seller's account — not on the form. One review per form. You can edit your review for 30 days.

Already reviewed? The button changes to ☆ Your review (gold) and the modal opens pre-filled for editing.

Reviews

Reviews are account-scoped, not per-form. They follow you across every order form you create — helpful trust signal that compounds over time.

Turning it on

  1. Go to Account → Reviews.
  2. Flip the Public reviews toggle. EZFormz auto-generates your public page at ezformz.net/r/your-slug.
  3. Optionally turn on Auto-show review rating on all my forms to drop a small chip near each form's title that links to your reviews page.

Who can review

  • Verified buyers only — they must have at least one paid order on one of your forms.
  • The Leave review button appears within 30 days of an order being marked paid.
  • One review per form per buyer (a buyer can review you once per form, not once per order).
  • Buyers can edit their review for 30 days. After that it's locked.

Managing reviews

Open the dashboard's Reviews widget or visit /reviews to see every review (including spam-flagged):

  • Reply — one public reply per review, editable.
  • Mark as spam — hides the review from your public page. You can restore it any time.
  • Only EZFormz admin can fully delete a review (for genuine policy violations like slurs or doxing). Sellers can't delete reviews unilaterally.

What buyers see

Your public page (/r/your-slug) shows your average rating, a star-distribution histogram, and every public review with seller replies. The on-form chip shows your average + review count and links to that page in a new tab.

Email alerts

You get an email every time a new review lands so you can reply quickly.

Order Editing & Edit Requests

After placing an order, buyers receive an edit link in their confirmation email. They can request changes to items, quantities, shipping method, address, and notes — the seller approves or rejects each request inline on the orders page.

How It Works

  1. Buyer clicks the edit link in their confirmation email and submits a request with their proposed changes.
  2. You see the request on the affected order with a full before / after diff: old total → new total with a colored delta, per-line item add / remove / qty changes, shipping changes, and any address / customer info / notes changes (unchanged fields are hidden).
  3. The buyer is emailed automatically when you approve or reject.

Approval options

When the requested edit raises the total, you get two approve buttons:

  • Approve & Request Balance — mints a one-time pay-balance token and emails the buyer a balance-due notification with the surcharge-aware new total, your payment instructions, and a one-click upload link. The connected Google Sheet's Payment Status column flips to "Balance due $X" until they pay, then "Top-up paid".
  • Approve only — applies the edit without emailing for the difference. EZFormz pops a confirm dialog warning you the buyer won't be billed, so it's hard to pick this one by accident.

When the edit lowers the total, the refund-owed amount is logged to the order's payment history and you see a "Refund of $X owed" toast on approve. Same-total edits get a single Approve button.

Edit Requested filter

The orders page has an amber Edit Requested filter tab right after "All". It only appears when at least one active order has a pending edit request, and clicking it filters to just those orders so you can review the queue in one batch instead of scrolling.

Disabling edit requests per form

If you'd rather not let buyers request edits at all, open the form's Settings panel → Order Edits and turn off "Allow customers to request edits to their orders" (default on). When off, the confirmation email omits the edit CTA, the My Orders page hides the button, and the public edit-order page returns a friendly "owner has disabled edits — contact them" message. Pending requests already in your queue stay reviewable either way; this only blocks NEW requests.

Edit links expire after 30 days. Only one pending edit request is allowed at a time.

Analytics

Each form has its own analytics page showing performance data. Access it from the dashboard or builder.

  • Conversion Rate — percentage of form views that result in an order
  • Revenue Chart — daily revenue and order count over time (7, 30, or 90 day views)
  • Top Customers — your most active buyers ranked by order count and total spending

Google Sheets Integration

Sync every order to a Google Sheet automatically — handy for accounting, sharing with a team, or piping into other tools (Zapier, Make, etc.). Setup takes about a minute.

Setup

  1. Create a new (or open an existing) Google Sheet.
  2. In the sheet, click Share (top-right) and add this email as an Editor:
    ezformz-sheets@ezformz-integrations.iam.gserviceaccount.com
  3. Copy the sheet's URL from the browser address bar.
  4. In EZFormz, open your form in the builder.
  5. Click SETTINGS in the top bar, then select the Integrations section.
  6. Paste the sheet URL into the Google Sheet URL field.
  7. A column picker appears — tick the columns you want synced (Select All is the default).
  8. Save the form. Every new order will append a row automatically.

Available Columns

Standard columns: Order ID, Date, Customer Name, Email, Status, Items, Shipping, Coupon, Total, Shipping Address, Notes, and Tracking.

Plus dynamic columns that expand automatically:

  • Custom field columns — every form field (text, dropdown, checkbox, poll, etc.) gets its own column. Multi-select fields expand into one column per option so you can tally them.
  • Product columns — each product + variant combo gets its own column showing the quantity ordered, so totals are easy.

EZFormz also maintains a TOTALS row at the bottom with sum formulas for product quantities and count formulas for checkbox/poll options — rebuilt on every new order.

Bulk-syncing existing orders

When you first connect a sheet, only new orders get synced going forward. To push existing orders into the sheet, open the form's Received orders page and click Sync to Sheet. Duplicate rows are detected by order ID and skipped, so it's safe to run more than once.

Status changes and tracking updates made in EZFormz are written back into the matching row — the sheet stays in sync with your orders page automatically.

Sheet layouts

The Integrations panel has a Sheet Layout picker:

  • Single row (default) — one row per order. Items are concatenated into the Items cell, and each product variant gets its own column with the quantity. Best when you want totals and per-variant counts.
  • Item rows — each order is a block: row 1 has the customer + totals + first product, rows 2..N show only the next products on their own lines, and a blank row separates orders. Reads like a printed invoice. Best for picking lists, fulfillment exports, and inventory pulls.

Switching layouts resyncs every order on the form to the new schema, so the prompt recommends pointing at a fresh sheet first.

Granular sync controls

Once a sheet is connected, the Integrations panel shows toggles for fine-grained control:

  • Auto-sync new orders — turn off if you only want to bulk-sync manually.
  • Auto-update on status / tracking change — independent toggles so you can keep the sheet "frozen" while still receiving new orders.
  • Pause all auto-sync — one-click pause for when you're manually editing the sheet and don't want EZFormz to overwrite.
  • Reconcile now — pushes any orders that aren't currently in the sheet (e.g. failed earlier, or you cleared the sheet by hand).
  • Verify connection — read-only health check that surfaces the actual Google error if access is broken.
  • View sync history — last 50 sync events for the form (success / error with the actual error message).

Order-level sync indicators

The orders page shows a per-order chip:

  • In Sheets — click to jump straight to that row.
  • Failed — click to retry; hover to see the exact error.
  • Pending — click to force a sync.

A health banner at the top of the orders list shows totals: "X of Y synced · Z failed", with a Retry button for unsynced orders. EZFormz also runs a 5-minute retry cron with exponential backoff for any failed syncs.

Troubleshooting

  • "Failed to write to sheet" — the service account isn't an Editor on your sheet. Re-share the sheet with the email above and make sure the access level is Editor, not Viewer. Use Verify connection to confirm.
  • Sheet is missing columns — column choices apply to new orders only. To rebuild the header, delete the sheet rows and click Sync to Sheet again to re-push everything.
  • Changed your mind on columns — edit the tick boxes in the Integrations settings; existing rows won't be re-written, but new orders will use the new column set.

Save & Continue Later

Buyers can save their progress on a long form and come back later to finish.

How It Works

  1. The buyer clicks "Save Progress" at the bottom of the form.
  2. They enter their email address.
  3. A resume link is emailed to them.
  4. When they click the link, the form reopens with all their previous entries pre-filled.
Saved progress expires after 7 days. The buyer must complete their order before the link expires.

AI Form Builder

Describe what you want to sell in plain English and AI builds the entire form — products, pricing, photos, theme, shipping options, everything. EZFormz works with both ChatGPT and Claude; use whichever you already have.

Click the Build with AI button on your dashboard to open the picker, or head to Account Settings → AI Builder to see setup instructions for each.

Option 1 — Build with ChatGPT

  1. On the dashboard, click Build with AI → ChatGPT (or go to Account Settings → AI Builder → ChatGPT).
  2. Click "Open Form Builder in ChatGPT". The EZFormz GPT opens in ChatGPT.
  3. The first time you use it, ChatGPT asks you to sign in to EZFormz — approve the connection with your normal EZFormz login.
  4. Describe your form in the chat. The GPT creates it and gives you the live URL.

Requirements: a free ChatGPT account. No paid subscription, no API key.

Option 2 — Build with Claude

  1. On the dashboard, click Build with AI → Claude (or go to Account Settings → AI Builder → Claude).
  2. In Claude, go to Settings → Connectors and click Add custom connector.
  3. Name it anything (e.g. EZFormz) and paste this URL: https://ezformz.net/mcp
  4. Claude prompts you to sign in to ezformz.net — approve with your normal EZFormz login.
  5. Open any Claude chat, enable the EZFormz connector, and describe the form you want.

Requirements: a paid Claude plan (Pro, Max, Team, or Enterprise — Custom Connectors aren't on the free tier). No API key needed; the connector authenticates via OAuth.

Want to use a static token instead of OAuth (e.g. for automation)? Create an API key in Account Settings → AI Builder → API Keys and use it as a Bearer token when Claude asks for credentials.

What AI Can Do

  • Create forms from scratch — describe your products and the AI builds the full form with blocks, pricing, and layout.
  • Find real product photos — the AI searches the web for actual product images and uploads them to your form.
  • Upload your photos — send images directly in the chat and the AI attaches them to your products.
  • Apply custom themes — request any color scheme, font, or style and the AI configures the visual settings.
  • Set up shipping & coupons — add shipping methods, add-ons, and discount codes.
  • Edit existing forms — ask the AI to change products, update prices, swap images, or restyle an existing form.
  • Manage orders — look up orders, update status, apply tracking numbers.

Example prompt (works in either)

"Build me an order form for my bakery. I sell cupcakes ($3 each — vanilla, chocolate, red velvet), cookies ($2 each), and cake slices ($5 each). Flat rate $5 shipping. Payment via Venmo @mystore. Use warm pink and brown colors. Find real product photos for each item."

How the sign-in works (OAuth 2.0)

Both ChatGPT and Claude use OAuth 2.0 — the same secure sign-in flow as "Sign in with Google" or "Sign in with GitHub". Here's what happens the first time you connect:

  1. The AI tool (ChatGPT or Claude) redirects you to a consent page on ezformz.net.
  2. If you're not signed in, you'll be asked to log in with your email.
  3. You see exactly what the AI will be able to do with your account.
  4. You click Approve to grant access, or Deny to cancel.
  5. You're redirected back to the AI, which can now build forms on your behalf.

What the AI can and can't access

Once connected, the AI can:

  • Create, edit, publish, and delete your forms
  • Add products, shipping options, and discount coupons
  • Upload and host product images
  • Apply visual themes and styling
  • View your orders and analytics
  • Update order status and tracking

It cannot access your email, password, login sessions, payment details, or any other accounts you've connected (like Google Sheets).

How to revoke access

  1. Go to Account Settings → Connected Apps.
  2. Find "ChatGPT" or "Claude" (or whichever app) in the table.
  3. Click Revoke and confirm.
  4. Access is revoked immediately. The tool will have to sign in again the next time you want to use it.

Token expiration

Access tokens expire after 30 days. Both ChatGPT and Claude automatically renew them using a refresh token (lasts 1 year). You won't need to sign in again unless you revoke the connection or don't use it for a year.

The AI Form Builder is in beta. The AI does its best to follow your instructions but you may need to fine-tune the form in the builder afterwards — especially for tricky layouts or unusual themes.

API Access

EZFormz has a full REST API that lets you create and manage forms programmatically. This is useful for developers, automation tools, and advanced integrations.

Getting an API Key

  1. Go to Account Settings → AI Builder → API Keys tab.
  2. Click "+ Create Key".
  3. Give your key a name (e.g., "My Integration") and click Create.
  4. Copy your key immediately — it will not be shown again.
Keep your API key secret. Anyone with your key can create and modify forms on your account. If a key is compromised, revoke it immediately from Account Settings.

Using the API

The API base URL is https://ezformz.net/api/v1/. All requests require your API key in the Authorization header:

Authorization: Bearer ezf_live_your_key_here

Key Endpoints

ActionMethodEndpoint
List formsGET/api/v1/forms
Create formPOST/api/v1/forms
Get form detailGET/api/v1/forms/{id}
Update formPUT/api/v1/forms/{id}
Publish formPOST/api/v1/forms/{id}/publish
Add productsPOST/api/v1/forms/{id}/products
List ordersGET/api/v1/orders
Update orderPATCH/api/v1/orders/{id}

Interactive Documentation

Full interactive API documentation is available at ezformz.net/api-docs. You can explore all endpoints, see request/response schemas, and try requests directly from your browser.

Self-Documenting API

Call GET /api/v1/ (no authentication required) to get the complete API reference including all 34 block types, theme options, product structure, and example payloads. This is useful for AI agents and automation tools that need to discover the API capabilities.

Rate Limits

The API is limited to 60 requests per minute per API key. Rate limit information is included in response headers: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Dashboard

Your Dashboard is the home base for managing all your forms and getting a quick overview of your business.

Widgets

The dashboard features customizable widgets you can rearrange and collapse:

  • Today's Revenue / Weekly & Monthly Revenue — quick income snapshots.
  • Pending Orders — orders awaiting action.
  • Orders by Status — segmented bar of every status across forms.
  • Shipping Queue — confirmed orders ready to ship.
  • My Forms — all your forms with quick actions (see below).
  • Reviews — your average rating + 3 most-recent reviews + buttons to your public page and the manage page.
  • Revenue by Form — bars for top-earning forms.
  • Product Breakdown — full-width per-form chart of product / variant performance. Form picker, range filter (all-time or 30 days), granularity toggle (per variant or per product), metric toggle (qty or revenue), and a chart toggle (bar or pie). Top 10 + an "Other" bucket with an expand-to-see-all button.
  • Top Products / Coupon Usage / Low Stock Alerts — tactical lists.
  • Repeat Customers / Avg Order Value — customer + order benchmarks.

Drag widgets to reorder them. Click the collapse caret to minimize any widget. Your layout is saved automatically. To pick which widgets are visible, click the labeled Widgets button in the dashboard header (it sits alongside Build with AI, + New Form, and Community).

My Forms widget

Two layouts to pick from (toggle in the toolbar — Cards | List):

  • Cards (default) — refined cards with a colored status rail, quiet "Earning / Active / Inactive" status chip, an On/Off toggle switch, a 3-up to 5-up stats panel with serif numerals, single-line URL with copy / open / QR icons, primary "Edit form" + secondary "View orders →", and a … menu for Preview / Export CSV / Duplicate / QR / Transfer / Delete.
  • List — dense one-row-per-form view with a 7-day order sparkline (color-coded earning / steady / idle), grouped by Earning · Live no orders · Inactive. Auto-defaults to this view when you have 8+ forms.

Stats picker

The "STATS SHOWN" bar above the cards lets you pick up to 5 stats from this menu: Views, Orders, Revenue, Conversion %, Avg order, Last order, Repeat buyers, Total orders, Pending. Drag chips left/right to reorder — works on desktop and on touch with an insertion line showing the exact drop spot. Reset returns to defaults. Choices save to your account.

Toolbar

  • Search — filter forms by name.
  • Filter chips — All / Active / Drafts / Has orders, with live counts.
  • Sort — Newest, Oldest, Most orders, Highest revenue, A→Z.
  • View toggle — switch between Cards and List.

Quick actions on a form

  • Toggle a form on/off via the chip or the On/Off switch.
  • Copy the public URL, open it in a new tab, or generate a QR code from the URL row icons.
  • Edit, view orders, sync to Google Sheets (when connected), preview, export CSV, duplicate, transfer, or delete via the … menu.
  • A gear icon next to View Orders jumps you straight to the form's Settings panel — no need to click into the builder and find the tab. Settings deep-links work too: /edit/{id}#settings/orderEdits opens the Order Edits subsection directly.
  • Each card has a chevron pinned to its top-right corner — click to collapse the card to just the title row + action buttons (stats, URL, and empty-state nudge hide). Each form remembers its own collapsed/expanded state across reloads.
  • Brand-new forms (0 views, 0 orders) show a "Share your link to start collecting orders" coaching nudge instead of a row of dim zeros.

Account Settings

Manage your account at ezformz.net/account.

Auto-Delete

For privacy, you can configure automatic data deletion:

  • What to delete — Orders only, Orders + Forms, or Everything
  • After how long — 30, 60, 90, 180, or 365 days of inactivity

Auto-delete runs daily. Deleted data cannot be recovered.

Delete Account

Permanently delete your account and all associated data (forms, products, orders, images, templates, themes). This action is irreversible.

Keyboard Shortcuts

ShortcutAction
Ctrl+SSave form
Ctrl+ZUndo last change
EscapeDeselect current block / exit inline editing
Ctrl+BToggle bold (while inline editing)
Ctrl+IToggle italic (while inline editing)
Ctrl+UToggle underline (while inline editing)

On Mac, use Cmd instead of Ctrl.

Security & Privacy

Hosting & Infrastructure

EZFormz runs on Cloudflare Workers — a global edge compute platform spanning 300+ cities. Your forms are served from the nearest data center to your customers, with built-in DDoS protection and CDN active on every request.

  • Database: Cloudflare D1 (SQLite at the edge)
  • File Storage: Cloudflare R2 (product images, payment proof uploads)
  • Compute: Cloudflare Workers (serverless, no traditional servers to hack)

Data Protection

  • HTTPS everywhere — All traffic is encrypted in transit via TLS
  • Passwordless authentication — No passwords stored. Login uses secure 6-digit codes sent to your email
  • Secure sessions — HttpOnly, Secure, SameSite cookies — inaccessible to JavaScript
  • Form passwords hashed — SHA-256 hashed before storage
  • Server-side price verification — All order totals are recalculated from the database, never trusted from the browser
  • Atomic stock deduction — Stock levels can't go negative, even under concurrent orders
  • Rate limiting — Login, order submission, file uploads, and coupon validation are all rate-limited to prevent abuse
  • CORS restricted — Authenticated API endpoints only accept requests from ezformz.net

Privacy

  • No third-party tracking — No Google Analytics, no Facebook Pixel, no tracking scripts
  • No data selling — Your data and your customers' data are never shared or sold
  • Spam protection — Honeypot fields block automated spam without CAPTCHAs
  • Auto-delete option — Configure automatic data deletion on your schedule

Frequently Asked Questions

Does EZFormz process payments?
No. EZFormz is an order form builder only. You provide your own payment instructions (bank transfer, Venmo, crypto, etc.) and buyers upload proof of payment. You handle payment verification and fulfillment yourself.
Is EZFormz free?
Yes, EZFormz is completely free. You can create unlimited forms, products, and collect unlimited orders.
Can I use my own domain?
Not currently. All forms are hosted at ezformz.net/f/your-slug. Custom domains may be available in the future.
Can buyers save their progress and come back later?
Yes. Buyers can click "Save Progress" on the form, enter their email, and receive a resume link. When they click the link, the form reopens with all their previous entries pre-filled. Saved progress expires after 7 days.
Can buyers edit their orders after submitting?
Yes. Each order confirmation email includes an edit link. Buyers can request changes to items, quantities, shipping, and address. Changes require your approval before they're applied. Edit links expire after 30 days.
How do I add shipping options?
Click the Products block, then scroll to "Shipping Options" in the properties panel. Add shipping methods (buyer picks one) and/or add-ons (buyer can select multiple). Each option has a label, price, and optional image. Shipping costs are added to the order total.
How do I set up sale pricing?
Click a product, expand its variant/option, and set a Sale Price. You can optionally set start and end dates for the sale. When active, buyers see the sale price with the original price shown as a strikethrough. Click "Clear Sale" to remove it.
How do I connect Google Sheets?
In the builder, go to Settings → Google Sheets. Paste your Google Sheet URL and share the sheet with the EZFormz service account as an Editor. Choose which columns to include, then save. New orders will be automatically added to your sheet.
How do I set up coupon codes?
Add the Coupon Code section to your form, then click it to open properties. Click "Manage Coupons" to create codes. Each coupon has a code, type (percent or fixed), value, optional max uses, and an optional expiration date (datetime field). Expired coupons are rejected at submit time.
What happens when a product goes out of stock?
If you set a stock quantity on a variant and it reaches zero, that variant shows "Out of Stock" and buyers can't select it. When stock is 5 or fewer, it shows "X left" to the buyer. You can set a low stock threshold to get email alerts before stock runs out.
Can I export my orders?
Yes. On the orders page, click "Export CSV" to download all orders as a spreadsheet. You can choose which columns to include. You can also download individual PDF receipts for any order, or sync orders to Google Sheets for live reporting.
Can I limit how many orders my form accepts?
Yes. In Settings → Form Limits, set a max number of submissions. You can also set a close date to automatically stop accepting orders at a specific time.
How do calculation fields work?
Add a Calculation field and write a formula using other field labels in curly braces. For example: {Quantity} * {Price}. The result updates automatically as buyers fill in the form. You can format the output as a number, currency ($), or percentage (%).
Can I show or hide fields based on what the buyer selects?
Yes, use Conditional Logic. Select a field, scroll to the Conditional Logic section in the properties panel, and set rules like "show this field when Payment Method equals Crypto". You can combine multiple conditions with ALL or ANY logic.
How do I customize the look of my form?
Go to Settings → Appearance to access the Theme Engine. You can change colors, fonts, button styles, input styles, product card appearance, form width, spacing, borders, and more. Pick a one-click preset or build your own theme from scratch. You can also save custom themes to reuse across forms.
Can I embed my form on my website?
Yes. Go to the PUBLISH tab in the builder and click the Embed tab. Copy the iframe code and paste it into your website's HTML. The embed is responsive and adjusts to fit your page.
What's the difference between Checkboxes and Multiple Choice?
Both let buyers pick multiple options. Checkboxes shows all options as visible checkboxes. Multiple Choice shows a compact dropdown with search and removable tags. Use Checkboxes for short lists (2–6 options) and Multiple Choice for longer lists.
What is the AI Form Builder?
The AI Form Builder lets you describe a form in plain English and have ChatGPT create the entire thing for you — products, prices, photos, shipping, themes, everything. Go to Account Settings → AI Builder to get started. No coding or API key needed.
Do I need a paid ChatGPT subscription to use the AI Form Builder?
No. The AI Form Builder works with any free ChatGPT account. You sign in with your EZFormz account directly — no API key or special setup required.
Does EZFormz have an API?
Yes. EZFormz has a full REST API at ezformz.net/api/v1/ with 30+ endpoints for creating forms, managing products, tracking orders, and more. Create an API key in Account Settings → AI Builder → API Keys tab. Full interactive docs are available at ezformz.net/api-docs.
Can I use Claude to build forms?
Yes. Go to Account Settings → AI Builder → Claude for setup instructions. In Claude, add https://ezformz.net/mcp as a custom connector and sign in with your EZFormz account — no API key needed. Requires a paid Claude plan (Pro, Max, Team, or Enterprise).
Can I be logged in on multiple devices at the same time?
Yes. EZFormz supports unlimited concurrent sessions. Log in on your phone, laptop, tablet — all stay active. Logging out on one device does not affect your other sessions.
© EZFormz. All rights reserved.  |  Terms of Service