Public forms and links
Four kinds
| Kind | Who opens it | Typical use |
|---|---|---|
| Open form | Anyone with the link | A quote request or enquiry form on your website. |
| Record link | The person a link was made for, for one record | Approve a quote with a signature, a job sign-off sheet, a job status page, an invoice with a Pay button. |
| Customer portal (no login) | The person a record link was made for | A record link with pages: a customer's quotes, jobs and invoices. |
| Lookup page | Anyone who can prove a fact on file, or enter a 6-digit one-time code | Type a job or order number and see its status. |
Build, check, publish
A form is three JSON documents (definition, data and mapping). Administrators build them in the web app under Settings, Public forms, or through the public-forms staff API at https://<api-host>/public-forms with a signed-in administrator session. A check validates everything against the live schema and returns a plain-English summary of who can open it, what they see and what a response writes; publishing freezes that version.
| Call | Purpose |
|---|---|
GET /public-forms | List forms with link and inbox counts |
POST /public-forms | Create a draft |
GET /public-forms/:id/check | Validate and get the summary |
POST /public-forms/:id/publish | Put a new version live |
POST /public-forms/:id/links | Make links: one, or up to 500 record links per call |
POST /public-forms/:id/links/:linkId/revoke | Revoke a link |
GET /public-forms/:id/submissions | The responses inbox |
Links
- A new link's URL is returned once and stored only as a hash.
- Links can carry an expiry and a maximum number of submissions, and can be revoked.
- From an automation,
send_public_linkmakes a link and sends it by email or SMS in one step; the default expiry is 30 days. - Responses fire automation triggers:
public_formopened, submitted, signed and paid.
Payments and signatures
Pay buttons use Stripe-hosted checkout on the workspace's own Stripe account; the amount always comes from the record, and a payment counts only when Stripe's signed webhook confirms it. Drawn signatures are stored with the response. One response can carry up to 12 files and 60 MB.
Portal users
When outside people need to sign in, for example a contractor or a customer who returns often, they become portal users: they sign in with their own email and password, see one web app, and see only the rows tied to them, enforced by Postgres row security. Administrators set them up under Settings, Portal users (check, apply, invite). AI widgets, chat and voice, the email inbox, PDF generation and export are not available inside a portal.
Checked against the Fieldproxy platform reference on October 18, 2026.
Get your own custom field service management within a day. Tailored to your workflows.
We set up a workspace on your own data and connect your AI or your systems on the call.
Get Demo