Forms
Create structured data types to collect, store, and manage information through AI-powered conversations or manual entry.
Forms
Forms (also called Data Types) let you define structured data for your workspace. AI agents can fill them through natural conversation, or team members can enter data manually.
Creating a Form
- Go to Knowledge → Forms
- Click Create Form
- Fill in the form settings:
| Setting | What It Does |
|---|---|
| Name | Display name shown in the UI |
| Slug | Unique identifier used in API calls and template variables (letters, numbers, underscores only) |
| Description | Optional notes about the form's purpose |
| Prompt | Instructions the AI follows when collecting this data through conversation |
| Collection | When enabled, allows multiple records per person (e.g., multiple appointments). When off, each person has one record. |
| Pinned | Show this form on the workspace dashboard for quick access |
Field Types
Each form contains fields that define what data to collect. Add fields by clicking Add Field in the form editor.
| Type | Use For | Example |
|---|---|---|
| Text | Short text (single line) | Name, address |
| Long Text | Multi-line input | Notes, descriptions |
| Validated email address | Contact email | |
| Phone | Phone number | Mobile, office number |
| Number | Decimal values | Weight, temperature |
| Integer | Whole numbers | Age, count |
| Date | Calendar date | Date of birth, appointment date |
| Date & Time | Date with time | Appointment timestamp |
| Time of Day | Time only | Office hours start |
| Dropdown | Single choice from a list | Status, category |
| Multi-select | Multiple choices from a list | Symptoms, interests |
| Yes/No | Boolean toggle | Consent, eligibility |
| ZIP Code | US ZIP code | Mailing address |
| Formula | Auto-calculated value (see Computed Fields) | Score total, BMI |
Field Settings
Every field has these configurable settings:
| Setting | What It Does |
|---|---|
| Name | Display label for the field |
| Slug | API identifier (letters, numbers, underscores only). Changing this after data exists may cause data loss. |
| Description | Help text shown to users and AI agents |
| Required | Makes the field mandatory — the AI will keep asking until it gets a value |
| Default Value | Pre-populated value for new records |
| Admin Only | Hides this field from non-admin members |
| Searchable | Enables search indexing so records can be found by this field's values |
Dropdown and Multi-select Options
For Dropdown and Multi-select fields, you define a list of options:
- Label — What's displayed to the user
- Value — What's stored (can differ from the label)
- Visible When — Optional CEL expression to conditionally show/hide an option based on other field values (e.g.,
record.data.category == "urgent")
You can add options one at a time or use Bulk Mode to paste multiple options at once.
Collections vs. Single Records
The Collection toggle changes how the form behaves:
| Mode | Behavior | Best For |
|---|---|---|
| Single (off) | One record per person | Profile info, intake forms, preferences |
| Collection (on) | Multiple records per person | Appointments, orders, assessments |
In the UI, single-record forms show as a form view while collections show as a table of entries.
Using Forms in Workflows
Attach forms to tasks in your workflows so your AI agent can collect data naturally through conversation.
- Create or edit a Task in the workflow editor
- In the task settings, attach a form under Data Collection
- The AI uses the form's Prompt field for context on how to collect the data
- During conversation, the AI asks for each field and validates responses automatically
The AI adapts to the conversation flow — it doesn't rigidly go field by field. It can collect multiple values from a single message and ask follow-up questions when needed.
Validation
Beyond basic required/type validation, you can add custom validation rules using CEL expressions. Set a validateCel expression on any field to enforce business rules.
Available variables in validation expressions:
| Variable | Description |
|---|---|
value | The current field's value |
record.data.<slug> | Another field's value in the same form |
member.id | Current member's ID |
member.name | Current member's name |
member.labels | List of label slugs on the member |
now.year, now.month, now.day | Current date components |
The expression should return true if valid, or a string error message if invalid.
cel
Bulk Import & Export
Import records in bulk from CSV files:
- Open the form and go to the Records tab
- Click Import and upload a CSV file
- Map CSV columns to form fields
- Review and confirm the import
The bulk importer supports up to 10,000 records per batch. It can create new records or update existing ones using an external ID for matching.
To export, click Export on the Records tab to download all records as CSV.
Events & Automations
Forms trigger events you can use with Actions:
| Event | When It Fires |
|---|---|
| Record Created | A new record is submitted |
| Record Updated | An existing record is changed |
Use these events to trigger notifications, webhooks, or other automated actions. Target specific forms using conditions in your action rules.
Referencing Form Data
Access form data in template variables and messages:
{{member.data.<form_slug>.<field_slug>}}
For single-record forms, this returns the field value directly.
For collection forms, use member.collections for structured access:
{{member.collections.<form_slug>.count}}
{{member.collections.<form_slug>.latest.data.<field_slug>}}
{{member.collections.<form_slug>.latest.created_at}}
Loop through recent records (up to 10):
{% for record in member.collections.<form_slug>.recent %}
- {{record.data.<field_slug>}} ({{record.created_at}})
{% endfor %}
See the Template Variables guide for more details.
Tips
- Use clear prompts — The form's Prompt field guides the AI. Be specific about tone, order of questions, and validation expectations.
- Test with conversation — After setting up a form, test it by chatting with your agent to make sure the data collection flow feels natural.
- Index searchable fields — Enable search indexing on fields you'll frequently filter or search by. This runs a background indexing job.
- Slugs are permanent — Plan your field slugs carefully. Changing a slug after data has been collected can break references and lose data.
Related
- Knowledge — Overview of all Knowledge features
- Computed Fields — Auto-calculated formula fields
- Actions — Trigger automations from form events
- Template Variables — Use form data in messages
Related Resources
Files
Upload, organize, and share documents, images, and files with folder hierarchies and access controls.
Labels
Organize members, chats, and files with color-coded tags for filtering, automations, and access control.
Computed Fields
Automatically calculate form values using CEL formulas for scoring, totals, and derived data.
All Guides
Browse all available guides