
The NFC field allows you to build Form screens that can read/write NFC tags using Android or iOS devices.
NOTE: Read only supported on iOS devicesExamples: A form can read data from an NFC tag and pre-populate additional field values that can only be acquired from the tag, either confirming a location was checked, obtaining machine specs that are no longer visible, or launching a form after scanning a tag to perform a particular inspection,
The best way to experiment with the NFC field is by using inexpensive NFC stickers (also called tags). You can purchase these online; just run an internet search for the term "NFC Stickers." NTAG213 tags in particular have proven very compatible with our Android NFC implementation.
Please be aware that the NFC standard has several variants, particularly around encryption. We do not currently support encrypted NFC tags and have no plans to do so at this time.
Always first purchase one or two sample tags and test these with your target devices and app before purchasing in bulk. This will save you money if your tags prove to be incompatible with our NFC implementation.
There are two fairly self-explanatory operations you can perform against a blank/new NFC tag/sticker:
When working with new/blank tags, you must specify a MIME type that the app will use for read/write operations on that NFC field.
e.g. application/vnd.nameofyourapp - where nameofyourapp is any unique name you wish, without spaces.
You set the MIME type via the "Read/Write MIME Type" property found on the NFC field's properties in the Form designer.
Once a MIME type is set, then when you run the app you will see a Read button appear on the NFC field.
When the user opens the screen, a Read button will be seen on the NFC field. If you hit the Read button and then tap your device to the NFC tag/sticker, the value will be set as the answer of the NFC field. Should you have any subsequent form fields that have formulae depending on the NFC field's value, then those will be triggered by the read operation.
When it comes to writing values to the NFC tag, this is controlled via the "Write Value" property found on the NFC field in the Form designer. You must specify a formula that gives a text/string result in this property. A simple form field reference such as {{myfield}} will not work as a Write Value; you need to use the field in a formula function such as CONCAT(). The formula result will be written on the tag via a Write button that appears on the app when a write formula is specified. E.g., you could specify CONCAT(USERLASTNAME(), ', ', USERFIRSTNAME()) as the Write Value formula.
EXAMPLE
To see an example of NFC functionality in action with a form, please download "NFC Card Read/Write" from our Form Templates catalog. This example includes both writing to and reading from an NFC card, both string (text) data and images! (Note that image storage will be limited to the storage size of the NFC card.)
This dropdown is used to define an action to occur each time the user successfully reads a NFC tag with the field.














Read/Write MIME Type
This property is used to specify a target MIME type to read from and write to - e.g., application/vnd.myapp or text/html.
Read Value From
This dropdown is used to specify a target record type from which to read.
NOTE: This setting is ignored if a MIME Type is specified (see above).
Write Value
This property is used to define a write value for the NFC tag. A tag can only be written, and the "Write" button will only appear on the field for the app user, if this property contains content. The value of this property can be static and/or dynamic, featuring data names from the form.
You must specify a formula that gives a text/string result in this property. A simple form field reference such as {{myfield}} will not work as a Write Value; you need to use the field in a formula function such as CONCAT(). The formula result will be written on the tag via a Write button that appears on the app when a write formula is specified. E.g., you could specify CONCAT(USERLASTNAME(), ', ', USERFIRSTNAME()) as the Write Value formula.
Lock Tag on Write
This checkbox option, if checked, will permanently lock the NFC tag upon a successful write operation. Once the tag has been locked, the tag CANNOT be unlocked!
Layout & StylingField Layout
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.

This checkbox option, if checked, will cause the NFC reader to be activated upon the screen being opened instead of showing a Read button for the user to click (which is the default). Note that only one inline NFC reader is supported per page or table.
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 required-ness 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 https://support.eformsmobile.com/a/solutions/articles/42000017721.

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. https://support.eformsmobile.com/a/solutions/articles/42000109832 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.
Bind to Global Value
Global Values are a local key/value store that is available to 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.

To see an example of NFC functionality, be sure to install the free form template "NFC Example Form" from our Form Templates catalog. This form demonstrates both writing content to an NFC card and parsing the content back out from the card. Note that this will require NFC tags with enough storage capacity to hold an image file.
Android and iOS have different ways to manage reading from and writing to NFC Tags. Below is a method that will allow you to write URIs to NFC Tags and then use eForms Mobile deep-linking feature to allow you to open a specific app after scanning an NFC tag in iOS.
Step 1:
Download NFC Tools from the Apple App Store
Step 2:
Using NFC Tools, write a new Custom URL/URI record to the NFC tag. The URI format should be:
(matching the format as configured on the web platform via Apps > App Setup > Launch Options)
Step 3:
Ensure NFC is enabled on the device and scan the tag. The system will present a popup notification that can be clicked to launch the app and deliver the tag data to it.
The iPhone XS and later support background tag reading. With background tag reading, the system scans for and reads NFC data without requiring users to take an explicit choice to read a NFC tag. The system displays a pop-up notification each time it reads a new tag. After the user taps the notification, the system delivers the tag data to the appropriate app. If the iPhone is locked, the system prompts the user to unlock the phone before providing the tag data to the app. |
To avoid unintentional tag reading, the system reads tags in the background only when the user’s iPhone is in use.
Also, be aware there are times when the display is on, and background tag reading is unavailable, such as if: