---
title: entities.onlineFormType
description: Read online form type records with the onlineFormType repository, and change them with the online form type mutations. Same records as the REST OnlineFormTypes entity.
canonical: https://developers.coevera.com/reference/graphql/online-form-type/
section: graphql
verification: schema
generatedFrom: schema f155746 (2026-10-20)
publisher: Coevera
---

# entities.onlineFormType

Read online form type records with the onlineFormType repository, and change them with the online form type mutations. Same records as the REST OnlineFormTypes entity.

REST: [OnlineFormTypes](https://developers.coevera.com/reference/rest/online-form-types.md).

## Queries

- `getById(entityId: ID!): OnlineFormTypeEntity` Returns the record with the given id, or null when there is none. Deleted records are returned as well.
- `getByIds(entityIds: [ID!]!): [OnlineFormTypeEntity!]!` Returns the records with the given ids; ids without a record are left out. Deleted records are returned as well.
- `getAll(limit: Int, offset: Int, filter: OnlineFormTypeFilterInput, orderBy: [OnlineFormTypeOrderByInput!], includeDeleted: Boolean): [OnlineFormTypeEntity!]!` Returns the records that match the filter, paged with limit and offset.
- `getByCriteria(filter: OnlineFormTypeFilterInput, orderBy: [OnlineFormTypeOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int): OnlineFormTypeEntityConnection` Returns the records that match the filter as a cursor-paginated connection.
- `getChangedFieldsSinceRevision(id: UUID!, revision: Int!): [UUID!]!` Returns the ids of the fields of a record that changed after the given revision. Returns an empty list for entities without change tracking.
- `getByOnlineFormTypeCriteria(listingOptions: OnlineFormTypeTabDataGridViewOptionsParams!, filter: OnlineFormTypeFilterInput, orderBy: [OnlineFormTypeOrderByInput!], before: String, after: String, first: Int, last: Int): OnlineFormTypeEntityConnection` Returns a page of online forms filtered by owner, enabled state and status, in addition to the regular filter.

## Mutations

- `createOnlineFormType(input: CreateOnlineFormTypeInput!, validationLevel: [ValidationLevel!]): CreateOnlineFormTypePayload` Create one record.
- `updateOnlineFormType(input: UpdateOnlineFormTypeInput!, validationLevel: [ValidationLevel!], sessionIdToUpdate: String): UpdateOnlineFormTypePayload` Update fields.
- `bulkUpdateOnlineFormType(input: [CreateOrUpdateOnlineFormTypeInput!]!, deleteInput: [DeleteOnlineFormTypeInput!], validationLevel: [ValidationLevel!], rollbackMethod: RollbackMethod, match: MatchingInput): BulkUpdateOnlineFormTypePayload` Create or update many; per-item results.
- `deleteOnlineFormType(input: DeleteOnlineFormTypeInput!): DeleteOnlineFormTypePayload` Soft-delete.

## Types

### OnlineFormTypeEntity (object)

Online form definition: the fields and settings of a web form whose submissions create or update records.

- `hasDraft: Boolean` True when the record has unpublished draft changes, including pending translation changes, that can be published.
- `isDeleteProtected: Boolean!` True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
- `formEditApi: OnlineForm` Typed, read-only view of the online form definition (formEdit): its fields, layout and settings.
- `canChangeReadonly: Boolean` False for types whose read-only setting is fixed, such as the recurrent appointment type; true otherwise.
- `id: ID!` Unique identifier of entity.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `owner: ClientEntity` User who owns the online form.
- `style: OnlineFormStyleEntity` Visual style applied to the form when rendered.
- `autoPrefillWithJavascript: Boolean` When true, the embedded form JavaScript pre-fills fields from URL query parameters on load.
- `description: String` Free-text description shown alongside the form definition in the UI.
- `entityApiName: String` API name of the custom entity the form targets. Set only when entityType is CustomEntity; otherwise empty.
- `entityType: BaseEntityTypeEnum!` Entity the form is built for: its fields can be placed on the form and each submission is linked to a record of this entity. For custom entities, entityApiName identifies the custom entity.
- `formEdit: JSONString!` Definition of the form layout (fields, sections, settings) shown to respondents, as a JSON object conforming to the online-form layout schema. Validated on write. This payload conforms to the `OnlineForm` JSON Schema: GET /api/v100/rest/schemas/OnlineForm.json on your region's API host
- `isEnabled: Boolean!` When true, the form is published and accepts new submissions; when false, the form returns an error to respondents.
- `isReadonly: Boolean!` True when the form is system-managed and its schema cannot be edited by users.
- `lastSchemaChange: DateTime` Timestamp of the most recent change to formEdit (form schema).
- `lastStatusChange: DateTime` Timestamp of the most recent change to isEnabled.
- `name: String!` Name of the entity and its default text representation.
- `notificationsStatus: JSONString` Tracks which threshold-reached notifications have already been sent for the current form configuration. Reset when the configuration changes.
- `ownerId: ID!` Id of the owning user.
- `styleId: ID!` Id of the form style.
- `revision: Int` Revision when entity was lastly changed.
- `responseAcceptanceThreshold: Int` Minimum response count required for the form to be considered "responsive" in reports and notifications. Empty when no threshold is configured.
- `sentCount: Int` Total number of times the form link has been delivered to recipients.
- `sentUniqueCount: Int` Number of distinct recipients the form link has been delivered to.
- `responseCount: Int` Total number of submissions (responses) recorded for the form.
- `responseRate: Float` Fraction (0–1) of unique recipients who submitted a response.
- `lastResponseDate: DateTime` Timestamp of the most recent submission. Empty when the form has no responses.
- `lastResponseBy: String` Name or email address of the respondent on the most recent submission. Empty when the form has no responses or the respondent could not be identified.
- `solutions: SolutionEntityConnection (4 args)` Solutions whose canvas contains this record. Deleted solutions are not included.
- `activityLogs: OnlineFormEntityConnection (7 args)` Submissions (one per response) recorded for this form.
- `linkId: String!` Short identifier used in the public form URL (see link). Stable across the lifetime of the form.
- `summarizedResponseValues: Int` Sum of response values used to evaluate the response acceptance threshold (e.g. total responses, or evaluated value of the custom acceptance condition). Empty when no threshold is configured.
- `link: String` Public URL for accessing the form (suitable for sharing with respondents).
- `status: ProcessStatusEnum` Overall state of the form: Inactive while it has no active configuration, Active while accepting responses, Completed once the configured end condition is met.
- `hasCustomRecaptcha: Boolean!` True when the form is configured with custom reCAPTCHA credentials; false when using the platform default reCAPTCHA setup.
- `instancePermissions: [EntityPermsEnum!]! (1 args)` Permissions the current user has on this record, out of the requested ones.
- `usedFieldIds: [ID!]!` Ids of all fields that appear in at least one submission of this form.
- `responseSummaries: OnlineFormResponseSummaryItemConnection (7 args)` Records the form was sent to or that responded to it, one item per record with its send and response dates and number of responses.
- `responses: OnlineFormResponseItemConnection (8 args)` Submissions of this form with their answers.
- `uploadedFiles: OnlineFormUploadedFiles! (2 args)` Files uploaded through the submissions of this form.

### OnlineFormResponseItemConnection (object)

Paginated list of OnlineFormResponse items.

- `pageInfo: PageInfo!` Pagination data for this connection.
- `edges: [OnlineFormResponseItemEdge]!` Contains the nodes in this connection.
- `totalCount: Int!` Total number of results in the view

### OnlineFormResponseItemEdge (object)

A Relay edge containing a `OnlineFormResponseItem` and its cursor.

- `node: OnlineFormResponse` The item at the end of the edge
- `cursor: String!` A cursor for use in pagination

### OnlineFormResponseSummaryItemConnection (object)

Paginated list of OnlineFormResponseSummary items.

- `pageInfo: PageInfo!` Pagination data for this connection.
- `edges: [OnlineFormResponseSummaryItemEdge]!` Contains the nodes in this connection.
- `totalCount: Int!` Total number of results in the view

### OnlineFormResponseSummaryItemEdge (object)

A Relay edge containing a `OnlineFormResponseSummaryItem` and its cursor.

- `node: OnlineFormResponseSummary` The item at the end of the edge
- `cursor: String!` A cursor for use in pagination

### OnlineFormTypeEntityConnection (object)

Paginated list of OnlineFormType records.

- `pageInfo: PageInfo!` Pagination data for this connection.
- `edges: [OnlineFormTypeEntityEdge]!` Contains the nodes in this connection.
- `totalCount: Int` Total number of items in the connection.

### OnlineFormTypeEntityEdge (object)

A Relay edge containing a `OnlineFormTypeEntity` and its cursor.

- `node: OnlineFormTypeEntity` The item at the end of the edge
- `cursor: String!` A cursor for use in pagination

### OnlineFormTypeFilterInput (input)

Filter conditions for OnlineFormType records. Conditions on different fields are combined with AND; use OR, AND and NOT for other combinations.

- `OR: [OnlineFormTypeFilterInput!]` Matches records that meet at least one of the listed filters.
- `AND: [OnlineFormTypeFilterInput!]` Matches records that meet all of the listed filters.
- `NOT: OnlineFormTypeFilterInput` Matches records that do not meet this filter.
- `globalSearchQuery: String` Search term matched against the fields that the global search covers for this entity.
- `id: EntityFilterStringField` Unique identifier of entity.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: EntityFilterDateTimeField` Last modification time.
- `created: EntityFilterDateTimeField` Creation time.
- `autoPrefillWithJavascript: Boolean` When true, the embedded form JavaScript pre-fills fields from URL query parameters on load.
- `description: EntityFilterStringField` Free-text description shown alongside the form definition in the UI.
- `entityApiName: EntityFilterStringField` API name of the custom entity the form targets. Set only when entityType is CustomEntity; otherwise empty.
- `entityType: BaseEntityTypeEnumFilterInput` Entity the form is built for: its fields can be placed on the form and each submission is linked to a record of this entity. For custom entities, entityApiName identifies the custom entity.
- `isEnabled: Boolean` When true, the form is published and accepts new submissions; when false, the form returns an error to respondents.
- `isReadonly: Boolean` True when the form is system-managed and its schema cannot be edited by users.
- `lastSchemaChange: EntityFilterDateTimeField` Timestamp of the most recent change to formEdit (form schema).
- `lastStatusChange: EntityFilterDateTimeField` Timestamp of the most recent change to isEnabled.
- `name: EntityFilterStringField` Name of the entity and its default text representation.
- `ownerId: EntityFilterStringField` Id of the owning user.
- `styleId: EntityFilterStringField` Id of the form style.
- `revision: EntityFilterNumberField` Revision when entity was lastly changed.
- `responseAcceptanceThreshold: Int` Minimum response count required for the form to be considered "responsive" in reports and notifications. Empty when no threshold is configured.
- `sentCount: Int` Total number of times the form link has been delivered to recipients.
- `sentUniqueCount: Int` Number of distinct recipients the form link has been delivered to.
- `responseCount: Int` Total number of submissions (responses) recorded for the form.
- `responseRate: Float` Fraction (0–1) of unique recipients who submitted a response.
- `lastResponseDate: DateTime` Timestamp of the most recent submission. Empty when the form has no responses.
- `lastResponseBy: String` Name or email address of the respondent on the most recent submission. Empty when the form has no responses or the respondent could not be identified.
- `status: ProcessStatusEnum` Overall state of the form: Inactive while it has no active configuration, Active while accepting responses, Completed once the configured end condition is met.
- `owner: ClientFilterInput` User who owns the online form. Matches records where a related record meets these conditions.
- `style: OnlineFormStyleFilterInput` Visual style applied to the form when rendered. Matches records where a related record meets these conditions.
- `activityLogs: OnlineFormFilterInput` Submissions (one per response) recorded for this form. Matches records where a related record meets these conditions.

### OnlineFormTypeOrderByInput (input)

Sorting of OnlineFormType records. Set exactly one field in each item; list several items to sort by more fields, in order of priority.

- `id: OrderByEnum` Unique identifier of entity.
- `isDeleted: OrderByEnum` Specifies if the entity is considered deleted.
- `modified: OrderByEnum` Last modification time.
- `created: OrderByEnum` Creation time.
- `owner: [ClientOrderByNestedInput!]` User who owns the online form. Sorts by fields of the related record, listed in order of priority.
- `style: [OnlineFormStyleOrderByNestedInput!]` Visual style applied to the form when rendered. Sorts by fields of the related record, listed in order of priority.
- `autoPrefillWithJavascript: OrderByEnum` When true, the embedded form JavaScript pre-fills fields from URL query parameters on load.
- `description: OrderByEnum` Free-text description shown alongside the form definition in the UI.
- `entityApiName: OrderByEnum` API name of the custom entity the form targets. Set only when entityType is CustomEntity; otherwise empty.
- `isEnabled: OrderByEnum` When true, the form is published and accepts new submissions; when false, the form returns an error to respondents.
- `isReadonly: OrderByEnum` True when the form is system-managed and its schema cannot be edited by users.
- `lastSchemaChange: OrderByEnum` Timestamp of the most recent change to formEdit (form schema).
- `lastStatusChange: OrderByEnum` Timestamp of the most recent change to isEnabled.
- `name: OrderByEnum` Name of the entity and its default text representation.
- `ownerId: OrderByEnum` Id of the owning user.
- `styleId: OrderByEnum` Id of the form style.
- `revision: OrderByEnum` Revision when entity was lastly changed.
- `responseAcceptanceThreshold: OrderByEnum` Minimum response count required for the form to be considered "responsive" in reports and notifications. Empty when no threshold is configured.
- `sentCount: OrderByEnum` Total number of times the form link has been delivered to recipients.
- `sentUniqueCount: OrderByEnum` Number of distinct recipients the form link has been delivered to.
- `responseCount: OrderByEnum` Total number of submissions (responses) recorded for the form.
- `responseRate: OrderByEnum` Fraction (0–1) of unique recipients who submitted a response.
- `lastResponseDate: OrderByEnum` Timestamp of the most recent submission. Empty when the form has no responses.
- `lastResponseBy: OrderByEnum` Name or email address of the respondent on the most recent submission. Empty when the form has no responses or the respondent could not be identified.
- `solutions: OrderByEnum` Names of the solutions whose canvas contains this form, in name order. Empty when the form is on no solution canvas.
- `status: OrderByEnum` Overall state of the form: Inactive while it has no active configuration, Active while accepting responses, Completed once the configured end condition is met.

### CreateOnlineFormTypeInput (input)

Field values of a new OnlineFormType record.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `autoPrefillWithJavascript: Boolean` When true, the embedded form JavaScript pre-fills fields from URL query parameters on load.
- `description: String` Free-text description shown alongside the form definition in the UI.
- `entityApiName: String` API name of the custom entity the form targets. Set only when entityType is CustomEntity; otherwise empty.
- `entityType: BaseEntityTypeEnum!` Entity the form is built for: its fields can be placed on the form and each submission is linked to a record of this entity. For custom entities, entityApiName identifies the custom entity.
- `formEdit: JSONString!` Definition of the form layout (fields, sections, settings) shown to respondents, as a JSON object conforming to the online-form layout schema. Validated on write. This payload conforms to the `OnlineForm` JSON Schema: GET /api/v100/rest/schemas/OnlineForm.json on your region's API host
- `isEnabled: Boolean!` When true, the form is published and accepts new submissions; when false, the form returns an error to respondents.
- `isReadonly: Boolean!` True when the form is system-managed and its schema cannot be edited by users.
- `lastSchemaChange: DateTime` Timestamp of the most recent change to formEdit (form schema).
- `lastStatusChange: DateTime` Timestamp of the most recent change to isEnabled.
- `name: String!` Name of the entity and its default text representation.
- `notificationsStatus: JSONString` Tracks which threshold-reached notifications have already been sent for the current form configuration. Reset when the configuration changes.
- `ownerId: ID!` Id of the owning user.
- `styleId: ID!` Id of the form style.
- `revision: Int` Revision when entity was lastly changed.
- `customRecaptcha: CustomRecaptcha` Custom reCAPTCHA keys (siteKey and secretKey) used on the forms of this type instead of the platform default; null switches back to the default. Write-only; hasCustomRecaptcha tells whether keys are set.

### CreateOrUpdateOnlineFormTypeInput (input)

Field values of an OnlineFormType record to create, or to update when its id is set.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID` Unique identifier of entity.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `autoPrefillWithJavascript: Boolean` When true, the embedded form JavaScript pre-fills fields from URL query parameters on load.
- `description: String` Free-text description shown alongside the form definition in the UI.
- `entityApiName: String` API name of the custom entity the form targets. Set only when entityType is CustomEntity; otherwise empty.
- `entityType: BaseEntityTypeEnum` Entity the form is built for: its fields can be placed on the form and each submission is linked to a record of this entity. For custom entities, entityApiName identifies the custom entity.
- `formEdit: JSONString` Definition of the form layout (fields, sections, settings) shown to respondents, as a JSON object conforming to the online-form layout schema. Validated on write. This payload conforms to the `OnlineForm` JSON Schema: GET /api/v100/rest/schemas/OnlineForm.json on your region's API host
- `isEnabled: Boolean` When true, the form is published and accepts new submissions; when false, the form returns an error to respondents.
- `isReadonly: Boolean` True when the form is system-managed and its schema cannot be edited by users.
- `lastSchemaChange: DateTime` Timestamp of the most recent change to formEdit (form schema).
- `lastStatusChange: DateTime` Timestamp of the most recent change to isEnabled.
- `name: String` Name of the entity and its default text representation.
- `notificationsStatus: JSONString` Tracks which threshold-reached notifications have already been sent for the current form configuration. Reset when the configuration changes.
- `ownerId: ID` Id of the owning user.
- `styleId: ID` Id of the form style.
- `revision: Int` Revision when entity was lastly changed.
- `customRecaptcha: CustomRecaptcha` Custom reCAPTCHA keys (siteKey and secretKey) used on the forms of this type instead of the platform default; null switches back to the default. Write-only; hasCustomRecaptcha tells whether keys are set.

### CustomRecaptcha (input)

Own Google reCAPTCHA keys that protect the published forms of an online form type.

- `siteKey: String!` Site key of your Google reCAPTCHA registration, used by the published form.
- `secretKey: String!` Server-side secret of the same reCAPTCHA registration, used to verify the answers of respondents. Write-only; it is never returned.

### DeleteOnlineFormTypeInput (input)

Id of the OnlineFormType record to delete.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID!` Unique identifier of entity.

### OnlineFormStyleOrderByNestedInput (input)

Sorting by a field of the related OnlineFormStyle record. Set exactly one field in each item.

- `id: OrderByEnum` Unique identifier of entity.
- `isDeleted: OrderByEnum` Specifies if the entity is considered deleted.
- `modified: OrderByEnum` Last modification time.
- `created: OrderByEnum` Creation time.
- `name: OrderByEnum` Name of the entity and its default text representation.
- `useLang: OrderByEnum` When true, the style name is treated as a translation key and localized in the UI; otherwise the literal name is shown.
- `revision: OrderByEnum` Revision when entity was lastly changed.

### OnlineFormTypeTabDataGridViewOptionsParams (input)

Filters for listing online form types by owner, active state and status.

- `filterByOwnerId: [ID!]` Ids of the owners whose records are listed; null or an empty list turns the owner filter off.
- `showActive: Boolean!` When true, the list includes active records. When both showActive and showInactive are false, the list is not filtered by state.
- `showInactive: Boolean!` When true, the list includes inactive records; see showActive.
- `filterByStatus: [ProcessStatusEnum!]` Statuses to include, such as Ok, Warning or Error; null or an empty list turns the status filter off. Ignored when both showActive and showInactive are false.

### UpdateOnlineFormTypeInput (input)

Id of an OnlineFormType record and the field values to change.

- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
- `id: ID!` Unique identifier of entity.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `autoPrefillWithJavascript: Boolean` When true, the embedded form JavaScript pre-fills fields from URL query parameters on load.
- `description: String` Free-text description shown alongside the form definition in the UI.
- `entityApiName: String` API name of the custom entity the form targets. Set only when entityType is CustomEntity; otherwise empty.
- `entityType: BaseEntityTypeEnum` Entity the form is built for: its fields can be placed on the form and each submission is linked to a record of this entity. For custom entities, entityApiName identifies the custom entity.
- `formEdit: JSONString` Definition of the form layout (fields, sections, settings) shown to respondents, as a JSON object conforming to the online-form layout schema. Validated on write. This payload conforms to the `OnlineForm` JSON Schema: GET /api/v100/rest/schemas/OnlineForm.json on your region's API host
- `isEnabled: Boolean` When true, the form is published and accepts new submissions; when false, the form returns an error to respondents.
- `isReadonly: Boolean` True when the form is system-managed and its schema cannot be edited by users.
- `lastSchemaChange: DateTime` Timestamp of the most recent change to formEdit (form schema).
- `lastStatusChange: DateTime` Timestamp of the most recent change to isEnabled.
- `name: String` Name of the entity and its default text representation.
- `notificationsStatus: JSONString` Tracks which threshold-reached notifications have already been sent for the current form configuration. Reset when the configuration changes.
- `ownerId: ID` Id of the owning user.
- `styleId: ID` Id of the form style.
- `revision: Int` Revision when entity was lastly changed.
- `customRecaptcha: CustomRecaptcha` Custom reCAPTCHA keys (siteKey and secretKey) used on the forms of this type instead of the platform default; null switches back to the default. Write-only; hasCustomRecaptcha tells whether keys are set.

### BulkUpdateOnlineFormTypePayload (object)

Result of the bulkUpdateOnlineFormType mutation.

- `result: BulkUpdateResults!` Ids of the created, updated and deleted records, and the items that failed.

### CreateOnlineFormTypePayload (object)

Result of the createOnlineFormType mutation.

- `onlineFormType: OnlineFormTypeEntity` The created record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### DeleteOnlineFormTypePayload (object)

Result of the deleteOnlineFormType mutation.

- `onlineFormType: OnlineFormTypeEntity` The deleted record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### UpdateOnlineFormTypePayload (object)

Result of the updateOnlineFormType mutation.

- `onlineFormType: OnlineFormTypeEntity` The updated record.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### OnlineForm (object)

Content of an online form: its questions and sections, header, footer, theme and submission settings.

- `fields: [OnlineFormItem]!` Top-level layout items (containers and sections) that make up the form body, in display order.
- `header: OnlineFormHeader!` Header shown at the top of the form.
- `footer: OnlineFormFooter!` Footer containing the submit button shown at the bottom of the form.
- `theme: OnlineFormTheme!` Visual theme settings for the form.
- `settings: OnlineFormSettings!` Behavioural settings controlling submission, notifications, limits, and record handling.

### OnlineFormButtonPositionEnum (enum)

Horizontal alignment of the submit button on an online form.

- `Left` The button is aligned to the left.
- `Middle` The button is centered.
- `Right` The button is aligned to the right.

### OnlineFormCheckboxField (object)

Checkbox question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown next to the checkbox.
- `valueLabel: String` Text label shown beside the checkbox.
- `valueDefaultChecked: Boolean!` If true, the checkbox is checked by default when the form loads.
- `prefillBoolean: Boolean` Checked or unchecked state used to pre-populate the field when prefill is enabled.

### OnlineFormColumn (object)

Column of an online form container, holding form fields in display order.

- `id: ID!` Unique identifier of the column within the container.
- `size: Int!` Relative width of the column within its container row.
- `fields: [OnlineFormFieldInterface!]!` Form fields placed in this column, in display order.

### OnlineFormConfirmationPageType (enum)

What an online form respondent is shown: a page inside the form or a redirect to an external URL.

- `ConfirmationPage` A page with a title and message inside the form.
- `ExternalUrl` A redirect to the configured URL.

### OnlineFormContainer (object)

Row of an online form with columns of questions.

- `id: ID!` Unique identifier of the container within the form layout.
- `columns: [OnlineFormColumn!]!` Columns that make up this container row, in left-to-right order.

### OnlineFormDateField (object)

Date question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown inside the empty date input.
- `prefillDate: Date` Fixed date used to pre-populate the field when prefill is enabled.

### OnlineFormDateTimeField (object)

Date and time question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown inside the empty date and time input.
- `prefillDateTime: DateTime` Fixed date and time used to pre-populate the field when prefill is enabled.

### OnlineFormDropdownField (object)

Dropdown question of an online form, with a single answer.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `valueOverrides: [OnlineFormValueOverride!]!` Per-option overrides controlling which choices are shown, their labels, and their order.
- `placeholder: String` Hint text shown when no option is selected.
- `prefillValue: ID` Identifier of the option pre-selected when prefill is enabled.

### OnlineFormEmailField (object)

Email address input of an online form, filling an email field of the record the form creates.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown inside the empty input.
- `prefillText: String` Fixed text used to pre-populate the field when prefill is enabled.

### OnlineFormFieldInterface (interface)

Question of an online form; the answer is stored in a field of the record the response creates or updates.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.

### OnlineFormFileUploadField (object)

File upload question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `fileUploadOptions: FileUploadProperty!` JSON configuration for the file upload, including the maximum number of files, the maximum file size, and the allowed file extensions.

### OnlineFormFloatField (object)

Decimal number question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown inside the empty input.
- `prefillFloat: Float` Fixed number used to pre-populate the field when prefill is enabled.

### OnlineFormFooter (object)

Footer of an online form with the submit button.

- `submitButtonLabel: String!` Text shown on the form submit button.
- `submitButtonPosition: OnlineFormButtonPositionEnum!` Horizontal alignment of the submit button: Left, Middle, or Right.

### OnlineFormHeader (object)

Header of an online form with its title and description.

- `title: String!` Heading text shown at the top of the form.
- `description: String!` Subtitle text shown under the form heading.
- `visible: Boolean!` If true, the header is shown on the form.
- `showHeaderOnAllPages: Boolean!` If true, the header is repeated on every page of a multi-page form rather than only the first.

### OnlineFormInputField (object)

Single-line text question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown inside the empty input.
- `prefillText: String` Fixed text used to pre-populate the field when prefill is enabled.

### OnlineFormIntegerField (object)

Whole number question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown inside the empty input.
- `prefillInteger: Int` Fixed whole number used to pre-populate the field when prefill is enabled.

### OnlineFormItem (union)

Top-level item of an online form: a row of questions or a section.

OnlineFormContainer | OnlineFormSection

### OnlineFormMultiselectCheckboxField (object)

Question of an online form with checkboxes, allowing several answers.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `valueOverrides: [OnlineFormValueOverride!]!` Per-option overrides controlling which choices are shown, their labels, and their order.
- `prefillValues: [ID]` Identifiers of the options pre-selected when prefill is enabled.

### OnlineFormNotificationRecipientType (enum)

Who receives an online form notification email.

- `Owner` The owner of the online form.
- `PrimaryRecordOwner` The owner of the record the response belongs to.
- `Custom` The email addresses listed in the notification settings.

### OnlineFormPhoneField (object)

Phone number question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown inside the empty input.
- `prefillText: String` Fixed text used to pre-populate the field when prefill is enabled.

### OnlineFormPrefillTypeEnum (enum)

Source of the value an online form field is prefilled with.

- `Custom` A fixed value.
- `Field` The value of the record field given in prefillFieldId.

### OnlineFormProductsResponseLimit (object)

Maximum quantity of one product that online form responses may select.

- `enabled: Boolean!` If true, this product quantity limit is enforced.
- `fieldId: ID!` Identifier of the product field the limit applies to.
- `quantity: Int!` Maximum quantity of the product that may be selected.

### OnlineFormProductsServicesField (object)

Question of an online form in which respondents select products and services.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `showTotalAmount: Boolean!` If true, the combined total amount of selected products is shown on the form.
- `showProductImages: Boolean!` If true, product images are shown alongside each product.
- `productSelectionLimitEnabled: Boolean!` If true, the number of products a respondent can select is capped.
- `maxSelectedProducts: Int` Maximum number of products the respondent may select when the selection limit is enabled.
- `placeholder: String` Placeholder text shown in the product-selection control before a product is chosen.

### OnlineFormRadioField (object)

Question of an online form with radio buttons, allowing a single answer.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `valueOverrides: [OnlineFormValueOverride!]!` Per-option overrides controlling which choices are shown, their labels, and their order.
- `prefillValue: ID` Identifier of the option pre-selected when prefill is enabled.

### OnlineFormRatingField (object)

Rating question of an online form, answered by picking a value on a scale.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `valueFrom: Int!` Lowest value on the rating scale.
- `valueTo: Int!` Highest value on the rating scale.
- `valueFromLabel: String` Label shown next to the lowest value on the rating scale.
- `valueToLabel: String` Label shown next to the highest value on the rating scale.
- `prefillInteger: Int` Rating value pre-selected when prefill is enabled.

### OnlineFormRelatedRecordSettings (object)

Rule for a related record that is linked, created or updated when an online form response is submitted.

- `id: ID!` Identifier of this related-record rule.
- `relation: ProcessRecordNodeRelationEnum!` Which related entity (via its relation) this rule links or creates records for when a response is submitted.
- `relationLookupFieldId: String` Id of the lookup field defining the relation, when the relation is reached through a specific lookup field.
- `createForm: ProcessEntityTemplate` Record-creation form used to create the related record (for the link-or-create and update-or-create modes).
- `updateForm: ProcessEntityTemplate` Record-edit form used to update the matched related record (for the update and update-or-create modes).
- `linkFormFieldId: ID` Id of the form field whose value is matched against the related records to find the one to link.
- `linkRecordFieldId: ID` Id of the related-record field matched against the form-field value when finding the record to link.
- `linkAll: Boolean!` If true, every matching related record is linked rather than only the first match.

### OnlineFormResponse (object)

A submission of the online form with its answers.

- `entityType: EntityNameEnum` Entity of the record the submission is linked to.
- `entityApiName: String` API name of the custom entity when entityType is CustomEntity; null otherwise.
- `entityId: ID` Id of the record the submission is linked to; null when it is not linked to any record.
- `entityIsAvailable: Boolean` False when the linked record is not visible to the current user; name and pictureUrl are then null.
- `name: String` Name of the linked record.
- `created: DateTime!` When the submission was received or last changed.
- `onlineFormId: ID!` Id of the submission.
- `pictureUrl: String` URL of the picture of the linked record.
- `answers: [OnlineFormFieldAnswer!]!` Answers of the submission, one per form field.

### OnlineFormResponseSummary (object)

A record the form was sent to or that responded to it, with dates and number of responses.

- `id: ID` Id of the record.
- `type: EntityNameEnum` Entity of the record.
- `isAvailable: Boolean` False when the record is not visible to the current user; name and pictureUrl are then null.
- `name: String` Display name of the record; null when isAvailable is false.
- `pictureUrl: String` URL of the record's picture; null when the record has none or isAvailable is false.
- `numberOfResponses: Int` Number of submissions of the form linked to the record.
- `onlineFormIds: [ID!]!` List of onlineForm ids sorted by modified in ascending order.
- `sentDate: DateTime` When the form was last sent to the record; null when it was not sent.
- `responseDate: DateTime` When the record last responded; null when it has not responded.
- `summarizedResponseValue: Int` Value the submissions of the record contribute toward the response acceptance threshold of the form; null when no threshold is configured.

### OnlineFormSection (object)

Section of an online form with its own title and description.

- `id: ID!` Unique identifier of the section within the form layout.
- `description: String!` Descriptive text shown under the section title.
- `title: String!` Heading shown at the top of the section.
- `visible: Boolean!` If true, the section is shown on the form.

### OnlineFormSettings (object)

What happens when an online form is submitted: records created, updated and linked, notifications, the confirmation page and response limits.

- `updateRecordEnabled: Boolean!` If true, submitting the form updates an existing record.
- `updateRecordForm: ProcessEntityTemplate` Template describing how the existing record is updated on submission.
- `createRecordEnabled: Boolean!` If true, submitting the form creates a new record.
- `createRecordForm: ProcessEntityTemplate` Template describing how the new record is created on submission.
- `linkRecordEnabled: Boolean!` If true, submitting the form links the response to an existing record.
- `linkRelatedRecords: [OnlineFormRelatedRecordSettings!]!` Settings for related records that are linked to existing records on submission.
- `linkOrCreateRelatedRecords: [OnlineFormRelatedRecordSettings!]!` Settings for related records that are either linked if found or created otherwise on submission.
- `updateOrCreateRelatedRecords: [OnlineFormRelatedRecordSettings!]!` Settings for related records that are updated if found or created otherwise on submission.
- `updateRelatedRecords: [OnlineFormRelatedRecordSettings!]!` Settings for related records that are updated on submission.
- `createRelatedRecords: [OnlineFormRelatedRecordSettings!]!` Settings for related records that are created on submission.
- `attachResponseAsPdf: Boolean!` If true, a PDF copy of the response is attached to the created or updated record.
- `limitToSingleResponse: Boolean!` If true, each respondent may submit the form only once.
- `checkForExistingResponse: Boolean!` If true, the form checks for a previous response from the same respondent before accepting a submission.
- `notificationEnabled: Boolean!` If true, an email notification is sent when the form is submitted.
- `notificationRecipientType: [OnlineFormNotificationRecipientType!]!` Who receives the submission notification: the form Owner, the PrimaryRecordOwner, and/or Custom email addresses.
- `notificationEmails: [String!]!` Custom email addresses that receive the submission notification.
- `notificationLimitEnabled: Boolean!` If true, an email notification is sent when the form stops accepting responses.
- `notificationLimitRecipientType: [OnlineFormNotificationRecipientType!]!` Who receives the limit-reached notification: the form Owner, the PrimaryRecordOwner, and/or Custom email addresses.
- `notificationLimitEmails: [String!]!` Custom email addresses that receive the limit-reached notification.
- `confirmationPageType: OnlineFormConfirmationPageType!` What the respondent sees after submitting: a ConfirmationPage or a redirect to an ExternalUrl.
- `confirmationPageTitle: String` Heading shown on the confirmation page after submission.
- `confirmationPageMessage: String` Message shown on the confirmation page after submission.
- `confirmationPageUrl: String` External URL the respondent is redirected to after submission.
- `autolinkEnabled: Boolean!` If true, a response submitted without a record is linked to the existing record whose autolinkRecordFieldId value matches the autolinkFormFieldId answer.
- `autolinkFormFieldId: ID` Identifier of the form field whose value is matched against records to auto-link a response.
- `autolinkRecordFieldId: ID` Identifier of the record field matched against the form field value to auto-link a response.
- `singlePageContent: Boolean!` If true, all form content is shown on a single page rather than split across pages.
- `responseAcceptanceDateLimitEnabled: Boolean!` If true, the form stops accepting responses after a set date and time.
- `responseAcceptanceDateLimitDate: DateTime` Date and time after which the form no longer accepts responses.
- `responseAcceptanceDateLimitMessage: String` Message shown to respondents after the date limit has passed.
- `responseAcceptanceDateLimitTitle: String` Heading shown to respondents after the date limit has passed.
- `responseAcceptanceThresholdEnabled: Boolean!` If true, the form stops accepting responses once a threshold is reached.
- `responseAcceptanceThresholdType: ResponseAcceptanceThresholdType!` How the threshold is measured: TotalResponses, CustomCondition, or ProductsLimits.
- `responseAcceptanceThresholdNoOfResponses: Int` Maximum number of responses accepted when the threshold type is TotalResponses.
- `responseAcceptanceThresholdCustomCondition: ResponseAcceptanceThresholdCustomCondition` Formula-based threshold configuration used when the threshold type is CustomCondition.
- `responseAcceptanceThresholdMessage: String` Message shown to respondents after the threshold has been reached.
- `responseAcceptanceThresholdTitle: String` Heading shown to respondents after the threshold has been reached.
- `responseAcceptanceThresholdProductsLimits: ResponseAcceptanceThresholdProductsLimits` Per-product quantity threshold configuration used when the threshold type is ProductsLimits.
- `recordIdentificationEnabled: Boolean!` If true, every response must identify an existing record; a submission that cannot be linked to a record is not accepted and the respondent is asked to identify their record.
- `recordIdentificationMessage: String` Message shown to respondents asking them to identify their record.
- `recordIdentificationTitle: String` Heading shown to respondents asking them to identify their record.
- `recordIdentificationType: OnlineFormConfirmationPageType!` How record identification is presented: an in-form ConfirmationPage or a redirect to an ExternalUrl.
- `recordIdentificationUrl: String` External URL used for record identification when the identification type is ExternalUrl.
- `maxTotalUploadedFilesSize: Int!` Maximum total size, in megabytes, of the files uploaded across all responses of the form; once it is reached, the form stops accepting responses.
- `attachFiles: Boolean!` If true, files uploaded via the form are attached to the created or updated record.
- `productsPriceListId: ID` Identifier of the price list used to price products shown on the form; defaults to the current price list when not set.
- `productsCurrencyId: ID!` Identifier of the currency in which product prices are shown.
- `productsShowGrandTotal: Boolean!` If true, the grand total of all selected products is shown on the form.
- `productsResponseLimitsEnabled: Boolean!` If true, per-product quantity limits are enforced for each response.
- `productsResponseLimits: [OnlineFormProductsResponseLimit!]!` Per-product quantity limits applied to a single response.
- `productsTotalResponseLimitsEnabled: Boolean!` If true, per-product quantity limits are enforced across all responses combined.
- `productsTotalResponseLimits: [OnlineFormProductsResponseLimit!]!` Per-product quantity limits applied across all responses combined.
- `saveProgressEnabled: Boolean!` If true, respondents may resume an unfinished response. Answers are held in the respondent's own browser; nothing is stored server-side.
- `showQuestionNumbers: Boolean!` If true, each question is numbered on the form.

### OnlineFormTextAreaField (object)

Multi-line text question of an online form.

- `fieldId: String!` Identifier of the entity field this form field captures.
- `name: String!` Label shown above the field on the form.
- `description: String!` Help text shown under the field label on the form.
- `imageEnabled: Boolean!` If true, an image is displayed alongside the field.
- `imageCloudObjectId: ID` Cloud storage identifier of the image displayed with the field.
- `visible: Boolean!` If true, the field is shown on the form.
- `required: Boolean!` If true, the field must be filled in before the form can be submitted.
- `readOnly: Boolean!` If true, the field is displayed but cannot be edited by the respondent.
- `prefillEnabled: Boolean!` If true, the field is pre-populated with a value when the form loads.
- `prefillType: OnlineFormPrefillTypeEnum!` Source of the prefill value: Custom for a fixed value, Field to copy from another field.
- `prefillFieldId: String` Identifier of the field whose value is copied in when prefill type is Field.
- `prefillLookupFieldId: ID` Identifier of the lookup field used to resolve the prefill value when prefilling from a related record.
- `conditionalRulesFilter: FieldFilter` Filter conditions that control whether the field is shown, based on the values of other fields.
- `placeholder: String` Hint text shown inside the empty input.
- `prefillText: String` Fixed text used to pre-populate the field when prefill is enabled.

### OnlineFormTheme (object)

Theme of an online form, such as its header image.

- `imageCloudObjectId: ID` Cloud storage identifier of the header or banner image used for the form theme.

### OnlineFormTypeDetailGridSortBy (enum)

What the recipient summary list of an online form is sorted by.

- `EntityName` Name of the recipient record.
- `ResponseDate` Date of the latest response.
- `SentDate` Date the form was sent.
- `CountOfResponses` Number of responses from the recipient.
- `ResponseValue` Response score used by the form's response acceptance threshold.

### OnlineFormTypeDetailResponseGridSortBy (enum)

What the list of responses to an online form is sorted by.

- `EntityName` Name of the responding record.
- `ResponseDate` Date the response was submitted.
- `ResponseValue` Answer to the form field given in sortByFieldId.

### OnlineFormUploadedFiles (object)

Files uploaded through the submissions of an online form type, with a request id for downloading them as a ZIP archive.

- `sessionId: String!` Id of the result holding the returned files; pass it as sessionId, e.g. to CloudObjectRepository.getBySession or to bulk operations.
- `downloadSessionId: String` Request id of a ZIP archive of the files, organized by form, record and field; poll getBulkDownloadStatus with it to get the download URL. Null when there are no files.
- `cloudObjects: [CloudObjectEntity!]!` Uploaded files, ordered by record, submission, field and file name.

### OnlineFormValueOverride (object)

Changed display of one option of a choice question on an online form: its label and position.

- `id: ID!` Identifier of the underlying field option this override applies to.
- `visible: Boolean` If true, this option is shown as a choice on the form.
- `label: String` Custom label shown for this option on the form, overriding the default option name.
- `sortOrder: Int` Position of this option in the displayed list of choices.

### ProcessEntityOperation (object)

How one field of a record created or updated by automation gets its value.

- `fieldId: UUID!` Field on the target record that this operation sets.
- `operation: ProcessEntityOperationEnum` How the field value is determined: a custom value, a value copied from the triggered record, the trigger actor, the process owner, or cleared.
- `extras: ProcessEntityOperationExtras` Extra settings for operation.
- `triggeredRecordFieldId: UUID` Field on the triggered record whose value is copied into the target field. Used when the value is taken from the triggered record.
- `triggeredLookupRelationFieldId: UUID` Lookup field that resolves the related record the copied value is read from, when the source value comes through a relation.
- `mapping: EntityOperationMapping` Translation of source values to target values when copying a field value, mapping each source option to the value to set.

### ProcessEntityOperationEnum (enum)

How a process action sets one field on the record it creates or updates: a custom value, a value taken from the triggered record, a specific user, or cleared.

- `Custom` Sets the value given in the action's input.
- `TriggeredRecordValue` Copies the value from the triggered record: the same field, or the field set in triggeredRecordFieldId; for an owner field, the triggered record's owner.
- `TriggeredRecordPrimaryValue` Like TriggeredRecordValue, but takes only the primary user from a user lookup field on the triggered record (TriggeredRecordValue takes all of its users).
- `Unassigned` Clears the owner, leaving the record unassigned.
- `TriggerActor` Sets the owner to the user whose action triggered the process.
- `ProcessOwner` Sets the owner to the owner of the process.
- `CustomAndTriggered` Combines the values from the action's input with the values copied from the triggered record.
- `CustomReplaceExisting` Sets the input value, replacing any existing values of the field.
- `CustomAddToExisting` Adds the input values to the values the field already has (multi-value, lookup, sharing and relation fields).
- `CustomRemoveExisting` Removes the input values from the values the field already has.
- `CustomUpdateValueAndCode` For a currency field, sets both the amount and the currency from the input and recalculates the value in the base currency.
- `CustomUpdateOnlyCode` For a currency field, changes only the currency from the input, keeps the existing amount and recalculates the value in the base currency.
- `TriggeredRecordValueReplaceExisting` Replaces the existing values with the values copied from the triggered record.
- `TriggeredRecordValueAddToExisting` Adds the values copied from the triggered record to the existing values.
- `TriggeredRecordValueRemoveExisting` Removes the values found on the triggered record from the existing values.
- `TriggeredRecordPrimaryValueReplaceExisting` Replaces the existing users with the primary user of a user lookup field on the triggered record.
- `TriggeredRecordPrimaryValueAddToExisting` Adds the primary user of a user lookup field on the triggered record to the existing users.
- `TriggeredRecordPrimaryValueRemoveExisting` Removes the primary user of a user lookup field on the triggered record from the existing users.
- `TriggeredRecordPrimaryAccountReplaceExisting` Takes the value from the triggered record's primary account and replaces the existing values.
- `TriggeredRecordPrimaryAccountAddToExisting` Takes the value from the triggered record's primary account and adds it to the existing values.
- `TriggeredRecordPrimaryAccountRemoveExisting` Takes the value from the triggered record's primary account and removes it from the existing values.
- `TriggeredRecordPrimaryContactReplaceExisting` Takes the value from the triggered record's primary contact and replaces the existing values.
- `TriggeredRecordPrimaryContactAddToExisting` Takes the value from the triggered record's primary contact and adds it to the existing values.
- `TriggeredRecordPrimaryContactRemoveExisting` Takes the value from the triggered record's primary contact and removes it from the existing values.
- `TriggeredRecordParentAccountReplaceExisting` Takes the value from the triggered account's parent account and replaces the existing values.
- `TriggeredRecordParentAccountAddToExisting` Takes the value from the triggered account's parent account and adds it to the existing values.
- `TriggeredRecordParentAccountRemoveExisting` Takes the value from the triggered account's parent account and removes it from the existing values.
- `TriggeredRecordAccountAddToExisting` Takes the value from the account of the triggered record (such as a project's account) and adds it to the existing values.
- `TriggeredRecordAccountReplaceExisting` Takes the value from the account of the triggered record (such as a project's account) and replaces the existing values.
- `TriggeredRecordAccountRemoveExisting` Takes the value from the account of the triggered record (such as a project's account) and removes it from the existing values.
- `TriggeredRecordPrimaryAccountValue` Copies the value from the triggered record's primary account.
- `TriggeredRecordPrimaryContactValue` Copies the value from the triggered record's primary contact.
- `TriggeredRecordParentAccountValue` Copies the value from the triggered account's parent account.
- `TriggeredRecordAccountValue` Copies the value from the account of the triggered record (such as a project's account).
- `TriggeredRecordValueCustomReplaceExisting` Combines the input values with the values copied from the triggered record and replaces the existing values with them.
- `TriggeredRecordValueCustomAddToExisting` Combines the input values with the values copied from the triggered record and adds them to the existing values.
- `TriggeredRecordValueCustomRemoveExisting` Removes both the input values and the values copied from the triggered record from the existing values.
- `TriggeredRecordValueUpdateValueAndCode` For a currency field, copies both the amount and the currency from the triggered record.
- `TriggeredRecordValueUpdateOnlyCode` For a currency field, copies only the currency from the triggered record and keeps the existing amount.
- `TriggeredRecordField` Copies the value of the field set in triggeredRecordFieldId: a field of the submitted online form, or, for an owner field, the user held in that field of the triggered record.
- `TriggeredPrimaryRecordOwner` Sets the owner to the owner of the record the submitted online form belongs to.
- `TriggeredRecord` Links the triggered record itself in a relation field, replacing the existing links (for example, sets the triggered account as the parent account).
- `TriggeredRecordAddToExisting` Adds the triggered record itself to the existing links of a relation field.
- `TriggeredRecordRemoveExisting` Removes the triggered record itself from the existing links of a relation field.
- `TriggeredRecordOwner` Sets the owner of the triggered record as the only watcher or editor, replacing the existing ones.
- `TriggeredRecordOwnerReplaceExisting` Same as TriggeredRecordOwner: the triggered record's owner replaces the existing watchers or editors.
- `TriggeredRecordOwnerAddToExisting` Adds the owner of the triggered record to the existing watchers or editors.

### ProcessEntityOperationExtras (object)

Extra options of a field operation, such as keeping the previous owner as an editor.

- `keepOwnerAsEditor: Boolean` When the owner changes, keep the previous owner as an editor of the record.
- `sendInvitations: Boolean` Whether to send invitations to attendees when the operation sets appointment attendees.

### ProcessEntityTemplate (object)

Values that a process, email sequence or online form sets on a record it creates or updates.

- `operations: [ProcessEntityOperation!]!` Per-field operations describing how each field value of the created or updated record is determined.
- `input: JSONString!` Field values to apply to the record, as a JSON object keyed by field API name. The accompanying operations describe how each value is interpreted.

### ResponseAcceptanceThresholdCustomCondition (object)

Formula-based limit after which an online form stops accepting responses.

- `formula: String!` Formula evaluated against each response to compute the value counted toward the acceptance limits.
- `maxValuePerResponse: Int!` Maximum value a single response may contribute; must be 1 or greater.
- `maxValueForAllResponses: Int!` Maximum combined value across all responses before the form stops accepting; must be 1 or greater.

### ResponseAcceptanceThresholdProductsLimits (object)

Product quantity limits after which an online form stops accepting responses.

- `limits: [OnlineFormProductsResponseLimit!]!` Per-product quantity limits that together determine when the form stops accepting responses.
- `operator: FilterGroupOperator!` Whether all (And) or any (Or) of the product limits must be reached to stop accepting responses.

### ResponseAcceptanceThresholdType (enum)

How the response limit of an online form is measured.

- `TotalResponses` The form stops accepting responses after responseAcceptanceThresholdNoOfResponses responses.
- `CustomCondition` Responses are limited by the formula values in responseAcceptanceThresholdCustomCondition, per response and in total.
- `ProductsLimits` Responses are limited by the per-product quantity limits in responseAcceptanceThresholdProductsLimits.

### ResponseSummaryRelationCategory (enum)

Group of online-form recipients or respondents to list.

- `Responded` Respondents who submitted a response.
- `Sent` Records the form was sent to.
- `SentAndNotResponded` Records the form was sent to that have not responded.
- `UnknownRespondents` Responses not linked to any record.

Types several repositories share, such as `PageInfo` and the filter fields, are in the [types index](https://developers.coevera.com/reference/graphql/types.md). The [SDL](https://developers.coevera.com/graphql/schema.graphql) has the whole schema in one file.

## Example

```graphql
query FirstOnlineFormTypes {
  entities {
    onlineFormType {
      getByCriteria(first: 3, orderBy: [{ modified: Desc }]) {
        totalCount
        edges { node { id name modified } }
      }
    }
  }
}
```

```bash
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query FirstOnlineFormTypes { entities { onlineFormType { getByCriteria(first: 3, orderBy: [{ modified: Desc }]) { totalCount edges { node { id name modified } } } } } }"}'
```
