| group_access | DTO_group_access[] | | Groups that may read or edit the form, where at least one entry with EDIT permission is required |
| sys_tags | DTO_reference[] | | Label can be used on POST/PUT to create new tags |
| collect_to_list | DTO_reference | | Custom list that submissions are stored in, required when collect_type is LIST and rejected when collect_type is TICKET |
| collect_to_group | DTO_reference | | Group that submitted tickets are created in, required when collect_type is TICKET and rejected when collect_type is LIST |
| modules | DTO_form_module[] | | Ordered building blocks of the form, such as headers, information texts and fields, where the same field can only be used once per form |
| logics | DTO_form_logic[] | | Conditional rules that show or hide fields, or forward to another field or form, depending on the answers given |
| language | DTO_reference | | Language used for the built in texts of the externally rendered form, and it must reference one of the platform languages |
| created_by | DTO_reference_user | ReadOnly | Created by |
| last_updated_by | DTO_reference_user | ReadOnly | Last updated by |
| id | Int32 | ReadOnly | Leave empty on input |
| highest_group_permission | ENUM group_permission | ReadOnly | Current users highest group permission |
| name | String | | Display name of the form, between 2 and 30 characters |
| unique_key | String | | Lowercase url safe key used to load the form externally, between 2 and 30 characters, unique within the workspace and built from name when left empty |
| privacy | ENUM privacy | | PUBLIC lets the form be loaded and submitted without authentication, while PRIVATE keeps it inside the workspace |
| collect_type | ENUM form_collect_type | | Decides whether a submission becomes a ticket (TICKET) or a row in a list (LIST) |
| display_type | ENUM form_display_type | | Layout the client renders the form with, and it is required since the server rejects a form where display_type is left unset |
| submit_text | String | | Label of the submit button, required on create and update |
| ticket_subject | String | | Subject given to tickets that are created from this form, so it only applies when collect_type is TICKET |
| primary_color | String | | Main color of the embedded form, given as six hexadecimal digits with an optional leading number sign |
| background_color | String | | Background color of the embedded form in the same format as primary_color, and the client derives the accent tones from the two colors |
| ai_chat_bot_enabled | Boolean (nullable) | | When true, the embedded form starts as an AI chat-bot answering from approved public FAQs.
Enabling requires at least 100 approved FAQ items.
Nullable so clients that omit the property on update leave the stored value unchanged. |
| created | DateTime | ReadOnly | Set by the server in UTC when the form is first stored |
| last_updated | DateTime | ReadOnly | Set by the server in UTC every time the form is changed |