Form and custom field reference
Review form modes, basic fields, custom field kinds and scopes, query integration, and submission behavior.
This reference describes how form and custom field settings affect customers, reservations, and operating features.
Find form settings in Forms and field settings in Custom fields. Verify writes in Customers, Reservations, and Responses. Open Workflows to automate a query. Select the decision below and open the related section.
| Decision | Section |
|---|---|
| Select whether submission changes a customer or reservation | Modes |
| Include basic identity, contact, or start-time fields | Basic fields |
| Select a stored value and its table filter | Custom field kinds |
| Share a field across forms or limit it to one form | Form scope |
| Find the same value in tables and automations | Tables, queries, and automations |
| Understand drafts, resume links, and final submission | Draft and final submission |
Form settings
| Field | Purpose | Constraint or default |
|---|---|---|
Slug | Identifies the form in /f/<slug>. | Use lowercase letters, numbers, and hyphens. It must be unique in the organization. |
Label | Shows the form title to the customer. | Enter each supported language. |
Description | Explains the purpose and input. | State what the organization collects and why. |
Success Message | Appears after the server write completes. | State the result and next action. |
Prompt | Adds context to AI that targets this form. | Do not copy field rules or include secrets and personal data. |
Static Fields | Selects from the target's public basic fields. | An empty list includes all public basic fields. |
Active | Makes the form available to new links. | Turning it off keeps existing submissions. |
Mode | Selects the target and write action together. | An incompatible target or access value is rejected. |
Access | Uses a public link or a customer-bound secure link. | Update Target always uses Token. |
Modes
Mode | Target | Write action | Access | Typical use |
|---|---|---|---|---|
Update Self | Customer | Updates the current visitor or linked customer. | Public, Token | Customer intake or profile update |
Insert | Reservation | Creates a reservation for the linked visitor. | Public, Token | Reservation creation without a contact group |
Profile Then Insert | Reservation | Saves contact data, then creates a reservation. | Public, Token | Public consultation or reservation intake |
Update Target | Reservation | Updates the reservation fixed in the secure link. | Token | Reservation change or added details |
The Profile Then Insert contact group includes name, email, and phone. It also includes public
customer custom fields in the form. A new or saved phone number is required so the organization
can confirm the reservation.
Basic fields
| Target | Public basic fields | Note |
|---|---|---|
| Customer | name, email, phone | Do not create customer custom fields with these keys. |
| Reservation | starts_at, notes | starts_at follows the availability rules. |
When Static Fields contains keys, the form shows only those keys. A key outside the target's public fields invalidates the form.
Custom field settings
| Field | Purpose | Constraint or default |
|---|---|---|
Target | Selects the customer, reservation, or conversation that owns the value. | A form shows matching target fields in its target group. |
Key | Provides the stable name for storage, tables, and automations. | Start with a letter or number. Use letters, numbers, _, and -. Maximum length is 63. |
Label | Names the input and table column. | You can change the label without changing the key. |
Description | Explains the answer scope and use to the customer. | Keep it short. Do not repeat the label. |
Kind | Selects the value type and control. | Review the field-kind table. |
Field Group | Groups related questions into one form section. | Use the exact same name for fields in one section. |
Visibility | Controls customer-form and public-AI exposure. | Private remains on internal surfaces. |
Required | Blocks a write when an active value is blank. | It does not apply while a conditional field is hidden. |
Position | Controls order within one group. | A smaller number appears first. |
Forms | Limits the field to named forms. | Search and select one or more real forms. Empty shares the field with all named forms, base landing inputs, and AI. |
Show When | Shows the field for one gate value. | Use gate_key=value. Nested conditions are not supported. |
Do not duplicate a key within one organization and target. Do not use name, email, or phone
for customer custom fields in Profile Then Insert.
Custom field kinds
Kind | Stored value | Customer form | Table filter | Extra setting |
|---|---|---|---|---|
Text | String | Yes | Text search | None |
Text Area | Long string | Yes | Text search | None |
Markdown | Markdown string | Yes | Text search | None |
Date | Date string | Yes | Exact value | None |
Switch | true or false | Yes | On or off | Can gate conditions |
Number | Number | Yes | Exact value | None |
Select | One option | Yes | Option | Comma-separated Options |
Multi Select | Option array | Yes | Contains option | Comma-separated Options |
File | Uploaded file URL | Yes | None | Upload a file or paste a public URL |
Member | Member reference | No | Internal picker | Never expose an internal ID to customers. |
Entity | Content reference | No | Internal picker | Can require a parent node for its option scope. |
Organization | Organization reference | No | Internal picker | Follows organization scope and permissions. |
Public visibility does not make every kind safe for customer input. Member, Entity, and
Organization remain internal-only. File stores a public HTTP URL and uploads into the current
visitor's scoped Storage path. Unknown future kinds also fail closed.
Form scope
This table applies to a public-safe field with Public visibility.
Forms value | Named customer forms | Base landing input | Customer AI | Dashboard tables and automations |
|---|---|---|---|---|
| Empty | All forms | Included | Included | Included |
| One or more slugs | Assigned forms only | Excluded | Excluded from general AI input | Included |
Leave the scope empty for a field with one meaning across channels. For an event or campaign field, search and select actual forms in Forms. Free text and Enter cannot create an unknown slug. Selecting several forms reuses one field definition and storage key. Form scope does not change the value owner or internal table visibility.
Tables, queries, and automations
Customer and reservation tables show each custom field as a column with its Label. The column
header provides a search or filter that matches the field kind. Saved table queries keep custom
field filters with other conditions.
Automation and technical references use a custom.<key> path.
query:
where:
"custom.consultation_type": { eq: "Other" }
"custom.preferred_channel": { contains: ["Email"] }This query selects reservations with an Other consultation and an Email preferred channel. See Automation query reference for the full grammar.
AI form goals
Select a public form on a landing AI CTA. Final submission of that form becomes the conversation goal. Field kinds, options, required rules, and conditions also apply to AI submission. A field scoped to that named form is included when AI targets the same form.
An AI goal uses only a Public form. Do not send a Token form or customer-bound secure link into a
conversation. Retries in one conversation do not duplicate the response or customer and
reservation work. See Connect an AI conversation to a form goal.
Customer account
Connected Kakao, LINE, or Meta sign-in providers appear at /login on the tenant landing site. A
signed-in customer can use /account to review owned reservations, form drafts, and submitted
responses. They can cancel a pending or confirmed reservation. They can start a secure change when
an active Update Target Token form exists. See
Connect customer sign-in and reservation management.
Compare representative configurations
| Operating goal | Mode | Access | Basic-field example | Custom-field example |
|---|---|---|---|---|
| Collect a new customer's details | Update Self | Public | name, email, phone | Customer grade and preferred language |
| Accept a public consultation | Profile Then Insert | Public | starts_at, notes | Customer goal and reservation type |
| Update a known customer | Update Self | Token | Only the contact to change | Customer consent state |
| Complete an existing reservation | Update Target | Token | notes | Visit reason or pre-visit answers |
These are synthetic configuration examples. Include only the fields required for the operation. Before sharing a link, use Choose public or secure form access to check data sensitivity and record binding.
Draft and final submission
- A named form saves a draft after a value changes.
- An address with resume information restores an unsubmitted draft.
- A draft can omit required values.
- Final submission validates active required fields and value types.
- The write removes unknown keys and hidden conditional values.
- One submission key changes the customer or reservation once.
- A final submission keeps the form version, field definitions, and answers.
- The success message appears only after the write completes.
Use Create and publish a reservation form for setup. Use Test and troubleshoot a form for failure symptoms.
Review responses and start follow-up work
Review the submission state, saved answers, and target record. Use the same custom-field values in table filters and workflows.
Test and troubleshoot a form
Test fields, conditions, drafts, secure links, duplicate submission, table filters, and data ownership before publication.