The Attach field is an advanced field type that allows documents or files (up to 25MB) on a user's device to be added to a form as an attachment for output. Alternatively, a file can be downloaded from a specificed URL.

Note: Attached PDFs can also be embedded into custom outputs when form-captured data is output in PDF. Simply drag 'n drop an Attach field or left-click from the list of field types (left) to add it to the design preview (center), then configure its properties (right).

Besides common field settings, a few unique Attach field properties might be of interest under the field's Advanced Options:
Property | Description |
File Name | By default, the app will generate a date-based name for each file captured by the user. Use this property to define your own file names using our template syntax for dynamic generation. The file extension is automatically added by the system based on the file type. Example: STOCK-{{mychoicefield}}-{(USERLASTNAME())} |
Limit File Types | Enter a comma-separated list of file types to allow. If this field is left empty, then any file type supported by the device can be selected. |
Download From URL | Instead of capturing the file from the device, the file is downloaded from the specified URL. This is useful for cases where other apps or external devices can provide files via an https:// or other URL schemes. Note: You can use field references in your URL, e.g. https://{{otherfield}}/getimage |
This is the name of the field that should be referenced in any form logic or API calls. Users will not see this name on the form.

Data names cannot contain spaces or any special characters other than an underscore and must begin with a letter. They are case-sensitive and must be referred to precisely whenever they are referenced.
This is the name of the field that will be displayed to users on the app. This property is completely optional; while a field must contain a data name, a field title is optional.

The text color may be chosen with a hex code. The text may be also formatted as Bold or Italic and given a relative size -- Small, Medium (the default), or Large.
This optional field can be used to show secondary information to the user in the app. Consider using this to provide instruction or clarification to the user as they fill out the field.

Formatting options for this property are the same as those given available for the Title Text property.
This drop-down determines how this field is shown on the screen.



The color chosen in the hex code field here will apply to the field. The Transparent box can also be chosen instead for making this transparent instead of a solid color.

Checking this box will enforce validation against this field to make the field required, disallowing the user from progressing to the next page or submitting the form if it is left blank. If the user tries, they will be prompted with an error to return to the field and enter a value. When this validation occurs is determined by the "Validation Property" chosen on the page level; please see this article for more detail on this.

This property can also be made conditional based on a formula. To enable this, click "add condition" below the checkbox and enter a formula into the field that populates. The formula serves as the basis of the requiredness of this field.

Please see this article for more information on conditionally-required fields.
The contents of this field will determine whether the field will be visible to the user. For more detail on visibility rules, please see this article.

This property is used to define a calculation/formula that will populate the field's value. Often this is used in conjunction with the "Read Only" property (see below) so that the field will calculate and display to the user without the possibility of manual edits. This article is recommended as a starting point for more reading on this.

Please see this article for details on the relationship between Default Value and Dynamic Value.
If this checkbox is checked, users will be able to see the contents of the field but will be unable to make edits.

Similar to the Required property, the Read-Only property also includes the ability to define a conditional formula determining whether the read-only property is enabled. Click "add condition" to define such a formula.

Add your own custom formula to this property for validating text entered into this field by users. The formula is only applied when the field has an answer. Enforcement will be done according to the "Validation Property" chosen on the page level; please see this article for more detail on this.

The contents of this property will serve as a custom message to display to the user if their input fails validation.

The value entered in this property serves as the initial value of the field prior to manual input. Please see this article for details on the relationship between Default Value and Dynamic Value.

This property allows for the binding of the contents of the field to a data source that is linked to either a choices field or data field on the form. For details, please see the screenshot below:

Data Source binding allows you to create forms that can load data from, and update data to, any given data source. This opens up amazing opportunities to have dynamic data that is updated on the move (e.g., adding contacts or clients). For more information, please see this article.
Global Values are a local key/value store that is available on any Screen on the app. Use this property to allow the user to view and save defaults for use across the app (e.g., a default project or customer). Please see this article for more information.

By default, every field is displayed on Form entries in the Data area, and is included in non-templated exports (e.g., generic pdf, CSV, spreadsheet, database connectors). Use this property to prevent this field from showing on all such displays and exports.

This indicates that data captured in this field may contain personal or sensitive data, which in turn can be anonymized when exported from the platform when then the "Anonymize Personal Data" option is checked on a form connector. Please see this article for more on this.
NOTE: Use of this option does not grant or imply additional security, protection, and privacy of data.

This property is used to define a dynamic, custom file name for the captured signature using template syntax -- e.g., STOCK-{{mychoicefield}}-{(USERLASTNAME())}. The file extension is automatically added by the system based on the file type. Consider also using metadata fields to add further specificity to file names.
By default (if this property is left blank), the app will generate a date-based name for each file captured by the user.

Limit File Types
This field can be used to enter a comma-separated list of file types that will be allowed to be attached. Creating specific limits for file types can prevent a user from uploading something malicious, such as a .zip file containing viruses or other unwanted attachments.
If this field is left empty, then any file type supported by the device can be selected.
This property sets a file to download from the specified URL, rather than capturing the file from the device. This is useful for cases where other apps or external devices can provide files via a HTTP:// or another URL scheme. Note that field references can be incorporated into URL - e.g., HTTP://{{otherfield}}/getimage.
Under advanced options for this field, as a screen designer, you have the ability to limit file types and download from a URL. The file types and URLs can also be data-driven; that is, their values can be driven by other fields in the form screen.
Unlike photo or signature controls, there is no way to include a document inside your document template fully. If you need an image of your document to show up inside a Word or Excel output design, please take a photo of a document and include that as a separate media field. If your form screen includes a connector, such as an email connector or other file storage to Dropbox, Google Drive, etc., you can select the box to "Send Media Files Separately" and, in that connector, all media files, file attachments, and signatures will be attached separately. If the attachment you include in your form is a PDF document, for example, that will be sent alongside your connector document, if you have one using a template.

If you do not want to send media files separately, because too many files are part of the document, or because you want it all contained in a single output report, such as a PDF, you may want to consider using a hidden field to capture the URL of where the file exists. In this instance, you can use a hidden or other text field along with the function FILEURL({{mediafield}}) in order to associate the file attachment directly in an output template, such as Word or Excel, which may be converted into PDF on any specific connector.
Example: Say you have a floor design document that you attach to a work order, and the attachment field is called {{FloorDesign}}. You can create a hidden field for the exact URL location of any PDF attachment. For the hidden field, say that is called {{HiddenURLField}}, you will use the formula FILEURL({{FloorDesign}}).
Your output document will then reference this hidden field using the following formula:
Word Template:
{( LINK(‘Click here’, {{HiddenURLField}}) )}
Excel Template:
{{( LINK('Click here', {{HiddenURLField}}) )}}
Alternatively, you may substitute the static text in quotation marks for the data name of a field with text to be shown instead. For example, if you have a hidden or other field named {{textHere}}, your formula on the output would be:
Word Template:
{( LINK({{textHere}}, {{HiddenURLField}}) )}
Excel Template:
{{( LINK({{textHere}}, {{HiddenURLField}}) )}}
Whether you are sending a Word, Excel, or PDF document in your connector, the text will be a link to the attachment. This is a powerful capability to attach and utilize additional documents or other files inside your form screens.