> ## Documentation Index
> Fetch the complete documentation index at: https://docs.azalt.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Update form elements

> Bulk update form element configurations across multiple forms. Requires site manager permissions.

**Update Capabilities**:
- **Element Properties**: Labels, descriptions, validation rules, default values
- **Options Management**: For dropdown, checkbox, and radio elements
- **Validation Rules**: Required status, min/max values, pattern matching
- **Conditional Logic**: Show/hide rules and dependencies
- **Metadata**: Custom attributes and categorization

**Update Strategies**:
- `replace`: Completely replace element configurations
- `merge`: Update specified properties while preserving others
- `append`: Add new options or rules to existing configurations

**Affected Systems**:
- **Active Forms**: Changes apply immediately to deployed forms
- **Existing Submissions**: Historical data preserved, new validations apply forward
- **Calculated Fields**: Expressions recalculated with updated dependencies
- **Conditional Logic**: Visibility rules re-evaluated across all forms

**Safety Features**:
- Validation against existing submission data
- Preview mode to test changes before applying
- Rollback capability for problematic updates
- Audit logging for all element modifications

**Common Use Cases**:
- Standardizing element configurations across forms
- Updating validation rules organization-wide
- Refreshing dropdown options from external data sources
- Applying regulatory changes to compliance forms



## OpenAPI

````yaml https://app.azalt.co/api/v1/openapi.json put /form-elements
openapi: 3.0.3
info:
  title: Erguvan Public API
  version: 1.0.0
servers:
  - url: https://app.azalt.co/api/v1
