Form — Configuration
Complete reference for all Form node properties, form_schema options, and expression support.
Properties Reference
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
assigned_to |
string | Required | — | The user ID of the actor who must complete the form. Unlike the Approval node, the Form node assigns to a single actor only. Supports BizFirst expressions to resolve the actor dynamically at runtime. |
form_schema |
string | object | Required | — | Either a reference to a pre-built Atlas Form (string ID, e.g., "form:kyc-standard-v3") or an inline JSON schema object defining the form fields. See the schema section below for the inline format. |
title |
string | Required | — | The title displayed at the top of the form and in the actor's inbox notification. Supports BizFirst expressions. |
description |
string | Optional | "" |
Instructions or context displayed to the actor above the form fields. Supports HTML formatting and BizFirst expressions. Use this to explain what information is needed and why. |
due_at |
string (expression) | Optional | null |
ISO 8601 datetime or BizFirst expression for the submission deadline. When set, actors receive overdue reminders and the inbox item is marked with a deadline indicator. Example: "{{ $now.AddHours(48) }}". |
prefill |
object | Optional | {} |
Key-value map of field IDs to pre-fill values. Values support BizFirst expressions. Pre-filled fields are editable by the actor unless the field is marked readonly: true in the form schema. |
Inline Form Schema
When not using a pre-registered Atlas Form ID, define fields inline using this structure:
{
"form_schema": {
"fields": [
{
"id": "full_name",
"type": "text",
"label": "Full Legal Name",
"required": true,
"placeholder": "As it appears on your ID document"
},
{
"id": "date_of_birth",
"type": "date",
"label": "Date of Birth",
"required": true,
"max": "{{ $now.AddYears(-18) }}"
},
{
"id": "account_type",
"type": "select",
"label": "Account Type",
"required": true,
"options": ["Personal", "Business", "Joint"]
},
{
"id": "id_document",
"type": "file",
"label": "Government-Issued ID",
"required": true,
"accept": "image/*,application/pdf",
"max_size_mb": 5
},
{
"id": "declaration",
"type": "checkbox",
"label": "I confirm that all information provided is accurate and complete.",
"required": true
}
]
}
}
Sample Full Configuration
{
"nodeType": "Form",
"id": "form_kyc_collection",
"label": "Customer KYC Form",
"config": {
"assigned_to": "{{ $var.customer_user_id }}",
"form_schema": "form:kyc-standard-v3",
"title": "Identity Verification — Account Activation",
"description": "To activate your account, please complete the identity verification form below. All fields are required. Documents must be clear and legible. Your information is stored securely and processed in accordance with our Privacy Policy.",
"due_at": "{{ $now.AddHours(72) }}",
"prefill": {
"full_name": "{{ $var.customer_name }}",
"email": "{{ $var.customer_email }}",
"phone": "{{ $var.customer_phone }}"
}
}
}
Form schema versioning: When referencing a pre-built form by ID, changes to the form definition in Atlas Forms will be reflected in all workflows using that form ID. For stable workflow behaviour across form iterations, use versioned form IDs (e.g.,
"form:kyc-standard-v3") rather than unversioned aliases.
Expression Support
| Property | Expression Support |
|---|---|
assigned_to | Supported |
title | Supported |
description | Supported |
due_at | Supported |
prefill values | Supported |
form_schema (reference ID) | Static only |