Everything you need to know about creating, managing, and publishing order forms with EZFormz.
Get your first order form live in under 5 minutes:
From your Dashboard, click the "+ New Form" button. You'll be asked for:
| Template | Includes |
|---|---|
| Blank Form | Empty canvas — build from scratch |
| Standard Order Form | Products, Name & Email, Address, Payment Instructions, Payment Proof |
| Simple Product Form | Products, Name & Email, Payment Instructions |
| Contact Form | Name & Email, Subject (text), Message (textarea) |
You can also save any form as a custom template and select it when creating new forms.
The form builder has three main areas:
For text-based blocks (Form Header, Heading, Text Box, Agreement), you can edit text directly on the canvas:
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.
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.
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).
Click the Save button (or press Ctrl+S). The save button shows an orange dot when you have unsaved changes.
Click Undo or press Ctrl+Z to revert your last change. EZFormz keeps up to 30 undo steps per session.
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 are the core building blocks of your form. Most are singletons — you can only have one per form.
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.
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.
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.
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.
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.
In Methods mode, each payment method can be shown or hidden without deleting its saved handle/address. You can also set a transaction limit so a method automatically disappears from the buyer form after that many active orders choose it. Cancelled, failed, and refunded orders do not count against the limit.
Turn on Request payment later when you want buyers to submit orders first and pay only after you review totals, MOQ, or availability. Buyers see your custom pay-later message at checkout instead of payment options. From the orders page, click Request Payment on one order or use the bulk action bar to send payment links to selected orders.
Requires the buyer to upload a screenshot or image as proof of payment. Accepts JPG, PNG, GIF, and WebP up to 25MB.
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 are input elements for collecting information from buyers. You can add as many as you need.
| Field | What It Does | What You Can Customize |
|---|---|---|
| Heading | Display-only section title | Text (edit directly on canvas) |
| Short Answer | Single-line text response | Label, placeholder hint, required or optional |
| Long Answer | Multi-line text response | Label, placeholder hint, required or optional |
| Number | Numeric input | Label, placeholder text, required or optional |
| Dropdown | Select one option from a list | Label, list of choices, required or optional |
| Single Choice | Radio buttons — pick one | Label, list of choices, required or optional |
| Checkboxes | Checkboxes — pick several | Label, list of choices, required or optional |
| Image Choice | Pick from clickable image cards | Label, images with captions, allow one or multiple, required or optional |
| Multiple Choice | Searchable dropdown, pick multiple | Label, list of choices, required or optional |
| Poll | Poll-style voting with results | Label, list of choices, required or optional |
| Phone | Phone number with auto-formatting | Label, placeholder text, required or optional |
| Price / Currency | Currency amount with $ prefix | Label, placeholder text, required or optional |
| Date | Date picker | Label, required or optional |
| Time | Time picker | Label, placeholder text, required or optional |
| Slider | Draggable slider for a number | Label, min/max value, step size, starting position, show/hide value, required or optional |
| Star Rating | 1–5 star rating | Label, required or optional |
| File Upload | File upload (images) | Label, required or optional |
| Agreement | Checkbox the buyer must check | Text (edit on canvas), required by default |
| Text Box | Display-only text (disclaimers, info) | Content (edit directly on canvas) |
| Hyperlink | Clickable link | Link text, URL |
| Hidden Field | Invisible — captures data automatically | Name, default value, URL parameter |
| Calculation | Auto-calculated from other fields | Label, formula, display as number/dollars/percent |
After adding one of these fields, click it to open the properties panel. You'll see an options list where you can:
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 percentageOutput formats: Number, Currency ($), or Percent (%).
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.
A horizontal line to visually separate sections of your form.
Display an image on your form. Paste a URL or upload an image file. Great for banners, product photos, or instructions.
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.
Splits your form into multiple pages. See Multi-Page Forms for details.
The Products block is the core of any order form. Here's how to set it up:
Each product has one or more variants (also called options). Each variant has:
Each variant can have a sale price with optional start and end dates:
Click "Clear Sale" to remove a sale and revert to the regular price.
http:// / https:// URLs and normal bare domains are accepted.40/100. The count is display-only and comes from existing order history; it does not change stock, totals, checkout, or payment status.Click "Bulk Add" to paste a list of products. Supported formats:
Product Name - $29.99Product Name, 29.99Product Name | Description | Category | $29.99Each line becomes a product with one variant.
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.
For large catalogs, use "Import CSV". Download the template CSV first to see the expected format. Columns:
| Column | Required | Description |
|---|---|---|
| product_name | Yes | Name of the product |
| description | No | Product description |
| size_label | No | Volume / Size line shown under the product name |
| product_url | No | Optional product info / CoA link. Full http(s) URLs or bare domains like www.example.com are accepted. |
| product_url_label | No | Public label for the product link |
| show_sold_goal | No | Use 1/yes to show a public sold-goal progress bar |
| sold_goal_quantity | No | Goal target shown as sold / goal; display-only |
| category | No | Product category for filtering |
| option_label | Yes | Variant name (e.g., "Small") |
| price | Yes | Price (number, no $ sign) |
| stock | No | Stock quantity (blank = unlimited) |
Multiple rows with the same product_name are grouped as variants of the same product.
Add the standalone MOQ Progress block when you want buyers to see group-buy progress without changing how products are selected. The block can show all products with sold goals, or only the specific products you select, with one progress row per product.
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.
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.
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.
Add shipping methods and add-ons to your form. The shipping editor is found in the Products block properties panel.
| Type | How It Works | Example |
|---|---|---|
| Method | Radio buttons — buyer picks exactly one | Standard ($5), Express ($15), Overnight ($25) |
| Add-on | Checkboxes — buyer can select multiple, with optional quantity | Insurance ($3), Signature Required ($2), Gift Wrap ($5) |
Methods are mutually exclusive (pick one). Add-ons stack on top of the selected method.
Shipping costs are added to the order total and shown in the cart summary. Required add-ons are enforced when the buyer submits, so stale browser tabs cannot skip a required insurance/admin-fee style add-on.
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.
EZAK) or a test key (EZTK) if you're just trying it out.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.
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.
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.
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
.xlsx) — upload it as-is; EZFormz parses Excel and CSV.PirateShip's own docs on customising export columns →
.xlsx or .csv).EZFormz walks down this ladder for every CSV row until it finds a unique match:
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).
| Option | Values |
|---|---|
| Font | 28 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 Size | 15 presets from 10px to 64px |
| Weight | Regular, Medium, Semi-bold, Bold |
| Alignment | Left, Center, Right |
| Letter Spacing | Tight, Normal, Wide, Extra Wide |
| Line Height | Compact, Normal, Relaxed, Double |
| Font Color | Any color (hex picker) |
| Background Color | Any color (hex picker) |
| Text Decoration | None, Underline, Strikethrough, Italic |
| Opacity | 10% to 100% |
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.
The Theme Engine lets you customize the look and feel of your entire form at once. Find it in Settings → Appearance.
Set your primary/accent color (used for buttons, links, and focus rings), page background, form card background, and text color.
Choose a font family that applies to the entire form. Individual blocks can still override it with per-block styles. Header text can also use display effects such as shadow, letterpress, ink stamp, outline, neon, foil, and prism while body text stays readable.
Customize button background color, text color, corner shape (square, rounded, or pill), and optional border.
Style all text inputs, dropdowns, and textareas at once — border color, background color, focus ring color, and corner shape.
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.
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.
Pick built-in texture and depth backgrounds such as velvet, suede, marble, frosted glass, hammered metal, plaster, leather grain, quilted satin, pearl sheen, water, resin, wax, gemstone, and ceramic glaze without uploading your own image.
Set the form width (narrow, medium, standard, wide, or full width) and the spacing between sections (compact, normal, relaxed, or spacious).
Style the form's primary submit button separately from the rest of the theme when you want it to stand out or match a specific brand color.
Add a decorative border around the entire form. Choose color, width, style (solid, double, dashed, dotted, groove, ridge), and corner shape.
Customize divider line color and style, as well as the cart summary box's border and background colors.
Pick a one-click preset to instantly style your form. Available presets:
You can fine-tune any preset after applying it. You can also save your own custom themes to reuse across forms.
Split long forms into multiple pages to improve the buyer experience.
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.
Click "× Remove Page" in the page header. The blocks from that page merge into the previous page.
Show or hide fields based on what the buyer enters in other fields.
Add multiple conditions and choose:
The value input adapts to the source field type:
Click the SETTINGS tab in the builder header to access all form settings.
Choose how you're notified when orders come in:
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.
| Variable | Replaced 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.
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.
The Appearance section contains the full Theme Engine. You can also set:
Connect a Google Sheet to automatically sync orders. See Google Sheets Integration for setup details.
Templates save your form layout and products so you can reuse them.
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.
Click "Load Template" in Settings. Choose from built-in presets or your saved templates.
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.
Click the PUBLISH tab in the builder header to access all sharing options.
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.
A scannable QR code is generated automatically for your form link. You can:
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.
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.
Use Settings → Submission Limits → Open Date when you want to announce a drop before it starts. The form can stay published and shareable, but buyers see a countdown page until the scheduled open time. When the countdown reaches zero, the page reloads and the normal order form appears.
Click "View Orders" from the builder or dashboard to see all submissions for a form.
Each order shows:
Each order has a status you can update:
| Status | Meaning |
|---|---|
| Pending | New order, awaiting action |
| Paid | Payment received, ready to process |
| Ordered from vendor | Items have been ordered from your supplier or are being processed before shipment |
| Shipped | Order has been shipped |
| Direct Vendor Shipped | Drop-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. |
| Completed | Order delivered and finished |
| Cancelled | Order 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.
The orders page can sort by date, customer name, amount, status, payment method, and bundles-first ordering. Select multiple orders from the same form to create a fulfillment bundle: EZFormz keeps the backend orders separate, but shows one grouped packing unit with shared print/select/unbundle actions. The copy icon on an order row copies the buyer name, full shipping address, phone, and email in one block for manual paste into PirateShip or another shipping tool.
Add tracking numbers to any order. Put one tracking number per line for split shipments; buyers see each number as its own tracking link, and connected Google Sheets store them together in the Tracking column. When you save tracking, 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 →").
Add private notes to any order. These are only visible to you (the seller) and are never shown to the buyer.
Send a custom email to any customer directly from the order card. The message is sent from your form's email address.
Resend the order confirmation email to the buyer (and optionally to yourself).
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.
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.
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), item lines with quantity, product, and variant, then totals and an optional tracking line.
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.
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:
Overpaid orders aren't flagged — the buyer paid the price they were quoted, so no action is needed.
If a form is set to request payment later, orders can be submitted without checkout payment proof. After you review MOQ, inventory, or the final order, click Request Payment on the order card to email the buyer a pay link. The buyer chooses from your currently available payment methods, any method surcharge is calculated into the final total, and they upload proof or enter a transaction ID.
Use the order checkboxes and the bulk action bar to request payment for many selected orders at once. Re-clicking Request Payment resends the same active unpaid link instead of creating duplicate pay links. Once a buyer has selected a method, use Change Payment or the balance workflow for later payment changes. If an order already has a red balance-due card, click Resend on that card to email the active balance link again.
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.
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.
View aggregate product quantities across all orders to see which items are most popular.
Logged-in buyers can view all their placed orders at ezformz.net/my-orders.
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.
Once you have a few orders, the toolbar gives you ways to keep the main view focused on what's still active:
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 are account-scoped, not per-form. They follow you across every order form you create — helpful trust signal that compounds over time.
ezformz.net/r/your-slug.Open the dashboard's Reviews widget or visit /reviews to see every review (including spam-flagged):
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.
You get an email every time a new review lands so you can reply quickly.
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.
When the requested edit raises the total, you get two approve buttons:
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.
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.
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.
Each form has its own analytics page showing performance data. Access it from the dashboard or builder.
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.
ezformz-sheets@ezformz-integrations.iam.gserviceaccount.com
Standard columns: Order ID, Date, Customer Name, Email, Status, Items, Shipping, Coupon, Total, Shipping Address, Notes, and Tracking.
Plus dynamic columns that expand automatically:
EZFormz also maintains a TOTALS row under the header with sum formulas for product quantities and count formulas for checkbox/poll options.
Every connected sheet also gets derived Product Summary and Order Items tabs that rebuild from the current EZFormz order data.
When you first connect a sheet, existing historical orders wait for you to click Reconcile now or Rebuild from scratch. This prevents a pasted URL from immediately backfilling an unverified sheet. Duplicate rows are detected by order ID and skipped, so Reconcile is safe to run more than once.
The current Sheets setup uses one standard layout: one row per order on the main Orders tab, plus Product Summary and Order Items tabs. Use Rebuild from scratch when you want an older sheet rewritten into the current layout.
Once a sheet is connected, the Integrations panel shows toggles for fine-grained control:
The orders page shows a per-order chip:
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.
Use collaboration when someone should help manage a form while you remain the owner. Use transfer only when ownership should move to another EZFormz account.
Collaborators see shared forms on their dashboard with a Shared badge. The form owner can revoke access from the same collaborators modal.
| Role | Best For |
|---|---|
| View only | Someone who needs read-only access to form and order details. |
| Fulfill orders | Helpers who pack orders, update status/tracking, message buyers, and export order data. |
| Manage inventory | Someone updating product stock, prices, products, options, shipping, and coupons. |
| Edit form | Someone editing form fields/design and products, without owner-only publishing or Sheets controls. |
| Manager | A trusted helper who can edit the form, manage orders, message buyers, export data, and view analytics. |
Shared forms include an internal discussion panel so owners and collaborators can coordinate on that form without exposing notes to buyers.
Transfer is available from the dashboard form … menu when a form has no orders. It moves the form definition, products, options, shipping options, coupons, theme, and custom thank-you settings to another existing EZFormz user. The recipient has 7 days to accept or decline. Once accepted, the original owner loses access.
Buyers can save their progress on a long form and come back later to finish.
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.
Requirements: a free ChatGPT account. No paid subscription, no API key.
https://ezformz.net/mcpRequirements: 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.
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:
Once connected, the AI can:
It cannot access your email, password, login sessions, payment details, or any other accounts you've connected (like Google Sheets).
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.
EZFormz has a full REST API that lets you create and manage forms programmatically. This is useful for developers, automation tools, and advanced integrations.
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
| Action | Method | Endpoint |
|---|---|---|
| List forms | GET | /api/v1/forms |
| Create form | POST | /api/v1/forms |
| Get form detail | GET | /api/v1/forms/{id} |
| Update form | PUT | /api/v1/forms/{id} |
| Publish form | POST | /api/v1/forms/{id}/publish |
| Add products | POST | /api/v1/forms/{id}/products |
| List orders | GET | /api/v1/orders |
| Update order | PATCH | /api/v1/orders/{id} |
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.
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.
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.
Your Dashboard is the home base for managing all your forms and getting a quick overview of your business.
The dashboard features customizable widgets you can rearrange and collapse:
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).
Two layouts to pick from (toggle in the toolbar — Cards | List):
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.
/edit/{id}#settings/orderEdits opens the Order Edits subsection directly.Manage your account at ezformz.net/account.
For privacy, you can configure automatic data deletion:
Auto-delete runs daily. Deleted data cannot be recovered.
Permanently delete your account and all associated data (forms, products, orders, images, templates, themes). This action is irreversible.
Sign-in defaults to a 6-digit email code. If your email is ever compromised, the attacker has your account too — the email code alone isn't enough. Two-factor authentication and passkeys both add a second layer that the attacker won't have.
Find both options at ezformz.net/account#security.
2FA adds a 6-digit code from an authenticator app on your phone, in addition to the email code. Compatible with Google Authenticator, Authy, 1Password, Bitwarden, and any other TOTP app.
To enable:
Sign-in flow with 2FA on: email → email code → authenticator code → in.
Lost your phone? Enter one of your recovery codes at the second-factor prompt instead. Each code works once.
Want to change phones? Disable 2FA from settings (you'll need a code or recovery code), set up your new phone, then enable 2FA again.
Passkeys are the modern replacement for passwords. You tap your phone, laptop, or hardware key with biometric (Touch ID, Face ID, Windows Hello) and you're signed in. No email code needed.
The big security win: passkeys are phishing-resistant. A fake site that looks like EZFormz can't get a valid signature from your device — the browser checks the domain itself.
To register a passkey:
Your passkey is stored by your password manager (or your device's built-in keychain). If that manager syncs across your devices, the same passkey works everywhere you're logged into that manager. You don't need to register a separate passkey per device.
Common synced password managers that handle passkeys:
So registering once in your password manager is typically all you need.
None of this is required. One synced passkey is fine.
On the login page, click Sign in with passkey — your browser will offer whichever credential matches your domain. If you have multiple registered, it'll let you pick.
You can have 2FA and passkeys enabled. Recommended setup:
If you lose any one device, the others still work.
In order of preference:
Many platforms let you click an email link to disable 2FA. We deliberately don't — email compromise would then equal 2FA bypass, defeating the entire feature. Industry leaders (GitHub, 1Password, Apple) take the same line. Manual admin reset with identity verification is the trade-off for actually-meaningful 2FA.
If you try to delete your only passkey while you don't have 2FA on, EZFormz refuses with a warning. Same the other way around. Add a backup factor first, or you'll lose your second-factor protection without realizing.
Every time MFA changes on your account — 2FA enabled/disabled, passkey added/removed — you get an email with the IP address and timestamp. If you didn't make the change, that email is the canary that tells you to act fast.
| Shortcut | Action |
|---|---|
| Ctrl+S | Save form |
| Ctrl+Z | Undo last change |
| Escape | Deselect current block / exit inline editing |
| Ctrl+B | Toggle bold (while inline editing) |
| Ctrl+I | Toggle italic (while inline editing) |
| Ctrl+U | Toggle underline (while inline editing) |
On Mac, use Cmd instead of Ctrl.
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.
{Quantity} * {Price}. The result updates automatically as buyers fill in the form. You can format the output as a number, currency ($), or percentage (%).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.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).