Everything you need to know about logging in, securing your account, and managing order forms with EZFormz.
EZFormz uses email login codes by default. There is no account password to remember for normal production sign-in.
The email comes from noreply@ezformz.net. The subject line includes the code, like 123456 is your EZFormz login code.
EZFormz, noreply@ezformz.net, or login code.noreply@ezformz.net.The normal email login code and a two-factor authentication code are different.
If 2FA is enabled, the login flow is: email address → email code → authenticator app code.
If an authenticator code is rejected, check that your phone time is set automatically, then wait for the next code in the app and try again on the same screen. After too many invalid attempts or if the sign-in expires, request a fresh email code.
When you enable 2FA, EZFormz shows 10 recovery codes one time. Save them somewhere safe. If you lose access to your authenticator app, click Use a recovery code instead at the second-factor screen and enter one of those saved codes.
Each recovery code works once. If you can still log in, you can regenerate recovery codes from Account → Security.
2FA cannot be reset automatically by email. That is intentional: if someone broke into your email, an email-only reset would let them bypass 2FA. Submit a support ticket; you will be asked to verify ownership of the account before 2FA is reset.
A passkey lets you sign in with your device or password manager instead of waiting for an email code. Use Account → Security → Passkeys to add, rename, or remove passkeys. If your password manager syncs passkeys across devices, one saved passkey can work on multiple devices.
Forms stay with the account email that created or owns them. If you accidentally create two accounts, log in with the email that owns the form you need. Contact support if an unused account should be deleted or if ownership needs to be reviewed.
The Account page controls your profile, reusable defaults, saved payment methods, security, sessions, exports, and connected apps. Open it from the top-right account menu or go directly to ezformz.net/account.
Profile is where you manage your account email, display name, business name, and saved checkout profile. Saved checkout info can speed up buyer forms when you are signed in, but it does not overwrite a seller's required form questions.
If you change your account email, EZFormz sends a verification code to the new email first. If 2FA is enabled, you also need your current authenticator code or a recovery code.
Notifications controls account-level notification channels. Form-level order notifications are still managed inside each form's settings, so one form can notify you differently than another.
Your account timezone is used for account-facing dates and defaults when EZFormz needs to show or prepare a local time for you. If no timezone has been saved yet, the dashboard detects the current browser timezone and saves it automatically. You can choose a different timezone here at any time; a timezone you select manually takes precedence. Individual forms can still have their own scheduled open and close timezone settings.
If order times, scheduled launches, or dashboard dates look off by hours, check Account → Timezone first.
Form Defaults lets you set reusable defaults for new forms. These settings help new forms start closer to how you normally work.
Payments stores reusable payment methods such as Venmo, Cash App, PayPal, Zelle, Wise, Apple Pay, crypto wallets, QR images, buyer notes, logos, and surcharges. In the builder, the Saved payments button copies selected account methods into the current form.
Copied payment methods are independent per form. You can change buyer visibility, transaction limits, and form-specific settings without changing the saved account version.
Connected Apps shows external tools that have been connected to your account, such as AI builder/API connections. Revoke access here if you no longer use a tool or if you do not recognize a connection.
Revoking an app stops that app from making future account actions. It does not delete your forms or orders.
Export Data creates a download of your account data for backup or review. Use this before deleting an account or when you want a local copy of your forms, products, orders, and account settings.
Sessions lists active sign-ins for your account. If you used a shared device, lost a device, or see a session you do not recognize, sign that session out from this page.
Changing your login email, resetting security settings, or removing suspicious sessions can help lock down the account after a concern.
Invite-only access is set inside the form builder under Settings → Security. Buyers must be invited by email before they can access the form. You can send, revoke, and limit invites per form.
EZFormz support is for website technical support only: account access, site errors, broken tools, upload problems, or bugs on ezformz.net.
Submit Support Ticket My Support Tickets
Use My Support Tickets to see status, a conversation-style reply thread, and uploaded screenshots. When EZFormz support replies, you will also receive a short email notice with a secure ticket link; the email does not include the reply text. Add follow-up details in the ticket instead of sending support emails.
For login-code problems, include the account email and the approximate time you requested the code. EZFormz can check whether the message was accepted, bounced, blocked, or marked as delivered.
Two-factor authentication and passkey recovery may require ownership checks before an admin can reset anything. That protects the account if someone else gains access to the email inbox.
If you report a fake payment proof, payment dispute, impersonation, spam, or other abuse, include the order link and any screenshots or transaction details you have. You can also use the public Report an issue page, which asks for your email, the reported party, category, summary, details, and optional evidence files. EZFormz keeps the report, order, timeline, and uploaded proof available for support review.
When support confirms abuse, the reported account or email may be blocked from logging in, using connected-app access, and submitting new orders. Historical orders and reports stay in place so sellers and support can review what happened.
Before reporting a possible outage, check System status. It runs live checks for the public API, auth service, and static assets, then refreshes automatically about once per minute.
Use Submit Support Ticket for EZFormz bug reports, feature requests, or website technical notes. The dashboard also has a widget request form for suggesting a new dashboard card or metric; include the exact decision you want that widget to help with.
The Support EZFormz page accepts direct support through Cash App, Ethereum mainnet, or Solana. After sending, you can optionally report the amount and payment reference and share a name, email, Telegram username, or Discord username so the team can identify and reconcile your contribution. Donations are not required to use EZFormz, do not change account access, and are not processed by 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:
Click a block to edit it. To reorder, use the ☰ grab icon in the block header: on desktop, drag it to open a compact section picker so you can drop the block anywhere in the form without scrolling through full cards; you can also drop directly on the canvas. On phones, long-press the grab icon to open the same picker, drag to the desired spot, and release to place it. 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.
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. A merged group moves as one boundary: when you move another block up/down or drop it near the group, it lands above or below the whole group unless you deliberately use the group's internal drop zone. 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).
Changes appear in the editor and Preview immediately. EZFormz quietly protects your work after you pause, without refreshing the page or interrupting what you are editing. Click Save changes (or press Ctrl+S) when you want buyers to see the current version.
When Builder opens, EZFormz privately registers the exact live version that tab started from before autosave can create a recovery draft. If a connected app, API, collaborator, or another tab changes the form while you are only reviewing it, the clean Builder refreshes to that newer live version and keeps Save changes disabled. If you have started editing, your work stays in place and EZFormz combines it with the external change when you Save.
If Builder says Unpublished work from another session is available, the live form is still open and nothing has been applied. Choose Resume unpublished work to move one protected draft into this tab, or Continue with the live form to leave every draft untouched and keep reviewing live state. Choose Discard my unpublished changes only when you want EZFormz to archive and remove all of your unpublished drafts for this form. That action does not remove a collaborator's work. You do not need to clear your cache, use a private window, disconnect ChatGPT or another integration, or manage browser sessions yourself.
One save applies form settings, products and variants (including deletions), stock settings, shared-inventory links, shipping, coupons, payment instructions, and layout together. Undo restores your content without rewinding the form's hidden save version. Each open tab protects its own work; independent changes are combined automatically, and your latest Save wins when both places changed the same ordinary setting—there is no merge step to manage. Product, variant, Coupon, Sale, P&L cost, or Inventory changes made through another EZFormz tool receive the same protection. If a Coupon was deleted or recreated while an older tab remained open, EZFormz follows that tab's protected starting version: an untouched deletion stays deleted, while an edited replacement keeps its current identity. Coupon use counts and budget usage continue updating normally while you edit. If orders change stock while the builder is open, EZFormz keeps the order adjustment and applies your stock adjustment over the new quantity; a final guarded check prevents an order from being overwritten. Discarded unpublished drafts remain recoverable in Version history, and restoring one preserves its protected Coupon history for review before anything is published again.
If a very old recovery draft has lost the protected starting version needed for a safe merge, EZFormz will pause autosave instead of guessing or changing the live form. Click Save changes to review the warning. You can keep the old draft paused, or archive it in Version history and reload the current live form before editing again. Unreadable recovery data is kept privately for support review rather than being published.
If support performs a fresh start for a form, the version already live at that moment becomes its only starting point. Older drafts and Version history for that form are removed, older browser recovery is cleared, and an already-open old tab cannot save over the fresh starting point. Current Builder pages reload the live version automatically.
The Publish tab lists earlier saved versions. Restoring a version opens it in the editor for review; click Save changes to make the restored version live.
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. Preview uses the same public form renderer as the live page and includes your current builder state: theme, header/background images, every field type, merged groups, products, shipping options, product sale/bulk settings, buyer low-stock display, payment methods, coupons, and multi-page steps.
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 and can be made optional in the properties panel. Turn on Confirm Email to add a second "re-enter your email" field that must match before the buyer can submit — a simple guard against typos that would otherwise bounce the confirmation email. You can also collect platform usernames for Telegram, Discord, WhatsApp, TikTok, or a generic supported platform; selected platforms render as separate labeled fields on orders, invoices, buyer receipts, and Sheets exports.
Collects a shipping address. In the Shipping Address properties panel, use Required address fields to choose whether Street, Apt / Unit, City, State / Province, ZIP / Postal, and Country must be completed. The main Required toggle controls the block as a whole. By default, the public form uses the US address layout with a State dropdown and ZIP Code field. Turn on Accept International Addresses to add a Country selector, allow province/region text, and use Postal Code wording for non-US buyers.
All fields except Street 2 are required by default for US addresses. International addresses require Street, City, and Country; province/region and postal code stay optional because not every country uses the same format. The entire section can still 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, Cash App, generic Cash, Zelle, PayPal, Wise, crypto, or custom) with handle/address and optional logo, buyer note, QR image, transaction limit, and surcharge settings. Each card keeps its destination visible while secondary controls stay organized under Buyer display & instructions and Limits & surcharge. Crypto cards additionally group token/network and verification settings into their own expandable rows. 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. After that many active orders choose the method, it stays visible to buyers but is grayed out and labeled Usage limit reached, so buyers can see that the option exists without selecting it. Cancelled, failed, and refunded orders do not count against the limit. If two methods share the same buyer-facing name, EZFormz uses the saved handle, address, or network behind the scenes so preview, checkout, emails, and pay links keep the selected method straight.
For pay-before-submit forms, checkout confirms current product, sale, shipping, coupon, and payment-method pricing before showing payment details, accepting payment proof, or submitting. If a buyer keeps a form open while prices change, EZFormz refreshes the cart and asks them to review the current total before they pay.
Turn on Request payment later when you want buyers to submit orders before payment details are shown. Choose Send payment link immediately to check stock at submit and redirect the buyer to a 30-minute payment page, or choose Seller sends payment link later when you need to review the order, add custom shipping, or confirm availability first. Immediate links show payment method names and fees before submit, but keep handles, wallets, and links hidden until the order is accepted.
Crypto methods can also opt into Run on-chain check after submit, which checks future submitted crypto payments after checkout or balance payment and shows the advisory result on the Orders page. See Crypto Payments & Verification for the full setup and review flow.
Requires the buyer to upload a screenshot or image as proof of payment. Accepts JPG, PNG, GIF, and WebP up to 25MB. Buyers can also add another proof or TXID later from My Orders; that follow-up modal shows the form's active payment methods so the seller can see which option the buyer used. For crypto methods, proof upload remains required even when transaction ID collection or on-chain checking is enabled; the on-chain result is a review aid, not a replacement for proof review.
Optional: turn on Auto-mark paid when verified in the Payment Proof block or in Settings → Payment Proof. After you verify an incoming payment that fully covers the remaining balance on a pending order, EZFormz can move that order to Paid/Confirmed and sync the status to Google Sheets. Partial payments and evidence-only or refund rows do not mark the order paid. The first time you verify proof with the setting off, the Orders page asks whether you want to enable the shortcut for that form.
Adds a coupon-code field and opens Manage Coupons. Every coupon is manually entered by a buyer; automatic discounts are sales and are configured under Products → Sales. Give coupons a searchable name/campaign, edit or duplicate them, and pause/resume them without changing completed orders.
Multiple coupons: turn on Allow Multiple Coupon Codes in the Coupon Code block when a form should let buyers stack up to 5 codes on one order. Each applied coupon shows as a removable chip under the field, and the cart lists one discount line per code. Discounts don't compound: each percent coupon applies to its own eligible item subtotal (so a 20% coupon on category A and 15% on category B each discount their own items), and the combined discount can never exceed the items subtotal. Use limits are tracked per code, and cancelling an order releases every coupon it used. Unlimited coupons can be used on repeat orders by the same buyer. Sellers can add/remove individual coupons or manual discounts from an order through the Edit Order controls; EZFormz protects the saved promotion accounting snapshot from direct replacement so later edits, cancellations, and reports keep using the same history.
If a buyer changes their email after applying coupons, EZFormz rechecks all applied codes against first-order and per-customer rules and removes any that no longer qualify. Order submission always performs one final server check of every promotion, price, limit, schedule, target, budget, and stacking rule before reserving the order.
Eligibility and rewards: qualify the whole order, selected categories, products, or variants; then require a minimum quantity or eligible merchandise subtotal. Qualifier exclusions keep selected categories, products, or variants from satisfying the requirement. Reward exclusions separately keep selected items from receiving the discount or gift; exclude an item in both places when it should do neither. Discount every qualifying item, the lowest-priced N items, the highest-priced N items, or use Buy X Get Y. For example, choose the Vials category and Highest-priced N = 1 to offer 50% off the highest-priced vial without discounting Supplies. The rewarded products/categories/variants may be the same pool or a different pool. A fixed value with Discount the eligible items is taken once per order. Fixed-per-eligible-unit and Highest N rewards cap each selected item at its price; existing Lowest N and Buy X Get Y definitions retain their established calculation. A product or variant still targeted by any saved Coupon or Sale cannot be deleted by itself, even while that offer is paused, scheduled, or ended; update/remove the promotion target first, or remove both in the same Form Builder save.
Buy more, gifts, and bundles: quantity tiers let you set several item-count breaks with fixed or percentage savings; when several match, EZFormz gives the buyer the greatest savings, using the higher threshold if two choices save the same amount. A gift-with-purchase makes selected gift units free after the qualifying quantity or spend is reached. A bundle requires items from at least two separate product or variant groups, then discounts the configured bundle reward. Gifts, bundle components, and separate bundle rewards must already be in the cart—EZFormz never adds a product automatically. You can award one gift/bundle or explicitly repeat it for every complete qualifying group.
Effects and controls: combine a product discount, shipping discount/free shipping, and payment-surcharge waiver. Each use, customer, cap, and budget control explicitly starts as Unlimited; choose Set a limit to enter a value. Start/end times are shown in your browser's timezone, and the list distinguishes Active, Scheduled, Ended, Paused, uses-exhausted, and budget-exhausted promotions. Stackable coupons can combine; an exclusive coupon cannot combine with another coupon, advanced automatic offer, or manual discount. Form-wide sale compatibility follows that sale's coupon setting. Gift and bundle promotions are always exclusive. Checkout rechecks every rule and reserves usage/budget atomically, so two buyers cannot both consume the last use or dollar. If the cart stops qualifying, its product, shipping, and fee benefits all stop together, and the buyer sees the missing quantity, spend, gift, or bundle component instead of a generic invalid-code message.
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 and optional description lines, 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, optional description lines, required or optional, allow multiple selections, ask quantity per option, show option images, image size |
| Phone | Phone number with auto-formatting | Label, placeholder text, required or optional |
| Currency Amount | Reference amount with $ prefix; it does not change the order total or P&L | 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 |
| Countdown Timer | Display-only timer that counts down to a date and time | Label, helper text, target date/time, timezone |
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. Use the Display size setting (Full / Large / Medium / Small) to control how big the image appears — smaller sizes are centered so a large image does not dominate the page.
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.
Adds a live countdown inside the form. Set the text, target date and time, and timezone; buyers see days, hours, minutes, and seconds until the selected moment.
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 can have up to 8 photos. Upload additional photos from the product image area, add a short description/alt line for each photo, and mark any photo as featured. The featured photo still populates the legacy image_url field for older integrations, while the full ordered gallery is saved with the product.
Buyer-facing product photos are contained so the full image stays visible instead of being cropped. When a product has more than one photo, buyers see a carousel — one photo at a time with left/right arrows, dot indicators, and swipe on touch — instead of a thumbnail grid. Tapping the photo enlarges it, and the enlarged view can be paged through every photo (arrows, keyboard, or swipe) starting on the one tapped. The existing Products block Image Size setting still controls the gallery frame shape.
When a form has several products, the Products tab shows a product/category list beside the product cards on desktop. Drag the thin handle between that list and the product cards to make the list wider or narrower; drag it all the way left to collapse it, and double-click the handle to reset the width. The width is remembered per form in your browser.
Each variant row has compact visibility and private-note controls. Use the eye icon to hide or publish that variant without hiding the whole product. Use the sticky-note icon to add an owner-only reminder; a filled yellow note indicates saved text. Private notes never appear to buyers, collaborators, orders, exports, or integrations.
Each product has one or more variants (also called options). Each variant has:
Open Inventory from the main dashboard navigation when multiple forms should sell from the same quantity on hand. During beta, Inventory only appears for enabled accounts. Create an inventory set, add items and quantities, then link a form to that set. A form uses either local stock or one shared inventory set; v1 does not mix local and shared stock on the same form.
The Inventory page opens on the Items workspace, where you can search, sort, and filter items by all, low stock, out of stock, linked, or unlinked. Select items to open the compact bulk-action bar: Stock Count, Bulk Adjust, Set Low Alert, Export Selected, and Add To Form. Stock Count is one browser session and applies all selected counts together; if an order or adjustment changes QOH while you count, the whole count pauses for review instead of partially saving. Use the Audit Trail tab to search grouped count and adjustment batches, then choose Load More to page through older history for the selected set.
For large shared-inventory sets, use Import CSV on the Inventory page. The Inventory CSV template accepts name, sku, quantity_on_hand, low_stock_threshold, and note. It creates or updates up to 200 inventory items per import in the selected set only; it does not create form products or link forms. If QOH changes while an import is being saved, the import stops for review instead of overwriting the newer count.
To reuse an existing form's products, use Import From Form on the inventory set. This copies that form's product options into the selected inventory set without linking the form. Use Import + Link when you want to copy a selected form's products into the set and review the shared quantity links in the same step.
To add inventory items to a linked form, open that form's Products block and click Add From Inventory. The builder opens a picker with items from the linked inventory set. Select the items to add, or group selected items as variants under one product. New products start unpublished with $0 placeholder prices, so set their retail prices and details in the builder, then publish them when they are ready for buyers. Inventory also has an Add To Form tool for managing selected items from the inventory workspace.
One shared inventory item can feed several selling options on the same form or different forms, even when every form uses a different price. Open Review Links on Inventory and set Units per sale for each option: for example, Single = 1, Half Kit = 5, Full Kit = 10. With 47 base units on hand, those options show 47, 9, and 4 sellable. The Full Kit becomes out of stock below 10 base units. Checkout combines every selected option using that same item before accepting the order.
When a form uses shared inventory, product prices, photos, sales, max/order, and product copy still belong to the form. Base QOH, Units per sale, sellable quantity, and Low Alert are read-only in product settings and are managed from Inventory. Changing Units per sale affects future orders; existing orders keep the item, set, and factor they were sold with so edits, cancellations, and deletes restore the correct base units even after the form is unlinked or relinked.
Draft forms may be linked while some products are still being prepared. Before a shared-inventory form can be published—or before an active form can change its inventory link—every published option must be linked, have a retail price above $0, and belong to a product with at least one published option. Unpublish an option while preparing it. When unlinking, review every option's local starting stock and confirm that the counts become independent. Options using one item share one finite QOH budget, so their weighted local counts cannot add up to more than the shared QOH. Unlinking does not reduce QOH still used by other forms. Unlink forms before deleting a linked inventory set, and unpublish or unlink a live product option before deleting its inventory item.
Products CSV import cannot change stock or Low Alert for shared-inventory forms. CSV export leaves the writable stock columns blank and adds read-only inventory columns so you can review the linked item and current quantity without accidentally overwriting QOH.
Owners can add an optional cost on each variant from the Products block P&L tab or Account → Profit & Loss. These fields are private to the owner, do not show to buyers, and do not change checkout prices.
New orders save the cost snapshot that applied at the time of order, so later cost changes affect future orders instead of rewriting old profit history. Collaborators cannot see or edit cost fields.
To control the public "X left" label, open the form in the builder, click the Products block, then go to Products Properties → Display → Buyer Low Stock Display. The default is 5, meaning buyers see "5 left", "4 left", etc. when stock reaches that number. Set it to 0 to hide the buyer-facing low-stock label while still keeping seller Low Alert notifications on each variant.
If Max/Order is set on a variant, the qty picker is capped and the buyer sees a small "Max N per order" hint next to the price.
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.
For product or variant bulk pricing, percent tiers reduce each matching unit by that percent. $ off each subtracts the fixed amount from every qualifying unit. Variant tiers also offer $ off line total, which subtracts the amount once from that variant's whole line. For example, 3 × $250 with $20 off each totals $690, while $20 off line total totals $730, before shipping, coupons, and payment fees. One-time line discounts are variant-only because a product-level threshold can span several variants.
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.Each product carries a small status pill in its header so you can tell at a glance whether buyers can see it right now.
Open Settings → Limits to set hard checkout limits for item quantity, product subtotal, or final order total. Buyers see the limit message in the Order Summary and cannot submit until the current cart is inside the configured range.
Product subtotal limits use product and variant prices after product-level bulk discounts and any form-wide sale, but before coupons, shipping, shipping discounts, and payment fees. Order total limits use the exact amount shown for submission after discounts, shipping, and fees; when an immediate pay-later link adds a payment fee, that visible fee counts too. Existing orders and seller edits are not recalculated against new checkout limits; they only gate new checkout submissions.
Click the Products block, then open the Sales tab to set discounts that apply across the whole form. You can add product-subtotal tiers (for example, $100+ gets 5%) and item-quantity tiers (for example, 5+ items gets $10 off), using percent or fixed discounts. When more than one tier matches, the highest-value matching discount is used.
For more targeted automatic sales, use Advanced automatic offers in the same Sales tab. These offers can qualify or exclude selected categories, products, or variants; require quantities or eligible merchandise subtotals; discount all eligible items, the lowest-priced N, or the highest-priced N; run Buy X Get Y; choose the best quantity tier; offer a cart-present gift; build a multi-product bundle; discount shipping; waive payment surcharges; and use schedules, stacking, customer/use limits, caps, campaigns, and total budgets. Buyers never enter a code for these offers. The highest-priority eligible exclusive automatic sale replaces other automatic offers, while stackable automatic sales can combine. Gift and bundle offers are always exclusive.
The sale calculation uses product subtotal and product quantity only. Shipping, shipping add-ons, quote-after-order shipping, payment surcharges, and coupon discounts do not count toward the sale threshold. When product, variant, or bulk pricing also applies, choose Keep only the better discount, Stack with product and variant promos, or Replace product and variant promos. Stacking uses the already-discounted product subtotal for the spend threshold and applies the form-wide tier on top; the other two modes calculate the form-wide result from regular prices.
If free shipping is the only benefit you configure, it changes shipping only: existing product, variant, sale-price, and bulk discounts remain in the cart regardless of the catalog-interaction setting. The free-shipping threshold uses the discounted product subtotal the buyer is actually paying.
The same Sales tab can unlock free shipping after a product-subtotal threshold. Choose which shipping method becomes the free default and whether buyers may pay to upgrade to a different method. Shipping add-ons stay paid, and quote-after-order methods are not made free automatically. You can also choose whether buyer-entered coupons and advanced automatic offers are allowed while a form-wide sale benefit applies.
For an existing order, EZFormz remembers the configured method's exact price before making it free. If a later item edit drops below the threshold, that saved shipping charge returns automatically; if the original amount is unavailable, the edit stops and asks you to reselect shipping rather than guessing. This recovery does not change checkout: buyers still follow the paid-upgrade setting, while a seller reviewing an edit may approve a requested paid upgrade and charge the resulting balance.
When the sale is active, buyers see a compact sale banner above the product list that summarizes the current subtotal tiers, quantity tiers, and free-shipping threshold.
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 can be imported directly back into EZFormz without editing it first, including descriptions with line breaks and product gallery photos. 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 |
| image_url | No | Featured/legacy product photo URL |
| product_images | No | JSON array of up to 8 product photos, such as [{"url":"https://example.com/front.jpg","alt_text":"Front"}] |
| 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. Published forms refresh these counts automatically as orders arrive and whenever an open form tab regains focus.
Each product card has a checkbox in its header. Pick any number of products and the bottom bulk-action bar surfaces N selected · Move to category · Bulk change · Select all visible · Clear · Delete selected.
Use Bulk change to apply the same setting to every selected product. Available actions include Set Low Alert, Clear Low Alert, Set Stock Qty, Set Stock Unlimited, Set Max/Order, Clear Max/Order, Mark Required, Mark Not Required, Unpublish, and Publish. Variant-level changes apply to every variant inside the selected products, so EZFormz shows a confirmation warning before changing more than one product.
Use the category dropdown to move selected products into an existing category, create a new category, or send them back to Uncategorized without opening each product. 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 after the seller adds stock or switches that variant to unlimited stock. Each signup covers one sold-out period: after the alert is sent, the buyer must choose Notify me again if the variant later sells out again. Duplicate clicks during the same period stay deduped per variant and email, and signups are rate-limited to 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. Quote-after-order methods do not add to the checkout total until you request payment later. Required add-ons are enforced when the buyer submits, so stale browser tabs cannot skip a required insurance/admin-fee style add-on.
For order-value free shipping, use the Products block Sales tab. It can make a selected shipping method free once the buyer reaches a product-subtotal threshold, with an option to allow or block paid upgrades.
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.
Need the labels again — the print didn't take, or you're printing later in the day? Tick the orders on the Received orders page and click 🖨 Print Labels in the bulk action bar. EZFormz rebuilds one combined PDF of every selected order's purchased label. Orders with no label yet are skipped. This doesn't re-buy or re-charge anything; it just re-renders labels you already paid for.
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.
Prefer Shippo and your own carrier accounts? EZFormz has a second built-in shipping integration that works exactly like the EasyPost one — compare USPS / UPS / FedEx / DHL rates and buy labels directly from the orders page — except labels are bought through your own Shippo account at your Shippo rates. Everything else (presets, single + batch buy, reprint, auto-tracking emails) is identical.
shippo_live_) to buy real labels, or a Test token (shippo_test_) to try it out.Fill in the From Address (the return address printed on every label) and click Save Shipping Settings. Add your common box sizes under Package Presets — the same presets work for whichever provider is connected, so you don't re-enter them if you switch.
EZFormz doesn't charge for shipping — you pay Shippo directly at your account's rates. Fund and manage your balance inside the Shippo dashboard; each label purchase is deducted there.
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.
📄 Basic setup PDF 📄 Detailed mixed-package PDF
Choose the export that matches the batch. The original quick CSV remains the fastest option when you want to select package information in PirateShip. Prepare Pirate Ship is an additional read-only workflow for mixed weights and box sizes.
.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:
If you need to know how much sales tax you owe per order — to report and pay it yourself — connect your own TaxJar or TaxCloud account. EZFormz sends each order into your tax account; your provider calculates the tax and produces the reports you file from.
Once connected, qualifying orders are recorded in your tax account automatically (within a few minutes of meeting your chosen trigger). If you edit an order it's updated; if you cancel or refund it, it's reversed in your provider so your filing stays accurate. Orders shipping outside the US, orders without a usable US destination, and zero-value orders are skipped. Invalid saved order data is reported as a sync failure for retry instead of being silently treated as a skip.
Use Run Backfill to send qualifying past orders (last 30 days up to 3 years) into your tax account so you can report on prior periods. EZFormz works through the range in safe, resumable pages and shows running and final recorded/updated/voided/skipped/failed counts. It's safe to run more than once — it won't double-count.
Your sales tax totals and reports live in your TaxJar/TaxCloud dashboard — including TaxJar's “Expected Sales Tax Due” report, which estimates what you owe even though you didn't collect it from buyers. EZFormz only shows the connection status here.
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.
Open the builder's APPEARANCE tab to control the look of the whole form or make a precise component/block override. The workspace keeps navigation, the active controls, and a live preview together. It is organized from broadest to most specific, so you can stop as soon as the form looks right.
Quick design starts with Clean, Soft, or Bold and exposes the form-wide palette, typography, and layout. Background shows the base color, generated layer, and image as separate visible layers while keeping the full preset library under More options. Components overrides every instance of one visual component, such as inputs or product cards. Selected block changes only one chosen block. Turn off a component or block customization to make it follow the broader style again.
Search understands setting names and common descriptions such as "rounded," "focus," "shadow," or "muted." Live preview uses the current form's title and products, switches between desktop and phone widths, and includes an All components view for states the form may not use yet. On a phone, use the Design / Preview switch so neither the settings nor preview is lost.
Set your primary/accent color (used for buttons, links, and focus rings), page background, form card background, and text color. Page Background Color controls the solid layer around the form; if a gradient, pattern, or image background is active, choose a Solid Color under Background or use Reset to Default Background so the solid color is visible.
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.
Customize shipping option amount text and the selected option background. If you reset the selected background, EZFormz auto-matches it to the visible section box color so selected shipping rows stay readable on custom themes.
Pick a one-click preset to instantly style your form. Available presets:
You can fine-tune any preset after applying it. Saved designs reuse colors, typography, layout, component styles, and generated background layers across forms. Uploaded background/header images remain owned by the form where they were uploaded and are not bundled into the saved design.
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.
Use Preview Email before saving custom confirmation emails. The preview uses sample order data and shows the same final layout buyers will receive, including warnings if a full custom layout is missing key variables.
| Variable | Replaced With |
|---|---|
{{customer_name}} | Buyer's name |
{{customer_email}} | Buyer's email |
{{total}} | Order total |
{{form_title}} | Your form's title |
{{order_id}} | Order ID |
{{items_table}} | Formatted table of ordered items |
{{payment_instructions}} | Your payment instructions |
{{edit_order_button}} | Edit-order button, when an edit link is available |
{{payment_proof_button}} | Payment/proof-upload button, when a payment link is available |
In Simple message mode, EZFormz keeps the receipt sections even if you do not include {{items_table}}. In Full custom layout mode, EZFormz only sends what you put in the body, so add {{items_table}}, {{payment_instructions}}, or buttons wherever you want them to appear.
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.
Use Auto-mark paid when verified in Settings → Payment Proof when your workflow treats a manually verified, fully paid incoming payment as final payment acceptance. The setting only applies when a seller verifies proof from the Orders page and accepted payments cover the full balance; partial payments, evidence-only rows, buyer uploads, and automatic crypto checks do not mark the order paid.
The builder's top-level APPEARANCE tab 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, Coupons, Sales, settings, and theme configuration. To restore, click "Restore from Backup" and upload a previously downloaded file. If a Save is already finishing, Restore waits for its result before replacing anything; if that result cannot be confirmed, nothing is restored and the selected backup remains ready to retry. Current backups use version 3; EZFormz also accepts its older version 1 and 2 files. Restore validates promotion schedules and rules, reconnects product and variant targets to the recreated catalogue, and stops before replacing the form if a definition is unsafe or incomplete. Restored Coupons and Sales keep their setup but receive fresh private identities, automatic-Sale codes, usage counters, and budget counters.
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.
When you share a published public form's link in Messages, social apps, or chat platforms, the preview card automatically uses your form's title, description, and header image — the same fields you already maintain in the builder. There is nothing extra to configure. The preview keeps EZFormz branding: the title ends with "— EZFormz" and the description ends with "Powered by EZFormz."
Password-protected, invite-only, and closed forms intentionally show a generic EZFormz preview instead, so your form's details stay private until a buyer actually unlocks the form. If your form has no header image, the preview uses the standard EZFormz card.
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 and form height.
Your form theme still applies inside the embed, including checkout buttons, payment-method choices, and the optional button-link code from the Publish tab.
Embedded forms send resize messages to the parent page as { source: 'ezformz', context: 'iframe.resize', height, slug }. The default embed code includes the listener that applies that height to the iframe.
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.
Crypto payment verification is an optional seller review tool for crypto payment methods. It helps compare what the buyer submitted against public blockchain data, then shows the result on the order's payment proof card. EZFormz does not custody funds, connect to buyer wallets, or replace your final manual review. On-chain checks do not mark orders paid by themselves; only a seller proof-verification action can use the optional auto-mark-paid setting.
When Run on-chain check after submit is turned on for a crypto method, EZFormz saves the expected payment details at the moment the buyer submits or pays a balance: token, network, receiving wallet, expected amount, confirmation setting, and any transaction ID. After the payment row is saved, EZFormz runs the on-chain check in the background and writes the advisory result to the payment proof card. Sellers can still click Verify on-chain later to run the same check again.
| Saved detail | Why it matters |
|---|---|
| Token | Prevents accepting the right dollar amount in the wrong asset. Example: PYUSD expected, but the transaction sent USDC or native SOL. |
| Network | Prevents accepting a payment on the wrong chain. Example: USDC on Solana expected, but the buyer sent USDC on Ethereum. |
| Receiving wallet | Confirms the payment went to the wallet saved on the payment method, not to the wrong address. |
| Amount | Checks that the received stablecoin amount is enough for the order total or balance due. |
| Confirmations | Lets the check wait for network confirmation before showing a match. |
| Transaction ID | When present, checks one exact transaction and links directly to it in the network explorer. |
Automatic on-chain matching currently supports stablecoin transfers on these networks:
| Network | Supported tokens | Explorer |
|---|---|---|
| Solana | USDC, USDT, PYUSD | Solscan |
| Ethereum | USDC, USDT, PYUSD | Etherscan |
| Base | USDC | BaseScan |
| Polygon | USDC | PolygonScan |
BTC, ETH, SOL, custom tokens, custom networks, and unsupported token/network combinations can still be used as manual crypto payment methods. EZFormz will collect proof and transaction IDs if configured, but automatic matching falls back to manual review instead of guessing.
PYUSD, USDC only, or Crypto.Buyers do not connect a wallet to EZFormz. They choose your crypto method, copy the wallet address, send payment from their own wallet or exchange, upload proof, and optionally paste the transaction ID.
| Mode | When it runs | What it does | Best use |
|---|---|---|---|
| Transaction ID check | The buyer pasted a TXID, or an existing short-answer field named like Transaction ID / TXID / hash captured one. | Looks up that exact transaction and compares token, network, recipient wallet, amount, and confirmations. | Fastest and clearest review path when buyers can provide a TXID. |
| Wallet monitoring | No TXID was submitted, but the payment method has Run on-chain check after submit enabled and the saved token/network is supported. | Scans recent inbound stablecoin transfers to the saved receiving wallet and looks for a unique payment that matches the expected token, amount, and confirmation rule. | Fallback for buyers who upload proof but do not know where to find the TXID. |
Wallet monitoring is intentionally conservative. If no payment is found, more than one payment could match, the amount is short or over, confirmations are still pending, or the provider cannot be reached, EZFormz shows a review-needed result instead of choosing a transaction for you. If EZFormz says more information is needed, open the payment menu and choose Verify on-chain. If the payment still cannot be verified, replace the transaction ID or payment proof. A crypto transaction already counted toward another payment cannot be counted again.
| Result | Meaning | What to do |
|---|---|---|
| On-chain matched | The transaction ID check matched the expected token, network, wallet, amount, and confirmation rule. | Open Explorer, compare proof and order details, then mark verified if everything looks right. |
| Wallet match | No TXID was provided, but wallet monitoring found one recent matching inbound payment. | Open Explorer and review carefully before accepting it. |
| Confirming | The payment appears to match but has not reached the saved confirmation setting yet. | Wait and run the check again later. |
| Amount short | The correct wallet/token/network may be involved, but the received amount is below the expected order amount. | Ask the buyer to resolve the shortfall or review manually if there is a known reason. |
| Amount over | The correct wallet/token/network may be involved, but the received amount is above the expected order amount. | Confirm the extra amount belongs to this order before marking verified. EZFormz does not automatically apply the overage to another balance. |
| Wrong wallet | The transaction did not pay the saved receiving wallet. | Do not mark verified unless you intentionally changed wallets and can independently prove the payment is yours. |
| Wrong asset | The transaction used a different token than the saved method expected. | Review manually; this often means the buyer sent the wrong coin or token. |
| Wrong network | The transaction is not on the expected network. | Review manually; this often means the buyer used the wrong chain. |
| Not found | The TXID or wallet scan did not find a matching transaction. | Check that the TXID is complete, wait for indexing, or ask the buyer for the correct transaction. |
| Invalid TXID | The submitted value does not look like a valid transaction hash/signature for that network. | Ask the buyer to copy the transaction hash from their wallet or exchange. |
| Duplicate TX | The same transaction ID appears elsewhere on the form, or the same verified transfer is already accepted for that network and receiving wallet. | Compare the evidence. A form-level duplicate warning can be acknowledged to save evidence, but one verified transfer cannot supply accepted credit twice. |
| Provider error | The network RPC/provider could not be reached or returned unreadable data. | Open Explorer manually or try again later. Do not treat the check as verified. |
| Manual review | The method is unsupported, incomplete, or too ambiguous for automatic matching. | Use the proof image, Explorer, and your own wallet history to verify. |
| Problem | Likely cause | Fix |
|---|---|---|
| No Verify on-chain button | The on-chain check setting is off, the method is not crypto, the order was created before metadata was saved, or the token/network is unsupported. | Turn on Run on-chain check after submit for future payments and use manual review for older or unsupported payments. |
| Buyer sent native SOL, ETH, or BTC | The method expected a stablecoin token but the buyer sent the network's native coin. | Do not rely on automatic matching. Review manually and decide whether to accept or ask the buyer to resend correctly. |
| Network is set to Custom | Custom networks do not have a known RPC/explorer/token contract map. | Use custom methods for manual review, or choose Solana, Ethereum, Base, or Polygon for automatic checks. |
| Buyer says they paid but wallet scan says Not found | The payment may be on the wrong chain, below the expected amount, too old for the recent scan window, not indexed yet, or sent to a different wallet. | Ask for the TXID and open Explorer manually. |
| Provider error | The public RPC provider was unavailable, blocked, or returned an unexpected response. | Try again later and use the Explorer link/manual wallet history in the meantime. |
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 |
|---|---|
| Received | New order received, awaiting your action |
| On hold | A neutral holding state for back-orders, pre-orders, or group buys waiting on quantity. It does not mark the order paid or fulfilled. |
| Paid | Payment received, ready to process |
| Ordered from vendor | Items have been ordered from your supplier or are being processed before shipment |
| Packing | You're preparing the order to ship (between Paid and Shipped). |
| Ready for pickup | Order is packed and waiting for the buyer to collect (local pickup). Treated like Shipped: counts as fulfilled and locks buyer self-edits. |
| Shipped | Order has been shipped |
| Direct Vendor Shipped | Drop-shipped directly from your vendor rather than passing through your hands. Buyers see this label too, with the same shipped-status email as a normal shipment. |
| Completed | Order delivered and finished |
| Cancelled | Order was cancelled |
Use the dropdown on each order card to change its status. When an order is marked Paid for the first time, the buyer receives a Payment Received email with the order number, form title, customer name/email, and saved item, option, and quantity summary. When an order is first marked Shipped or Direct Vendor Shipped without a tracking number, the buyer receives a shipped-status email with the saved order summary. Re-saving an already-notified status does not send another copy. You can also use bulk operations to update or delete multiple orders at once.
Cancelling an order releases the exact tracked local or shared inventory and buyer promotion reservations saved with that order. Reactivating it checks and re-reserves those same amounts before changing the status; real stock or promotion conflicts still stop the change. Older orders that do not record whether inventory was reserved no longer block editing, cancellation, reactivation, or deletion: EZFormz leaves only that unprovable historical stock unchanged and completes the requested order action.
The Crypto Payment Total and Non-Crypto Payment Total cards divide the same saved non-cancelled order values shown by Active Revenue. Each included order is counted once under its selected payment method, so the two card amounts add back to Active Revenue and their order counts partition that same set. Payment proofs, add-on payment records, verification, and refunds remain visible inside the order but do not add a second copy of its invoice value to these cards. Orders without a recognized crypto method appear under Unspecified in the non-crypto breakdown. If EZFormz cannot load the complete payment and balance snapshot, the Orders page asks you to retry instead of showing misleading zeroes.
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 status, tracking, request-payment, print, select, and unbundle actions. The Copy menu on a collapsed order row lets you copy the order ID, full PirateShip address block, phone number, buyer email, and submitted Telegram name or username without expanding the order. When a form collects Telegram, the collapsed row also shows that identity; hover, focus, or tap a shortened value to reveal it in full. A green check means the order is synced to its connected Google Sheet.
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 a new tracking number, EZFormz marks the order Shipped and the buyer automatically receives an email notification with the tracking links plus the order summary, including products, options, quantities, totals, and submitted form fields when available. If you mark an order Shipped without adding tracking, EZFormz sends the shipped-status email instead.
When buying multiple EasyPost labels from the Orders page, EZFormz now previews the selected orders by the checkout shipping method each buyer chose. You can buy labels for all eligible selected orders or only one method group, choose the package preset, enter optional carrier/service preferences, and include detected insurance add-ons before any labels are purchased. Orders that already have labels, have no address, have no checkout shipping method, are cancelled, or used quote-after-order shipping are skipped before the carrier is charged.
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.
Proof cards in the Payments section can be marked verified after review. If the form has Auto-mark paid when verified enabled, verifying an eligible incoming payment on a pending order changes the order to Paid/Confirmed only when accepted payment money still retained after recorded Paid refunds covers the full balance; it then records the status event and syncs the connected Google Sheet status. Partial payments, evidence-only rows, and refund rows do not mark an order paid. Unchecking proof verification does not automatically downgrade the order.
If a buyer uploaded the wrong proof or TXID, use the proof card menu to replace the active evidence, clear the bad active evidence, or email the buyer a one-time corrected-proof link. A corrected upload, its history entry, and the one-time-link claim are saved together, so a failed or double submission cannot consume the link without saving the evidence. EZFormz keeps the original evidence in the payment history trail and resets proof verification/on-chain status when active evidence changes. Corrected and other amount-zero evidence never adds a second payment amount, even if its on-chain check matches or a seller verifies it.
When an edit lowers an order below the payment money you still retain, EZFormz adds a dedicated refund card to the order's Payments section. New refunds start as Refund owed. After sending the refund outside EZFormz, use Mark paid; use Void and enter a reason when the obligation should not be paid, or Reopen to return a paid or voided record to Owed with an audit note. If you recorded Paid versus Voided incorrectly and the invoice has since changed, use the direct correction action and enter a reason instead of creating a false intermediate obligation. If another tab or collaborator changes the same refund first, EZFormz rejects your older choice and reloads the current status instead of recording both actions.
Older refund records whose real outcome cannot be determined show Review needed. You can still edit the order normally. Until you classify the record as Still owed, Paid, or Voided, EZFormz saves the edit without guessing a new balance or refund: a same-total edit keeps an existing valid payment link, while a total-changing edit holds settlement and closes that link. After review, only Paid refunds reduce the money retained when EZFormz calculates a later balance. EZFormz records these choices and their history, but it never holds, sends, or reverses the refund money.
The Duplicate Check button in the orders toolbar scans every loaded order on the form for repeated transaction or hash IDs — the kind a buyer might reuse to claim two orders were paid with one payment. It groups any matches and links straight to each affected order so you can compare them. This is a manual, form-wide evidence sweep. Separately, when positive crypto credit is accepted, EZFormz prevents that verified transfer from being accepted again for the same network and receiving wallet, including on another form.
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, platform 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.
Existing item rows keep the price saved when the buyer ordered, so changing an address, note, shipping method, or another item cannot silently reprice the whole order after your catalogue changes. To deliberately use the current catalogue price for an item, remove its old row and add that product option again from + Add before saving. EZFormz loads the current price on the server and updates the saved order, invoice, buyer history, balance calculation, and connected Sheet together.
If an ordered product option has since been removed from the catalogue, its saved quantity is locked because there is no current option price to use safely. You can keep that historical row exactly as ordered or remove the entire row; partial quantity changes are unavailable. Add a current catalogue option as a new row when a replacement is needed.
Advanced coupon previews use the coupon rules saved with the order, so changing quantities immediately updates exclusions, thresholds, Lowest N, Highest N, Buy X Get Y, quantity tiers, gifts, bundles, caps, shipping benefits, and surcharge waivers before Save. If the edited cart no longer qualifies, every benefit from that promotion stops together and the preview explains what is missing. Existing simple historical coupon amounts remain frozen. A seller may apply a current coupon even when its public schedule, total/per-customer use limit, first-order rule, or budget would block a buyer; that seller override is shown in the modal, does not create a public redemption, and still obeys merchandise eligibility, discount math, and exclusive-promotion rules.
When you edit an order and choose Request balance from buyer, EZFormz subtracts the accepted payment money you still retain from the updated invoice. Partial payments, accepted follow-up payments, and clean matched crypto payments count; refunds recorded as Paid are subtracted from that retained amount, so the buyer's link asks for exactly the remaining balance. If no retained payment exists, the link asks for the full updated invoice.
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. Monetary columns separate item subtotal, product discounts, shipping discounts, surcharges, total discounts, and the saved total so a shipping coupon or payment fee is not hidden inside one unexplained number.
Configure seller documents per form from Form Builder → Settings → Invoices & Packing Slips. The accessible Invoice and Packing Slip tabs are independent saved profiles: each has its own automatic, US Letter, A4, or 4×6 thermal paper default; text sizes; information and custom-field choices; section order; logo; watermark; opacity; and preview. Switching tabs keeps unsaved changes in memory, and saving preserves both profiles.
Open Advanced customization to set text sizes for individual information items and reorder sections with drag controls or keyboard-accessible up/down buttons. Text and values wrap into measured rows and new pages using their selected text sizes so content does not overlap. Oversized agreement questions are summarized as Agreement/Agreed. Optional logos reserve header space, item rows use solid separators, and standard-page footers show page counts.
On the Orders page, choose Invoice or Packing slip for one order, or Print invoices or Print packing slips for selected orders and bundles. The PDF opens immediately with the form's saved profile; there is no temporary print-configuration step. EZFormz reserves the output tab before building the document for Safari and Firefox, then downloads the file if the browser blocks that tab.
An invoice is an order invoice, not proof that payment was received. The seller chooses whether it displays payment status; when selected, the status is prominent and recognizes historical paid-or-beyond orders. An invoice can also include saved product prices, discounts, shipping, surcharges, totals, payment instructions, and balance information according to its profile. Seller invoices and buyer receipts use the immutable saved order-price breakdown rather than recalculating historical orders from today's form setup. If an older order lacks a trustworthy saved unit price, the invoice shows N/A instead of inventing $0.00 while retaining any trustworthy saved line total.
Packing slips are fulfillment-only. They can include customer and shipping details, items and quantities, custom fields, notes, order status, order date, and tracking, but never prices, discounts, fees, totals, balances, or payment instructions—even if malformed or legacy saved settings try to enable them. Thermal output is monochrome, never prints watermarks, and can include the profile's thermal logo.
Tick the checkboxes on any number of orders, then click Print invoices or Print packing slips in the bulk action bar. EZFormz immediately builds one multi-page PDF from the corresponding saved form profile and opens it in a new tab — hit Cmd/Ctrl-P from there to print. Bundles use the same two direct actions and the same renderer.
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. With Send payment link immediately, EZFormz checks stock, creates the order, deducts stock, then redirects the buyer to the payment page without sending an extra payment-request email. The link expires after 30 minutes; expiry does not cancel the order or release stock, so cancel unpaid orders manually when needed. With Seller sends payment link later, review MOQ, inventory, or final shipping first, then click Request Payment on the order card to email the buyer a pay link. Buyers can edit either kind of pay-later order without being forced to choose a payment type.
On the secure payment page, the buyer first chooses from your currently available methods. EZFormz reserves that method, its usage slot, any coupon fee waiver, and the exact amount before showing the address, wallet, payment link, notes, or proof controls. A surcharge is calculated into the invoice, and retained accepted payments are subtracted from the amount due. The method chosen at immediate checkout is only the default; the buyer can choose another available method on the payment page. The buyer then uploads proof and enters the required payment reference or crypto TXID.
Use the order checkboxes and the bulk action bar to request payment for many selected orders at once. Request Payment sends a link for each order's exact remaining balance; if an order already has an active link, EZFormz resends that same link instead of creating a duplicate. Once a buyer has reserved a method and seen its instructions, the invoice cannot be silently changed underneath them. To edit the order or issue a different request, use Clear on the red balance-due card first, make the change, then send a new request. Clear voids the old link and releases its reserved method/coupon accounting without recording a payment. Resend keeps the exact reserved method and amount.
If the buyer sends the proof directly to you, click Upload proof on the red balance-due card. EZFormz opens that order's existing payment page in a new tab so you can upload the buyer's screenshot and payment reference for them. This uses the same active link, amount, payment-method reservation, and backend payment process as the buyer; it does not create a second link or use the evidence-only + Proof path. The order still waits for your normal proof verification and status action.
Use Adjust Product Payments when a product's cost changed after buyers already ordered. Choose the product/option, enter the added amount per item quantity and the required reason, then preview. EZFormz finds every current non-archived, non-cancelled order on that form containing the product, shows the quantity math for each buyer, and applies only the previewed eligible set when you send. Use Adjust + Send from the selected-orders bar for flat per-order adjustments. The reason appears in the buyer's balance email and payment-link breakdown, and orders that already have an active payment or balance link are blocked so each order has only one active payment obligation at a time.
For fulfillment bundles, open the bundle card and click Request Payment to send links for the included orders without using the bulk bar. 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 recomputed total and a Pay & Upload Proof button. The secure payment page offers only the method you selected; the buyer confirms it there before its current instructions and proof controls appear.
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 the currently selected orders to see which items are most popular. Product and shipping rows keep their existing detail, while the final Total uses each selected order's saved total so discounts, fees, and later order edits are reflected without re-adding the visible rows.
Logged-in buyers can view all their placed orders at ezformz.net/my-orders.
EZFormz automatically saves a compact, read-only receipt when an order is placed. Your live order remains the normal view while it exists. If the seller later deletes the order, form, or seller account—or their retention cleanup removes the operational data—the receipt remains in My Orders as a Preserved receipt. Seller actions cannot remove it or change your personal archive choice.
Preserved receipts keep the original date, items, total, address, notes, and submitted field labels, but do not retain payment-proof files or full seller form/payment configuration. You can download the receipt, reorder from an active form, or archive/restore it. Live-order actions such as editing, adding proof, messaging, reporting, reviews, tracking updates, and Mark as Received are unavailable because it is no longer an operational order. Older receipts restored by support from independent evidence remain labeled Recovered record.
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.
An item that is no longer in the form's current catalogue stays visible as order history, but its quantity is locked. The buyer can keep it unchanged or remove the whole item while still editing current items and contact details. If the catalogue item disappears after a request is submitted, the seller can approve an adjusted version that keeps the saved quantity and preserves the request's other valid changes.
When the requested edit raises the total, you get two approve buttons:
Every later item, coupon, or custom shipping edit automatically keeps an existing balance link accurate, even when you choose not to send another email. The link always reflects the revised order total minus accepted payment money still retained after recorded Paid refunds, so an earlier unpaid adjustment is not lost. While that link is unpaid, later edits keep the order's original payment method; the buyer chooses the balance payment method on the secure payment page. Choosing Approve only suppresses the new balance email; it does not freeze an already-active link at an old amount.
When the edit lowers the total below the accepted payment money you still retain, the refund amount is logged to the order's payment history as Refund owed and you see a "Refund of $X owed" toast on approve. Sending the money remains your responsibility; afterward, record it as Paid in the refund card so a later edit uses the correct retained amount. 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.
Closed or inactive forms normally block buyer edit links. To keep cleanup edits available, open Settings → Order Edits, turn on "Allow buyer info edits after close", then choose which non-product fields buyers can request: name/email, shipping address, phone/usernames/submitted info fields, or notes. Product, shipping option, payment method, and total-changing edits stay locked.
Closed-form info edits always require your manual approval, even if auto-approve edit requests is turned on, and stop once the order is shipped, completed, cancelled, or has a tracking number.
If you don't want to manually review every request, turn on "Auto-approve edit requests" in the same Settings panel → Order Edits section (default off). A checklist appears so you decide which kinds of change auto-approve:
A request auto-approves only when every change it contains is on your checklist — if a buyer's request mixes an allowed change with one you didn't check, the whole request waits for your manual review. Approved edits run through the exact same logic as the manual Approve button (stock, totals, surcharges, refund records, payment links), and you always get a notification (and email, if enabled) so you know what changed. Leave everything unchecked and nothing auto-approves; check only the safe ones to keep control where it matters.
Every order has a built-in message thread so buyers and sellers can talk on EZFormz instead of relying on email delivery. Messages stay attached to the order, and both sides see unread badges and bell notifications.
The email ping is controlled by the "Order message received" row in Account → Notifications. Turn the email column off if you only want the in-site bell.
Each form has its own analytics page showing performance data. Access it from the dashboard or builder.
The Profit & Loss page gives sellers a seller-only view of sales, product cost, manual adjustments, estimated profit, and margin. Open it from the dashboard or orders account menu, the orders header, the dashboard P&L widget, or go to /pnl.
Turn on P&L per form from Form Settings → Profit & Loss. The setting saves immediately and does not require publishing other Builder changes. Forms with P&L off are not included in reports and do not show order cost editing.
Add variant costs from Account → Profit & Loss or in the builder from the Products block P&L tab near Shipping. Costs do not affect buyer pricing and can be left blank when a variant cost is unknown. An order with a missing cost still contributes its known sale and order count; product cost, total cost, profit, and margin remain unavailable until the saved cost is added. Costs are owner-only unless the owner explicitly grants a collaborator Manage Profit & Loss costs for that form.
To update costs from a spreadsheet, use the Profit & Loss page's Missing Costs section and choose one P&L form before uploading or pasting cost rows. Use columns for product name, variant/size, and unit cost. The review step matches what it can automatically, lets you choose the right product/variant for rows that need help, and updates only existing variant costs. The builder Products CSV importer is for adding catalog products and can create new products.
Saving a product cost and updating older orders are two separate steps. Save product costs sets the catalogue cost used by future orders. If older orders are already missing that cost, the product stays listed under Missing Costs; select Preview old-order update, review the exact job and candidate count, and then select Apply to old orders. Large updates continue in safe batches and resume after a reload. Changing a cost or mode requires a new preview.
A backfill validates every candidate before its first order update. Preview is stale means a source order changed and nothing was written. Partially applied means the displayed number of orders committed before a later conflict; those cost snapshots remain, and you should create a fresh preview for the remainder. Cancelling preserves any already committed orders. Backfills change saved P&L costs only—never buyer prices, order totals, payments, stock, coupons, or receipts.
For older orders or one-off corrections, expand an order on the Orders page and use the P&L costs panel under the item table. That updates the saved cost snapshot for that order only; it does not change the order total, buyer price, stock, coupon usage, or payment state.
Product and category revenue is shown after the exact product discount assigned to each saved order item. Shipping and shipping discounts stay separate. Older orders without item-level promotion allocations use a deterministic fallback, while the saved order revenue, form totals, costs, adjustments, and overall estimated profit remain unchanged.
If an older refund has not yet been classified as owed, paid, or voided, EZFormz keeps the order's invoice, sales, known product cost, profit, and margin visible. The profit is shown before that old refund because EZFormz cannot know whether money was actually sent. The report identifies how many old refund records still need review; mark any refund that was actually sent as Paid so it is deducted. The refund-event view does not guess when or whether an unresolved refund was paid.
Use the Settings section to save account-level defaults for shipping cost mode, insurance, date basis, category basis, and P&L Sheets behavior. Form-level overrides can be saved when one form needs different reporting defaults.
Add one-off income or expenses for supplies, fees, shipping, refunds, or other corrections. For per-order shipping costs, open the Shipping & Fees section on the P&L page and enter the manual cost next to each order. These values are private P&L entries and do not change order totals, labels, tracking, buyer receipts, or Sheets order exports.
Use recurring rules for repeat costs such as subscriptions, packaging, storage, or software. EZFormz generates the matching occurrence inside the selected report window without creating endless permanent rows. A seller can skip a single occurrence, edit just that occurrence, or convert it into a one-off adjustment.
Payment fee rules are also private P&L estimates. They calculate from the saved order total for reporting only. Buyer-paid payment surcharges can be counted as revenue, used to offset the estimated fee, or ignored for profit, based on the seller's setting.
The report includes product, form, order, adjustment, shipping-source, and reliability fields. A degraded warning means malformed or unsafe financial data could not be used; it is not treated as a legitimate zero. A legacy label records which safe compatibility rule was used and does not by itself mean the report is degraded. Use Export combined CSV for one file with every table, or Export table CSV for a single table. Exports include the report contract, generation, exact filters, and completeness status.
In Sheets & Export, a seller can enable P&L Sheets sync for a form that already has a connected Google Sheet. Sync now rebuilds dedicated P&L Summary, P&L Orders, P&L Products, P&L Categories, and P&L Expenses tabs as one validated generation. Auto-sync follows order, payment, refund, shipping, cost, fee, setting, adjustment, and relevant product/category changes. During backfill application, CSV export and P&L Sheet publication wait instead of publishing mixed old/new costs; the live JSON report shows an updating warning, and the final Sheet generation is rebuilt after completion. If a rebuild fails or its source changes while publishing, the previous complete tabs stay visible and EZFormz retries the pending generation.
Collaborators do not see P&L by default. Owners can grant custom View Profit & Loss or Manage Profit & Loss costs access for a specific form. Google Sheet connection and collaborator management remain owner-only.
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, Tracking, Payment Method, and Proof of Payment.
The Order details section also includes an optional Transaction ID column, listed next to Payment Method and Proof of Payment. It is off by default — tick it in the column picker to sync the recorded crypto/payment reference (TXID/hash) captured for each order through your payment setup. If an order has more than one recorded reference (for example an initial payment plus a balance top-up), they appear together in that one cell.
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.
For older sheets that use the per-item layout, an order update rewrites its complete saved block, including discounts, shipping, fees, payment state, custom fields, and total. Product Summary and Order Items keep separate retry checkpoints, so a temporary failure in one derived tab does not falsely mark it current or force an already-current order row to be written again.
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.
Connect a form to Airtable when you want a structured export with separate tables for orders, order items, payments, products, product options, coupons, shipping options, and a form summary. Airtable is export-only: EZFormz remains the source of truth.
Airtable auto-sync is configured per form. New orders, later order/status/payment/tracking updates, and catalogue changes each have their own checkbox in the Airtable setup card. Initial setup queues the first full sync automatically. Sync now queues a full repair/backfill after an Airtable outage, a managed-table selection change, or an accidental edit or deletion in an EZFormz-managed Airtable row.
EZFormz repairs missing managed fields, then works through large exports in bounded pages and small Airtable batches. Progress is saved after each successful batch. If Airtable is temporarily unavailable, the export stays connected and later automatic sync resumes at the first unfinished batch instead of sending successful batches again.
Managed tables use readable primary Name values for browsing. The EZFormz ID, Order ID, Product ID, and Option ID fields are stable internal references that let repeated syncs update the correct rows; they can be hidden in an Airtable view if you do not need to see them.
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. When they click Save changes, EZFormz applies only the areas their role allows; there is no separate owner review queue. 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 products, options, prices, stock, availability, and product photos. |
| Edit form | Someone editing and saving form fields, design, products, shipping, and coupons without open/close or Sheets controls. |
| Manager | A trusted helper who can edit the form, manage orders, message buyers, export data, and view analytics. |
| Co-owner | A trusted operator with broad form/order access who also receives order notification emails when the form's notification setting is enabled. |
| Custom | Pick exact permissions, including whether that collaborator receives order notification emails. |
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 in plain English and AI can build or manage it through EZFormz — commerce forms, registrations, surveys, products, pricing, photos, themes, shipping, promotions, orders, and analytics. 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 password, login sessions, private admin tools, payment-provider accounts, or credentials for other connected services such as Google Sheets. Publishing, deletion, and order mutations remain consequential actions that should match your explicit request.
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, or use each widget's up/down buttons from the keyboard. 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). If the metric you need is not available, use the dashboard's widget request form to describe the missing widget and the decision it would support.
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.
Use Account → Profile → Change beside your email address. EZFormz sends a verification code to the new email before the login address changes. If you have 2FA enabled, you also need your current authenticator code or a recovery code before the verification email is sent.
Changing your account email keeps your forms, orders, passkeys, API keys, and collaborations on the same account. Historical buyer emails and old audit rows stay as they were recorded.
For privacy, you can configure automatic data deletion:
Auto-delete runs daily. Operational seller data and proof files removed by this setting cannot be restored. Buyers still keep the compact protected receipt created when each order was placed; that receipt is isolated from seller cleanup and does not remain in seller revenue, fulfillment, inventory, payment, shipping, or integration data.
Permanently delete your account and its forms, products, operational orders, images, templates, themes, and your own protected buyer receipts. This action is irreversible. Compact receipts belonging to customers who ordered from your forms remain in those customers' Order History and stay isolated from seller reporting and operations.
Use Account → Payments to save reusable payment methods you commonly add to forms. Saved methods can include the same core payment details from the builder payment properties: method type, handle or wallet, buyer label, logo, QR image, buyer note, surcharge, and crypto transaction settings.
Saved payments are copied into forms, not linked live. In the builder, click a Payment Instructions block, use Payment methods mode, then click Saved payments to choose one or more saved account methods. After copying, each form keeps its own independent copy so you can set form-specific buyer visibility, transaction limits, and sales behavior without changing the account-saved version.
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.
If the authenticator code is rejected, check that your phone time is set automatically, then wait for the next code in your app and try again. You only need to request a new email code if the sign-in expires or too many invalid codes are entered.
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 or your account email changes — 2FA enabled/disabled, passkey added/removed, account email changed — 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).