Form Field Sets

A Form Field Set is a custom form to be used for bundle and inbox registrations.

Each Form Field Set contains one or more Form Fields. A form and all of its form fields are submitted in a single create request. The order of form fields in the array is the order they will be displayed.

Once created, a form field set can then be associated with one or more bundle(s) and/or inbox(s). Once associated, you will be required to submit well-formatted form-data when creating a bundle-registration or inbox registration.

Custom answers saved on a registration are saved as Custom Metadata on each file uploaded through that registration, with field labels as keys. This applies to existing registrations as well as new ones. Unanswered optional fields and values exceeding 1024 characters are omitted; the first 32 remaining answers in saved form-answer order are captured. Dates use YYYY-MM-DD. Existing answers with unavailable field definitions or unparseable dates are omitted. Built-in name, email, and company fields are excluded. Form answers take precedence over explicit upload metadata with matching keys, including keeping omitted answer labels absent.

Enable require_complete_metadata_capture to reject answers exceeding these value or count limits instead of omitting them. Uploaded files use the labels and answers accepted at registration even if the form is edited later.

Editing a field definition creates a replacement field with a new ID and preserves the original definition for existing registration answers. Unchanged fields and fields moved within the layout retain their IDs. Use the returned form_layout when submitting new answers or editing the form again.

Authenticated form field set responses include historical definitions in form_fields so existing answers can still be interpreted. Only IDs in form_layout are current fields. Forms embedded in Share Link and Inbox responses contain current definitions only.

List Form Field Sets

SDK Function

FormFieldSet.list()

Return Object

ListIterator<FormFieldSet>

Authorization Requirement

Available to all authenticated keys or sessions.

Function Arguments

ArgumentDescription
user_id
int64
User ID. Provide a value of 0 to operate the current session's user.

Additional Arguments

Example Request

import com.files.ListIterator;
import com.files.exceptions.*;
import com.files.exceptions.ApiErrorException.*;
import com.files.models.FormFieldSet;

try {
  HashMap<String, Object> parameters = new HashMap<>();
  parameters.put("user_id", 1);
  
  ListIterator<FormFieldSet> formFieldSets = FormFieldSet.list(parameters);
  for (FormFieldSet formFieldSet : formFieldSets.listAutoPaging()) {
    // Operate on formFieldSet
  }
} catch (NotAuthenticatedException e) {
  System.out.println("Authentication Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
} catch (SdkException e) {
  System.out.println("Unknown Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
}

Show Form Field Set

SDK Function

FormFieldSet.find()

Return Object

FormFieldSet

Authorization Requirement

Available to all authenticated keys or sessions.

Function Arguments

ArgumentDescription
id
int64
Required
Form Field Set ID.

Example Request

import com.files.exceptions.*;
import com.files.exceptions.ApiErrorException.*;
import com.files.models.FormFieldSet;

try {
  HashMap<String, Object> parameters = new HashMap<>();
  FormFieldSet formFieldSet = FormFieldSet.find(id, parameters);
  // Operate on formFieldSet
} catch (NotAuthenticatedException e) {
  System.out.println("Authentication Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
} catch (SdkException e) {
  System.out.println("Unknown Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
}

Create Form Field Set

SDK Function

FormFieldSet.create()

Return Object

FormFieldSet

Authorization Requirement

Available to all authenticated keys or sessions.

Function Arguments

ArgumentDefaultDescription
user_id
int64
User ID. Provide a value of 0 to operate the current session's user.
title
string
Title to be displayed
require_complete_metadata_capture
boolean
falseReject answers over 1024 characters or more than 32 answered custom fields to ensure complete file metadata capture
workspace_id
int64
Workspace ID
skip_email
boolean
Skip validating form email
skip_name
boolean
Skip validating form name
skip_company
boolean
Skip validating company
form_fields
array(object)

Example Request

import com.files.exceptions.*;
import com.files.exceptions.ApiErrorException.*;
import com.files.models.FormFieldSet;

try {
  HashMap<String, Object> parameters = new HashMap<>();
  parameters.put("user_id", 1);
  
  FormFieldSet formFieldSet = FormFieldSet.create(parameters);
  // Operate on formFieldSet
} catch (NotAuthenticatedException e) {
  System.out.println("Authentication Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
} catch (SdkException e) {
  System.out.println("Unknown Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
}

Update Form Field Set

SDK Function

formFieldSet.update();

Return Object

FormFieldSet

Authorization Requirement

Available to all authenticated keys or sessions.

Attribute Setters

SetterDescription
setTitle
string
Title to be displayed
setRequireCompleteMetadataCapture
boolean
Reject answers over 1024 characters or more than 32 answered custom fields to ensure complete file metadata capture
setWorkspaceId
int64
Workspace ID
setSkipEmail
boolean
Skip validating form email
setSkipName
boolean
Skip validating form name
setSkipCompany
boolean
Skip validating company
setFormFields
array(object)

Example Request

import com.files.exceptions.*;
import com.files.exceptions.ApiErrorException.*;
import com.files.models.FormFieldSet;

try {
  // Find the formFieldSet object by its id.
  FormFieldSet formFieldSet = FormFieldSet.find(id, null);
  HashMap<String, Object> parameters = new HashMap<>();
  parameters.put("title", "Sample Form Title");
  formFieldSet.update(parameters);
} catch (NotAuthenticatedException e) {
  System.out.println("Authentication Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
} catch (SdkException e) {
  System.out.println("Unknown Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
}

Delete Form Field Set

SDK Function

formFieldSet.delete();

Return Object

No return value.

Authorization Requirement

Available to all authenticated keys or sessions.

Example Request

import com.files.exceptions.*;
import com.files.exceptions.ApiErrorException.*;
import com.files.models.FormFieldSet;

try {
  // Find the formFieldSet object by its id.
  FormFieldSet formFieldSet = FormFieldSet.find(id, null);
  formFieldSet.delete(null);
} catch (NotAuthenticatedException e) {
  System.out.println("Authentication Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
} catch (SdkException e) {
  System.out.println("Unknown Error Occurred (" + e.getClass().getName() + "): " + e.getMessage());
}

The FormFieldSet Object

Some of the functions above return a FormFieldSet object. The attributes of this object are listed below.

AttributeDescription
id
int64
Form field set id
title
string
Title to be displayed
require_complete_metadata_capture
boolean
Reject answers over 1024 characters or more than 32 answered custom fields to ensure complete file metadata capture
form_layout
array(int64)
Layout of the form
form_fields
array(object)
Associated form field definitions; authenticated form field set responses include historical definitions, while form_layout identifies current fields
skip_name
boolean
Any associated InboxRegistrations or BundleRegistrations can be saved without providing name
skip_email
boolean
Any associated InboxRegistrations or BundleRegistrations can be saved without providing email
skip_company
boolean
Any associated InboxRegistrations or BundleRegistrations can be saved without providing company
in_use
boolean
Form Field Set is in use by an active Inbox / Bundle / Inbox Registration / Bundle Registration