security: []
paths:
  /form-elements:
    put:
      tags:
        - FormElement
      summary: Update form elements
      description: >-
        Bulk update form element configurations across multiple forms. Requires
        site manager permissions.


        **Update Capabilities**:

        - **Element Properties**: Labels, descriptions, validation rules,
        default values

        - **Options Management**: For dropdown, checkbox, and radio elements

        - **Validation Rules**: Required status, min/max values, pattern
        matching

        - **Conditional Logic**: Show/hide rules and dependencies

        - **Metadata**: Custom attributes and categorization


        **Update Strategies**:

        - `replace`: Completely replace element configurations

        - `merge`: Update specified properties while preserving others

        - `append`: Add new options or rules to existing configurations


        **Affected Systems**:

        - **Active Forms**: Changes apply immediately to deployed forms

        - **Existing Submissions**: Historical data preserved, new validations
        apply forward

        - **Calculated Fields**: Expressions recalculated with updated
        dependencies

        - **Conditional Logic**: Visibility rules re-evaluated across all forms


        **Safety Features**:

        - Validation against existing submission data

        - Preview mode to test changes before applying

        - Rollback capability for problematic updates

        - Audit logging for all element modifications


        **Common Use Cases**:

        - Standardizing element configurations across forms

        - Updating validation rules organization-wide

        - Refreshing dropdown options from external data sources

        - Applying regulatory changes to compliance forms
      operationId: updateFormElements
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                formId:
                  type: string
                elements:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      key:
                        type: string
                      label:
                        type: string
                      required:
                        type: boolean
                      options:
                        type: array
                        nullable: true
                        items:
                          type: object
                          properties:
                            label:
                              type: string
                            value:
                              type: string
                            description:
                              type: string
                              nullable: true
                            points:
                              type: number
                            actionText:
                              type: string
                              nullable: true
                          required:
                            - label
                            - value
                      conditions:
                        type: array
                        nullable: true
                        items:
                          oneOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - CONDITION
                                field:
                                  type: string
                                operator:
                                  type: string
                                  enum:
                                    - equals
                                    - not_equals
                                    - contains
                                    - not_contains
                                    - greater_than
                                    - less_than
                                    - is_not_empty
                                    - is_empty
                                value:
                                  type: string
                                aggregator:
                                  type: string
                                  enum:
                                    - SINGLE
                                    - ANY
                                    - ALL
                                    - SUM
                                    - AVERAGE
                                  default: SINGLE
                              required:
                                - id
                                - type
                                - field
                                - operator
                                - value
                            - type: object
                              properties:
                                id:
                                  type: string
                                type:
                                  type: string
                                  enum:
                                    - GROUP
                                action:
                                  type: string
                                  enum:
                                    - show
                                    - hide
                                    - disable
                                    - require
                                operator:
                                  type: string
                                  enum:
                                    - AND
                                    - OR
                                conditions:
                                  type: array
                                  items: {}
                              required:
                                - id
                                - type
                                - action
                                - operator
                                - conditions
                      config:
                        nullable: true
                        oneOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - SHORT_TEXT
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                              placeholder:
                                type: string
                              minLength:
                                type: number
                              maxLength:
                                type: number
                              pattern:
                                type: string
                              contactInfoType:
                                type: string
                                nullable: true
                                enum:
                                  - name
                                  - email
                                  - title
                                  - company
                                  - address
                                  - null
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - LONG_TEXT
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                              placeholder:
                                type: string
                              minLength:
                                type: number
                              maxLength:
                                type: number
                              pattern:
                                type: string
                              contactInfoType:
                                type: string
                                nullable: true
                                enum:
                                  - name
                                  - email
                                  - title
                                  - company
                                  - address
                                  - null
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - NUMBER
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              hideInSummary:
                                type: boolean
                              placeholder:
                                type: string
                              min:
                                type: number
                              max:
                                type: number
                              step:
                                type: number
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  mode:
                                    type: string
                                    enum:
                                      - simple
                                      - threshold
                                  points:
                                    type: number
                                  thresholds:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        id:
                                          type: string
                                        minValue:
                                          type: number
                                          nullable: true
                                        maxValue:
                                          type: number
                                          nullable: true
                                        points:
                                          type: number
                                        actionText:
                                          type: string
                                          nullable: true
                                      required:
                                        - id
                                        - minValue
                                        - maxValue
                                        - points
                                  actionText:
                                    type: string
                                    nullable: true
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - ACTIVITY
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                              uiCode:
                                type: string
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - FILE_UPLOAD
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - IMAGE
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - SINGLE_CHOICE
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - MULTIPLE_CHOICE
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - TITLE
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                              headingLevel:
                                type: string
                                enum:
                                  - h1
                                  - h2
                                  - h3
                                  - h4
                                  - h5
                                  - h6
                                default: h2
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - DIVIDER
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                              height:
                                type: number
                                minimum: 0
                                maximum: 20
                                default: 1
                              marginTop:
                                type: number
                                minimum: 0
                                maximum: 100
                                default: 16
                              marginBottom:
                                type: number
                                minimum: 0
                                maximum: 100
                                default: 16
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - PAGE
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - GROUP
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                            required:
                              - type
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - PARAGRAPH
                              description:
                                type: string
                              showDescriptionInDrawer:
                                type: boolean
                              tooltip:
                                type: string
                              inlineChoiceDisplay:
                                type: boolean
                              scoring:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  points:
                                    type: number
                                  actionText:
                                    type: string
                                    nullable: true
                              hideInSummary:
                                type: boolean
                            required:
                              - type
                      type:
                        type: string
                        enum:
                          - NUMBER
                          - ACTIVITY
                          - SHORT_TEXT
                          - LONG_TEXT
                          - SINGLE_CHOICE
                          - MULTIPLE_CHOICE
                          - FILE_UPLOAD
                          - IMAGE
                          - GROUP
                          - PAGE
                          - TITLE
                          - PARAGRAPH
                          - DIVIDER
                      unitId:
                        type: string
                        nullable: true
                      parentElementId:
                        type: string
                        nullable: true
                      period:
                        type: string
                        enum:
                          - MONTHLY
                          - QUARTERLY
                          - YEARLY
                          - TIMESTAMP
                      activityDefinitionId:
                        type: string
                        nullable: true
                      distributionMode:
                        type: string
                        nullable: true
                        enum:
                          - total
                          - snapshot
                          - null
                      metadata:
                        type: object
                        additionalProperties:
                          anyOf:
                            - type: string
                            - type: boolean
                      schedule:
                        type: object
                        nullable: true
                        properties:
                          dataEntry:
                            type: object
                            properties:
                              dueDate:
                                oneOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - fixed-day
                                      day:
                                        type: integer
                                        minimum: 1
                                        maximum: 31
                                      timing:
                                        type: string
                                        enum:
                                          - current-period
                                          - next-period
                                    required:
                                      - type
                                      - day
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - weekday-occurrence
                                      weekday:
                                        anyOf:
                                          - type: number
                                            enum:
                                              - 0
                                          - type: number
                                            enum:
                                              - 1
                                          - type: number
                                            enum:
                                              - 2
                                          - type: number
                                            enum:
                                              - 3
                                          - type: number
                                            enum:
                                              - 4
                                          - type: number
                                            enum:
                                              - 5
                                          - type: number
                                            enum:
                                              - 6
                                      occurrence:
                                        anyOf:
                                          - type: number
                                            enum:
                                              - 1
                                          - type: number
                                            enum:
                                              - 2
                                          - type: number
                                            enum:
                                              - 3
                                          - type: number
                                            enum:
                                              - 4
                                      timing:
                                        type: string
                                        enum:
                                          - current-period
                                          - next-period
                                    required:
                                      - type
                                      - weekday
                                      - occurrence
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - last-weekday
                                      weekday:
                                        anyOf:
                                          - type: number
                                            enum:
                                              - 0
                                          - type: number
                                            enum:
                                              - 1
                                          - type: number
                                            enum:
                                              - 2
                                          - type: number
                                            enum:
                                              - 3
                                          - type: number
                                            enum:
                                              - 4
                                          - type: number
                                            enum:
                                              - 5
                                          - type: number
                                            enum:
                                              - 6
                                      timing:
                                        type: string
                                        enum:
                                          - current-period
                                          - next-period
                                    required:
                                      - type
                                      - weekday
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - specific-date
                                      month:
                                        type: integer
                                        minimum: 1
                                        maximum: 12
                                      day:
                                        type: integer
                                        minimum: 1
                                        maximum: 31
                                      timing:
                                        type: string
                                        enum:
                                          - current-period
                                          - next-period
                                    required:
                                      - type
                                      - month
                                      - day
                              reminders:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  offsets:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - days-before
                                        days:
                                          type: integer
                                          minimum: 1
                                          maximum: 30
                                      required:
                                        - type
                                        - days
                                required:
                                  - enabled
                                  - offsets
                            required:
                              - dueDate
                          approval:
                            type: object
                            properties:
                              dueDate:
                                oneOf:
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - fixed-day
                                      day:
                                        type: integer
                                        minimum: 1
                                        maximum: 31
                                      timing:
                                        type: string
                                        enum:
                                          - current-period
                                          - next-period
                                    required:
                                      - type
                                      - day
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - weekday-occurrence
                                      weekday:
                                        anyOf:
                                          - type: number
                                            enum:
                                              - 0
                                          - type: number
                                            enum:
                                              - 1
                                          - type: number
                                            enum:
                                              - 2
                                          - type: number
                                            enum:
                                              - 3
                                          - type: number
                                            enum:
                                              - 4
                                          - type: number
                                            enum:
                                              - 5
                                          - type: number
                                            enum:
                                              - 6
                                      occurrence:
                                        anyOf:
                                          - type: number
                                            enum:
                                              - 1
                                          - type: number
                                            enum:
                                              - 2
                                          - type: number
                                            enum:
                                              - 3
                                          - type: number
                                            enum:
                                              - 4
                                      timing:
                                        type: string
                                        enum:
                                          - current-period
                                          - next-period
                                    required:
                                      - type
                                      - weekday
                                      - occurrence
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - last-weekday
                                      weekday:
                                        anyOf:
                                          - type: number
                                            enum:
                                              - 0
                                          - type: number
                                            enum:
                                              - 1
                                          - type: number
                                            enum:
                                              - 2
                                          - type: number
                                            enum:
                                              - 3
                                          - type: number
                                            enum:
                                              - 4
                                          - type: number
                                            enum:
                                              - 5
                                          - type: number
                                            enum:
                                              - 6
                                      timing:
                                        type: string
                                        enum:
                                          - current-period
                                          - next-period
                                    required:
                                      - type
                                      - weekday
                                  - type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - specific-date
                                      month:
                                        type: integer
                                        minimum: 1
                                        maximum: 12
                                      day:
                                        type: integer
                                        minimum: 1
                                        maximum: 31
                                      timing:
                                        type: string
                                        enum:
                                          - current-period
                                          - next-period
                                    required:
                                      - type
                                      - month
                                      - day
                              reminders:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                                  offsets:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        type:
                                          type: string
                                          enum:
                                            - days-before
                                        days:
                                          type: integer
                                          minimum: 1
                                          maximum: 30
                                      required:
                                        - type
                                        - days
                                required:
                                  - enabled
                                  - offsets
                            required:
                              - dueDate
                    required:
                      - id
                      - key
                      - label
                      - required
                      - options
                      - conditions
                      - config
                      - type
                      - unitId
                      - parentElementId
                      - period
                periodChangeHandling:
                  type: object
                  properties:
                    action:
                      type: string
                      enum:
                        - delete
                  required:
                    - action
                unitChangeHandling:
                  type: object
                  properties:
                    action:
                      type: string
                      enum:
                        - delete
                  required:
                    - action
              required:
                - formId
                - elements
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                required:
                  - success
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - Authorization: []
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Not found error (404)
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````