Forms and data capture

Forms and data capture

Who can do this: people who can edit the form build it. Publishing needs the form's Owner right (its creator, or a space Owner). Filling it in needs Submit, or no sign-in at all for a public form. Rights are explained in the .

What it's for

A form is a page that writes what people type into one data table. Each submission becomes a new row. You can use the same form three ways:

Kind

Who fills it

What it takes

Internal

Your team, signed in

Nothing to publish. Limit who with Who can submit

Portal

Customers signed in to the

The form published to the portal, and the Submit right for their group

Public

Anyone with the link, no sign-in

The form and the space published

Before you start

•

You need a data table to receive the answers. A form cannot be built until you choose one.

•

For public forms that use a captcha, see the callout in step 5.

•

Forms that email people (assignments) need outgoing email.

Needs your administrator: the captcha. Require Cloudflare Turnstile only works when your administrator has entered the site key and secret under System → Config. Ask for "Cloudflare Turnstile keys". Check: if the secret is missing the check is silently skipped, and the form accepts submissions with no captcha even though the switch is on. Also needed for emails: outgoing email (SMTP) and the Public App URL. See .

Steps

1. Create the form and pick its table

1.

In the navigator, create a new item of type form (New Form).

2.

Under Target table, choose Pick a data table. Until you do, the editor only says "Select a data table above to start adding fields."

2. Add fields

Use Edit and Preview in the toolbar to switch between building and a test view. The builder, with Edit, Preview, Assign and Campaign, is for people with Edit on the form. People with only Read see the form without those buttons, and the server refuses their saves. A form in a document state that limits editing to certain groups is read-only to everyone outside them.

1.

Choose Add field and pick a column of the table. Fields you add are shown to the filler. Use Create new column… to add a column to the table as you go.

2.

Use Add section to group fields, and Add text for explanatory text.

3.

Open a field's settings (the cog) to set Help text, Placeholder, Required, and rules such as Min length, Max length, Pattern (regex), Min, Max.

4.

Move fields with the arrows. A column cannot be added twice.

To offer other languages, choose Add language, then Generate translations. The Default language is the language you wrote the form in.

Generate translations has the platform's AI write the translations in the background. It uses the AI provider that your administrator has marked for the Translation Background role (System, Config, AI; the label is in English only), or the server's own AI settings if none is marked. The calls count against the space's AI credits. You need Edit on the form to start it.

Address suggestions, in the settings of an address field, are not AI. They come from a Geocoder connector that you create with your own DaData API key (Google is listed as coming soon). The calls go to DaData under your key, so DaData's own terms and any charge apply to your DaData account. The platform adds no charge and counts no AI credits. Calls caused by visitors of a public form are capped by the connector's Public calls per day (5000 by default); past the cap, suggestions stop until the next day.

1.

Choose Add consent.

2.

Fill Checkbox label (e.g. "I agree") and Consent text, and set Version.

3.

When you change the wording, change the Version (the Today button fills it). Old submissions keep the text they agreed to.

Every consent block is required. A person cannot submit without ticking each one. If you change the version while someone has the form open, their submit is refused with "The form was updated while you had it open. Please reload the page and try again." The acceptance (version, time and the exact text) is recorded with the row's change history, not in a column. No screen shows it. The Data change log and a row's history list the changed cells and do not display consent records, so you cannot read an acceptance in the interface. It is also recorded only when the form is submitted through its public link. A portal or team submission of the same form requires the tick in the browser, but stores no acceptance.

4. Add line items (orders and quotes)

Choose Add line items when one submission has many lines, such as products in an order.

1.

Pick the Line table. Only tables that refer to the form's table are offered. If you see "No tables reference this form’s table", add a reference column first.

2.

Pick the Back-reference, the Line fields, and optionally Min lines and Max lines.

3.

Choose how people add lines: Item picker (add one by one), Cards (catalogue + cart), List (order sheet) or Spreadsheet table (seeded from a source).

The header row and all lines are saved together, or not at all. An invalid line rejects the whole submission.

5. Settings

Open Form settings (below the fields). It has three tabs.

General

•

Title, Subtitle, Width (Narrow to Maximal), Default language.

•

Submit button text, Confirmation title and Confirmation message: what the person sees afterwards.

•

After-submit link: None, Target table or Other. It gives the submitter a "Track your submission" link.

•

Allow another submission after success.

Access

•

Who can submit: Everyone, or Specific groups and tick the groups. Form editors can always submit. A group limit means people must sign in, so an anonymous visitor to a public form is turned away with "Please sign in to submit this form."

•

Require Cloudflare Turnstile: adds a captcha to public submissions.

Tracking

•

Auto-fill on submit: columns the server fills regardless of what is sent: Submission date column, External-user submitter column, Submitting employee column, Source column.

•

Capture request data can save the visitor's IP address, browser, referrer and UTM values into text columns.

•

Deduplication column: if a row already holds the same value, a signed-in person's submit edits that row. A public submit with an existing value is refused ("already submitted"). Leave None (always create a new row) if you do not want edits.

•

Linked tracking record: also create a row in another table on each submit.

Careful: the IP address, browser and UTM values are personal data. Capture them only if you tell visitors and need them. If Submitting employee column is set, the form accepts team submissions only; portal and public submissions are refused.

6. Share it

Internal. Nothing to publish. Team members open it in the navigator.

Portal. Follow the : open External users access… on the form, turn on Publish in the external portal, and grant the group Submit. If the form is limited by Who can submit, the customer must also be in one of those groups.

Public.

1.

Open the form's menu and choose Publish, or use Publish form in the editor. The editor's switch skips the check described next; the Publish dialog shows it.

2.

Pick Public (listed, reached by its Public URL slug) or Only by link (the same name in the Publish dialog; reached only by its secret link and hidden from the tree).

3.

Copy the Public form URL, or Copy link. A listed form lives at /public/<space address>/<slug>.

The public form is live only when the form is published and the space is published. Publishing a form publishes the space too if it was off. The dialog tells you: "The project was published too".

Careful: publishing the space opens the space's other public pages as well as this form. Check the first. Unpublishing the form later does not unpublish the space.

The publish check

If a field picks a record from another table, anonymous visitors read that table. In the Publish dialog the box Tables this form needs published lists each such table with its row count. A table that is not published makes its field fail with "Could not load this table".

You decide table by table: tick the tables you accept. Ticked tables are published together with the form, or at once with Publish selected if the form is already live.

Careful: publishing a table makes every one of its rows readable by anyone with the link. There is no per-visitor filtering on the public service. A table that holds this form's own submissions is never offered; leave it unpublished and accept that its picker will not work for visitors.

Embedding on your own site

The Publish dialog shows a Submit endpoint (API). A listed form has an address a visitor's browser on your own site can call, but only if your site is on the portal's allowed websites. Add it under External Portals → CORS settings (the dialog's own hint names the same place). An Only by link form has an address that does not work from another website. See , and read its warning first.

7. Forms as tasks (optional)

In the toolbar, Assign turns the form into a task: Enable assignment adds an Assignee column, an Assignment status column and a Due date column to the target table, and unfilled tasks expire on their own. You assign a group or named people, with an optional email. Enable manager review adds a Review tab where you choose Accept or Return with a note. Campaign sends the form to one recipient per row of a source table, for example one per shop, and shows coverage.

The Assign picker lists team members and team groups only. Assigned forms can also go to portal customers. In Campaign, Recipient column (on source) accepts an External user column as well as a person column. For each customer named there, the form is published to the portal, the customer is given the right to open and submit it, and the customer gets a notification. The AI assistant's form assignment can also name portal users and an external group.

Reviewing submissions

•

Open the target table. Each submission is a row. Line items are rows in the line table.

•

Use Notify me… on the table, or an , to be told about new rows.

•

For history and who submitted, see .

•

For assigned forms with review, open Assign → Review.

Credential requests

When an assistant needs a secret to connect something (a connector key or a messenger bot token), it never asks in chat. It gives you a link to a Credentials page with the heading Enter credentials.

1.

Open the link while signed in to the space. You need to be able to read the space.

2.

Type the values and choose Save and connect.

3.

The values go straight into the encrypted settings. The assistant never sees them. A connection check runs and its result is shown.

You can forward the link to the person who holds the key. They need the right the setting itself needs: Owner for a connector, Manage Members for a messaging channel. Otherwise the page says "Entering these needs more access than you have in this project." A link is valid for 7 days. After that, or if it was replaced, ask the assistant for a new one.

How to check it worked

•

Preview the form, then fill it in as a test and find the row in the target table.

•

For a public form, open the link in a private window with no sign-in. Submit once. Check that the row appears and that the confirmation text is yours.

•

For a portal form, use the preview described in the . The form should appear for a customer in the right group.

•

If you use a captcha, confirm with your administrator that the keys exist. Then submit twice in a row and check that the captcha shows.

Undo / what can go wrong

Situation

What to do

The public link does not open the form

The form or the space is not published. Open Publish and check both

A field shows "Could not load this table"

The referenced table is not published. Use the publish check

Visitors see "Too many submissions"

The service allows about 20 submissions per minute per address. Wait a minute

A signed-in customer cannot see the form

They lack Submit, are outside the Specific groups, or the form is not published to the portal

Wrong form published

Turn Publish form off. Rows already submitted stay. Tables you published through the check stay published; unpublish them yourself

Bad submissions

Delete the rows in the table. Undo for rows is in

•

•

•

•

Platform concepts: forms in depth.