Create and share a public intake form

Build a branded form, publish it by embed, link, or QR code, and process the responses.

public forms intake forms leads estimate requests submissions

Public forms let people contact your business without signing in. Create a branded form for new leads, estimate requests, or prospective customers; then publish it on your website, share its hosted link, or print its QR code.

Before you start: your account needs the PRO plan and access to Settings → Public Forms. The actions you see depend on your Public Forms permissions.

  • Before you start

    Public Forms is available on the PRO plan. Office users with Public Forms page access can view forms and responses. Creating requires create permission, editing and token actions require update permission, and archive, unarchive, and permanent deletion require delete permission. Read-only users can view and share; technicians and customers do not manage forms.

  • 1

    Open Public Forms

    Select Settings, then Public Forms. The Forms tab shows each form’s name, type, submission count, publishing channels, and enabled status. Use All kinds, Search forms, Manage, or the status switch to narrow the list or work with a form.

    Screenshot — Open Public Forms

    The Public Forms list with type, channel, status, search, and management controls.

  • Choose a form type

    Choose the type that matches the result you need:

    • New Lead collects Full name, Email, Phone, Service address, and Project details by default. Full name, Email, and Phone are required. Preferred date is available but starts off.
    • Estimate Request offers those same six fields. Full name, Email, Phone, Service address, and Project details are required; Preferred date starts off.
    • New Customer collects Full name, Email, and Phone. Full name and Email are required.

    A form’s type cannot be changed after creation. New Lead and Estimate Request submissions create leads automatically. New Customer submissions go to the Review Queue.

  • 2

    Configure and create the form

    Select New Form, enter the required Form name, and choose a form type. Turn fields on or off, mark enabled fields Required or Optional, and edit the Title, Intro text, Thank-you message, and Consent & privacy copy. The LIVE PREVIEW updates as you work. When it looks right, select Create form.

    Screenshot — Configure and create the form

    The form builder and live preview for an Estimate Request form.

  • Field and validation rules

    Required fields are always enabled; turning a field off also clears its required setting. Use {{business_name}} in the consent copy to insert your company name. Validation appears when you submit, not while you type, and entered values remain after a failed submit. Cancel closes the builder without creating or changing a form. To edit later, open Manage, then choose Actions → Edit form; the form type remains read-only.

  • 3

    Publish and share it

    After creation, the form detail page opens at Publish & share. Select Copy beside Website embed (iframe) to place it on a website, select Copy beside Hosted link to share the direct form, or select Download PNG to save a QR code. All three channels use the same current token.

    Screenshot — Publish and share it

    The Publish & share panel with iframe, hosted link, QR code, status, and token controls.

  • Availability and token behavior

    Turning Form enabled off takes every public channel offline without changing the token; turning it back on restores the same links. Rotate token immediately invalidates the old embed, link, and QR code and creates replacements, so republish every channel. Revoke token takes the form offline until you rotate it. Archive form is reversible and keeps submissions. A permanently deleted form and its submissions cannot be recovered. Disabled, revoked, archived, rotated-old, deleted, and invalid tokens all show This form isn’t available without revealing why.

  • 4

    Test the hosted form

    Open the Hosted link in a new tab before you publish it. Confirm the business branding, configured title and intro, enabled fields, required markers, consent copy, Privacy Policy, submit label, and Powered by CleanOps all appear as expected.

    Screenshot — Test the hosted form

    The public Estimate Request form with branding, configured fields, consent, and submit action.

  • 5

    Submit a test request

    Enter test contact details, complete every required field, accept the consent checkbox, and select the form’s submit action, such as Request Quote. A successful submission shows Request received!, the thank-you message, and Submit another request. New Lead and Estimate Request forms also create a linked lead for your team.

    Screenshot — Submit a test request

    The Request received confirmation after a successful test submission.

  • Hosted errors and retry states

    Consent fails closed. The browser may block a missing required control first; server validation then shows inline errors for required fields, email, phone, and a preferred date that is not YYYY-MM-DD, while retaining the visitor’s values. A rate-limit message asks the visitor to wait a moment and try again, and an anti-spam failure says the submission could not be verified and asks them to try again. If the page says This form isn’t available, check the form’s enabled, token, and archive state before sharing a replacement link.

  • 6

    Review permanent deletion safely

    On the form detail page, open Actions → Delete form. CleanOps warns that this permanently deletes the form and all of its submissions and cannot be undone. Select Cancel unless you intend to remove that history; confirming Delete form has no recovery.

    Screenshot — Review permanent deletion safely

    The in-app Delete form confirmation and its irreversible-data warning.

  • 7

    Find and export submissions

    Open the Submissions tab. Combine Form, Type, Result, and Date filters with Search name or email to find responses. Select Export CSV to download the rows that match the current filters; use pagination and Per page when the result set is larger.

    Screenshot — Find and export submissions

    A filtered Submissions list showing one Estimate Request that created a lead.

  • Understand submission results

    The Result column shows what happened: Lead created for New Lead and Estimate Request forms, Pending review for a New Customer request that still needs a decision, Customer created after approval, or Rejected after rejection. An empty filter result means no submissions match; clear or widen the filters to return to the full list.

  • 8

    Review a new-customer request

    Open Review Queue, then select a pending submission. The detail pane shows its captured contact and source details plus any possible customer matches. Use Edit contact before deciding when the submitted name, email, or phone needs correction.

    Screenshot — Review a new-customer request

    A selected New Customer submission in the Review Queue.

  • Review actions and recovery

    Select Approve & create customer to create or link the customer; a duplicate match can expose View customer instead. Reject records a rejection. Delete removes only the submission—an already-created lead or customer remains. If another user already changed the request, refresh the queue and retry from its current state.

  • Your public form is ready

    You now have a branded public form with embed, hosted-link, and QR publishing options. New Lead and Estimate Request responses create leads automatically, while New Customer responses wait in Review Queue for an office decision.

  • Tips & related

    • Test the hosted form after every copy or field change and after rotating its token.
    • Keep the old and new token channels separate while republishing; old links stop working immediately after rotation.
    • Use the form name in Submissions filters when several forms collect similar contacts.
    • Related: create a lead and create a customer.

Need more help? If you can't find what you're looking for in our documentation, create a support ticket and our team will assist you.