Skip To Content

Configure a project

After you create a project, you can configure it in the ArcGIS QuickCapture designer using either the graphical interface or a JSON editor. You can configure the following:

  • Project settings
  • Groups
  • Buttons

The following can be edited in the graphical interface for the project:

  • General—Set the required or recommended location accuracy, distance threshold, display preferences, location editing preference, coordinate notation format, and quality of captured photos.
  • Layers—Manage layers used by the project. By setting a layer as default, any new buttons added to the project will use fields of that layer. For all layers used in the project, you can also set default values and variables for all fields within each layer.
  • Map—Select a map to be used by your project. By default, the organization default basemap will be used. Optionally, choose a different online basemap or web map, or offline map (mobile map package, tile package, or vector tile package). Choose to show the map side by side with the buttons when the project is viewed on a tablet device in landscape orientation. Only maps with the Web Mercator spatial reference are supported.
  • Project details—Edit the project thumbnail (use landscape images with a 3:2 aspect ratio), title, data recovery email, summary, description, and terms of use. Hyperlinks can be used in the project description.
  • Exclusivity groups—Prevent multiple line, polygon, or streaming point buttons from capturing data at the same time by placing them in a group. Only one button in a group can be active at any one time.
  • Project user input—Create and manage project user input variables. Create project user inputs, arrange the display order of the project user inputs in the project, edit or delete a project user input, and visualize assigned buttons for a selected project user input. Project user inputs can also be created on a button's Data tab.
  • Webhooks—Configure webhooks used in the project and specify the name, target feature layer, webhook URL, and information to be included in the payload. You can add multiple webhooks in a project and set the status to be on or off for each of them.

The following can be edited in the graphical interface for groups:

  • Label—Label shown in the project for the group.
  • Number of columns—Number of columns in the group.
  • Make group collapsible—Display preference of the group. If set to collapsable, the default state is expanded.
  • Colors—Outline color of the group as an HTML hexadecimal value.

You can create groups by dragging the group icon onto the project preview.

Tip:

You can edit multiple groups at once. Press the Shift key while you select groups in the project preview to select multiple groups. Edits that you make in the side panel will be applied to all selected groups.

You can use buttons to either capture data or launch a URL. The following can be edited in the graphical interface for buttons:

  • Appearance—Configure the appearance of buttons in the project.
    • Label—Button label and text size of small (default), medium, and large.
    • Size—Button size. Use the slider to choose from smallest to largest.
    • Shape—Button shape can be rectangle or rounded corner rectangle.
    • Colors—Colors of the button background and outline as HTML hexadecimal values.
    • Image—Button image. Use Browse gallery to select an image from the icon gallery or select Upload new to upload an image of your own. Consider the size of your button when choosing an image. Button images are limited to 1 MB.
  • Data—Type of data to be collected for each field when the button is tapped.
    • Target feature layer—The feature layer where captured data of the button is sent.
    • Capture mode (points only)—The mode to capture a single point or capture streaming points.
    • Take photo or video (or both) —The configuration of the number of photos or video taken by a button. For photos, the maximum value is 5. For video, the maximum number value is 1. For single-photo capture, you can choose to hide the camera preview and use photo location for the captured record. For video capture, you cannot hide the preview and the maximum length of each video is 10 seconds. If a project button is configured to capture both (photo and video), the app user will be able to choose either photo or video.
    • Capture fields—The fields that can be populated with fixed values, project user input variables, button user input variables that allow users to enter or select a value from a list once the button is pressed, device variables (for example, speed or accuracy), or Arcade expressions.
  • Link—A dedicated URL to be launched when the button is pressed.
    • Launch URL—Manually configure the URL. This can be a website URL that begins with HTTPS or an app link that launches another app.
    • Launch Survey123 field app—Construct the link to launch the ArcGIS Survey123 field app. Select a survey and predefine the input value of supported survey questions with fixed values, device variables, or a project user input variable. Optionally, choose to return to QuickCapture after submitting the survey.
Tip:

You can edit multiple buttons at once. Press the Shift key while you select buttons in the project preview to select multiple buttons. Edits that you make in the side panel will be applied to all selected buttons.

You can create buttons that capture data by dragging the button icon on the project preview. The new button has the fields of the default layer. If a default layer has not been set for the project, the author must add the data source for the button by selecting it on the Data tab of the button side panel.

Note:

Only editable fields are shown on the Data tab. Fields that are not editable cannot be configured in the designer.

To add buttons that launch a URL, drag the link icon on the project preview. On the Link tab, choose URL to manually define the URL or choose Survey123 field app to select a survey to link to.

You can duplicate or delete an existing button. Select the button in the project preview and choose the Duplicate or Delete button on the Appearance tab of the button side panel.

Drag Duplicate or Delete buttons.

You can edit these properties and more by changing the project JSON. You can copy and paste code between the QuickCapture designer and your preferred JSON editor or edit it directly in the designer. There is limited syntax checking in the designer, so be careful when making edits. Checking code snippets in an online JSON validator may be useful.

When editing properties of type decimal in the project JSON, always use a period (.) as the decimal separator. Other decimal separators will not work.

The following sections provide more detail about some of the most common customizations made to projects.

Streaming points

A project author can configure a point button to capture continuously, similar to how line and polygon buttons operate. Streaming point capture is useful when you want to record GNSS metadata and other data such as speed for every vertex along a path. Each vertex of the path is represented by a point and can be continuously automatically sent to ArcGIS.

If a button user input is applied to a point button, streaming mode cannot be enabled on that button. If streaming mode has already been selected for a point button, a button user input cannot applied to that button.

Streaming point capture is not designed to actively track the location of mobile workers.

To learn more, see Location sharing.

Show map after capture

A project author can configure a point button to display the map after capture. On this map, the mobile worker can visually confirm the location that was captured, and also pan the map to capture a more accurate location.

When the map is enabled, the project author can also customize the map title or the map hint, to provide guidance or instruction to the mobile worker.

Fixed values

You can apply fixed values to fields when a button is pressed. This fixed text is defined by the author and constrained by the field type and length. For example, an integer field cannot accept a decimal or text value.

Device variables

Device variables are used to automatically populate QuickCapture fields with common GIS attributes. Not all variables can be applied to all types of fields. For example, the time stamp variables only apply to fields of type date.

Some variables are automatically assigned to button fields that have a specific name. You can choose to manually create these named fields in your feature layer, or optionally, select Capture GPS receiver information when creating a feature layer in ArcGIS Online or creating a feature layer in ArcGIS Enterprise.

Device information

VariableCompatible field typeCompatible feature typeField variable automatically assigned to

Project name

Variable name: projectName

Name of the project that was used to capture the record.

Text

Points, lines, polygons

-

Install UUID

Variable name: installUUID

Unique identifier of the mobile app created on installation. This variable can be used to uniquely identify a device.

Text

Points, lines, polygons

-

App Version

Variable name: appVersion

Version of QuickCapture.

String

Points, lines, polygons

-

Operating System

Variable name: operatingSystem

Platform and operating system version.

String

Points, lines, polygons

-

Session Id

Variable name: sessionId

Unique ID that is generated every time location sharing is turned on.

String

Points, lines, polygons

-

Power Mode

Variable name: powerMode

Category of the power mode. Potential results are Unknown (0), Balanced (1), Battery saver.

Integer

Integer

-

Power Source

Variable name: powerSource

Category of the power source. Potential results are Unknown (0), AC (1), USB (2), Wireless (3), and Battery (4).

Integer

Points

-

Battery State

Variable name: batteryState

Category of the battery state. Potential results are Unknown (0), Unplugged (1), Charging (2), Plugged and fully charged (3), and Plugged but not charging (4).

Integer

Points

-

Battery Level

Variable name: batteryLevel

Battery level as a percentage (0–100).

Integer

Points

-

Magnetic Declination

Variable name: magneticDeclination

Angle between magnetic and true north in decimal degrees.

Double

Points

-

Azimuth (°)

Variable name: azimuth

Compass bearing of device when the record was captured, where true north is 0, east is 90, south is 180, and west is 270.

Double

Points

esrisnsr_azimuth

Pitch (°)

Variable name: pitch

Pitch of device when the record was captured, where 0 represents the device face up and 90 represents the device tilted upright, perpendicular to the ground.

Double

Points

-

Roll (°)

Variable name: roll

Roll of device when the record was captured, where 0 represents the device face up, 90 represents the device rolled to the right, -90 represents the device rolled to the left, and 180 represents the device face down.

Double

Points

-

Note:

When a point is manually edited, the magneticDeclination, azimuth, pitch, and roll variables are cleared.

User information

VariableCompatible field typeCompatible feature typeField variable automatically assigned to

Username

Variable name: username

Currently signed-in username.

Text

Points, lines, polygons

-

Fullname

Variable name: fullName

Currently signed-in user full name.

Text

Points, lines, polygons

-

First name

Variable name: firstName

Currently signed-in user first name.

Text

Points, lines, polygons

-

Last name

Variable name: lastName

Currently signed-in user last name.

Text

Points, lines, polygons

-

Email

Variable name: email

Currently signed-in user email address.

Text

Points, lines, polygons

-

Location

VariableCompatible field typeCompatible feature typeField variable automatically assigned to

Capture time (UTC)

Variable name: captureTime

Time of capture in UTC.

Date

Points

esrignss_fixdatetime

Latitude (DD)

Variable name: latitude

Latitude in decimal degrees.

Double

Points

esrignss_latitude

Longitude (DD)

Variable name: longitude

Longitude in decimal degrees.

Double

Points

esrignss_longitude

Altitude (m)

Variable name: altitude

Altitude above sea level or ellipsoid in meters.

Double

Points

esrignss_altitude

Horizontal accuracy (m)

Variable name: horizontalAccuracy

Horizontal accuracy of the x,y coordinates in meters.

Double

Points

esrignss_h_rms

Vertical accuracy (m)

Variable name: verticalAccuracy

Vertical accuracy of the z-coordinate in meters.

Double

Points

esrignss_v_rms

Location DMS

Variable name: DMS

Location as a space-separated string in degrees, minutes, and seconds.

Text

Points

-

Location DDM

Variable name: DDM

Location as a space-separated string in degrees and decimal minutes.

Text

Points

-

Location USNG

Variable name: USNG

Location in U.S. National Grid.

Text

Points

-

Location MGRS

Variable name: MGRS

Location in Military Grid Reference System.

Text

Points

-

Note:

When a point is manually edited, the altitude, horizontalAccuracy, and verticalAccuracy variables are cleared.

Travel

VariableCompatible field typeCompatible feature typeField variable automatically assigned to

Speed (m/s)

Variable name: speedMS

Ground speed in meters per second.

Double

Points

-

Speed (km/h)

Variable name: speedKPH

Ground speed in kilometers per hour.

Double

Points

esrignss_speed

Speed (mi/h)

Variable name: speedMPH

Ground speed in miles per hour.

Double

Points

-

Speed (knot)

Variable name: speedKTS

Ground speed in knots.

Double

Points

-

verticalSpeedMS

Vertical speed in meters per second.

Double

Points

-

Variable name: verticalSpeedKPH

Vertical speed in kilometers per hour.

Double

Points

-

Variable name: verticalSpeedMPH

Vertical speed in miles per hour.

Double

Points

-

Variable name: verticalSpeedKTS

Vertical speed in knots.

Double

Points

-

Direction of travel (°)

Variable name: direction

Direction of travel measured clockwise from north in decimal degrees.

Double

Points

-

Direction of travel 4 cardinal directions

Variable name: directionCardinal4

Direction of travel generalized as one of the four cardinal directions. Potential results are N, E, S, and W.

Text

Points

-

Direction of travel 8 cardinal directions

Variable name: directionCardinal8

Direction of travel generalized as one of the eight cardinal directions. Potential results are N, NE, E, SE, S, SW, W, and NW.

Text

Points

-

Activity type

Variable name: activityType

User activity type: Unknown (0), Stationary (1), Walking (2), Running (3), Cycling (4), Automotive (5)

Text

Points

-

Start time

Variable name: startTime

Date and time the button is activated.

Date

Lines, polygons

-

End time

Variable name: endTime

Date and time the button is deactivated.

Date

Lines, polygons

-

Length (m)

Variable name: lengthM

Geodetic length in meters.

Double

Lines, polygons

-

Length (km)

Variable name: lengthKM

Geodetic length in kilometers.

Double

Lines, polygons

-

Length (mi)

Variable name: lengthMI

Geodetic length in miles.

Double

Lines, polygons

-

Area (m2)

Variable name: areaM2

Area in square meters, for polygon layers only.

Double

Polygons

-

Area (km2)

Variable name: areaKM2

Area in square kilometers, for polygon layers only.

Double

Polygons

-

Area (mi2)

Variable name: areaMI2

Area in square miles, for polygon layers only.

Double

Polygons

-

Note:

Vertical speed cannot be assigned to a button field in the web designer GUI, but can be created using the variable name when editing the Project JSON.

When a point is manually edited, the speedMS, speedKPH, speedMPH, speedKTS, verticalSpeedMS, verticalSpeedMPH, verticalSpeedKPH, verticalSpeedKTS, direction, directionCardinal4, and directionCardinal8 variables are cleared.

Photo

VariableCompatible field typeCompatible feature typeField variable automatically assigned to

Camera Heading (°)

Variable name: camHeading

Compass bearing of the device's rear camera when the photo was captured, where true north is 0, east is 90, south is 180, and west is 270. This is also saved to the photo EXIF tag GPSImgDirection. Be aware that camHeading is not reliable when images are captured with camRoll values greater than ±10 degrees.

Double

Points

-

Camera Pitch (°)

Variable name: camPitch

Pitch of the device's rear camera when the photo was captured, where 0 represents the camera looking down toward the ground, and 90 represents the device looking forward, perpendicular to the ground.

Double

Points

-

Camera Roll (°)

Variable name: camRoll

Roll of the device's rear camera when the photo was captured, where 0 represents no roll, 90 represents the device rolled to the right, and -90 represents the camera rolled to the left. Roll beyond ±45 degrees will result in the device orientation being switched from portrait to landscape, and the camHeading, camPitch, and camRoll angles will be adjusted accordingly.

Double

Points

-

Horizontal field of view (°)

Variable name: hfov

Horizontal field of view for the camera lens measured in degrees. This variable is calculated from photo EXIF tag FocalLength35mmFilm. It returns null if the EXIF tag is missing.

Double

Points

-

Vertical field of view (°)

Variable name: vfov

Vertical field of view for the camera lens measured in degrees. This variable is calculated from photo EXIF tag FocalLength35mmFilm. It returns null if the EXIF tag is missing.

Double

Points

-

Photo latitude (DD)

Variable name: photoLatitude

Latitude when the photo was captured, in decimal degrees. This is also saved to the photo EXIF tag GPSLatitude.

Double

Points

-

Photo longitude (DD)

Variable name: photoLongitude

Longitude when the photo was captured, in decimal degrees. This is also saved to the photo EXIF tag GPSLongitude.

Double

Points

-

Note:

For buttons that support multiple photos, camera device variables will not be calculated.

The variables in the following table are typically available only when connected directly to an external GNSS receiver, however, the variables marked with * are also available on Android when an external receiver is connected through a mock location provider.

GNSS

VariableCompatible field typeCompatible feature typeField variable automatically assigned to

Position source type*

Variable name: positionSourceType

Category of the position source. Potential results are Unknown (0), User (1), System Location (2), External Device (3), and Network Device (4).

Integer

Points, lines, polygons

esrignss_positionsourcetype

Fix type*

Variable name: fixType

Type of position fix for the coordinate. Potential results are NoFix (0), GPS (1), DifferentialGPS (2),PrecisePositioningService (3), RTKFixed (4), RTKFloat (5), Estimated (6), Manual (7), Simulator (8), and SBAS (9).

Integer

Points

esrignss_fixtype

Device address

Variable name: deviceAddress

Typically, this address is the Bluetooth MAC address of the device, for example, 0C:00:0A:BB:28:FC. However, on iOS, a Bluetooth MAC is not available, so instead a unique device identifier is returned—for example, 3f89ecd0-bbe5-11ea-8b6e-0800200c9a66.

Text

Points

-

Location sensor name*

Variable name: sensorName

When using the integrated location provider, the name is AppStudio-CoreLocation. When using an external receiver, it will be the name of the receiver as reported by the external hardware.

Text

Points

esrignss_receiver

Location sensor connection type

Variable name: deviceType

Type of external device. Potential results are Unknown (-1), Bluetooth (0), Serial Port (1), and Bluetooth LE (2).

Integer

Points

-

Network name

Variable name: networkName

This is only available for network location providers.

Text

Points

-

Network address

Variable name: networkAddress

This is only available for network location providers.

Text

Points

-

Network port

Variable name: networkPort

This is only available for network location providers.

Integer

Points

-

Orthometric height*

Variable name: geoidSeparationCustom

Difference between the WGS84 earth ellipsoid and mean sea level as defined by the user in the app settings. This is available for all location provider types.

Double

Points

-

Antenna height

Variable name: antennaHeight

Distance from the antenna to the ground surface is subtracted from altitude values in meters.

Double

Points

-

Altitude type*

Variable name: altitudeType

Potential results are altitude above mean sea level (0) and height above ellipsoid (1).

Integer

Points

-

Geoid seperation*

Variable name: geoidSeparation

Difference between the WGS84 earth ellipsoid and mean sea level as reported by the GNSS receiver in meters. This is also sometimes referred to as orthometric height.

Double

Points

-

Accuracy type (RMS v DOP)*

Variable name: accuracyType

Type of accuracy reported by the horizontalAccuracy and verticalAccuracy properties. Potential results are RMS (0) and DOP (1). RMS is root mean square accuracy. This is calculated based on a 68 percent confidence interval for latitude, longitude, and altitude errors reported in the GST sentence provided by the receiver. If the receiver does not support GST, DOP is used instead. DOP is a dilution of precision-based accuracy. This uses a constant user-estimated range error (UERE) value to estimate horizontal and vertical accuracies.

Integer

Points

-

Accuracy confidence level*

Variable name: confidenceLevelType

Potential results are 68 percent (0) and 95 percent (1).

Integer

Points

-

Mean radial spherical error

Variable name: positionAccuracy

Mean radial spherical error in meters. This encompasses both horizontal and vertical error.

Double

Points

-

GST latitude 1-sigma error

Variable name: latitudeError

Value of latitude 1-sigma error in meters. This property is only populated if your positioning device supports GST sentences in NMEA streams.

Double

Points

-

GST longitude 1-sigma error

Variable name: longitudeError

Value of longitude 1-sigma error in meters. This property is only populated if your positioning device supports GST sentences in NMEA streams.

Double

Points

-

GST altitude 1-sigma error

Variable name: altitudeError

Value of altitude 1-sigma error in meters. This property is only populated if your positioning device supports GST sentences in NMEA streams.

Double

Points

-

HDOP*

Variable name: hdop

Positional data's Horizontal Dilution of Precision.

Double

Points

esrignss_hdop

VDOP*

Variable name: vdop

Positional data's Vertical Dilution of Precision.

Double

Points

esrignss_vdop

PDOP*

Variable name: pdop

Positional data's Positional Dilution of Precision. The equation used to determine PDOP is PDOP^2 = HDOP^2 + VDOP^2.

Double

Points

esrignss_pdop

Differential age*

Variable name: differentialAge

Age of the differential signal and correction used by the GPS receiver to differentially correct the position in seconds.

Double

Points

esrignss_correctionage

Reference station id*

Variable name: referenceStationId

Differential reference station ID (DSID) of the station used by the GPS receiver.

Integer

Points

esrignss_stationid

Satellites visible

Variable name: satellitesVisible

Number of positioning satellites visible at the time of location capture.

Integer

Points

-

Satellites in use

Variable name: satellitesInUse

Number of positioning satellites being used to return the position data.

Integer

Points

esrignss_numsats
Note:

When a point is manually edited, all external GNSS variables are cleared.

Offline map

By default, the map extent of an online map is cached for ongoing use when the device is taken offline. As long as the project is not closed, the map extent that was visible while online will remain visible when offline.

If the app user opens a project while the device is offline and no offline map has been configured by the project author, the Esri default offline map will be visible. This default offline map is a lightweight simplified basemap of the world, designed to provide basic geographic context to local data.

There are two ways that custom offline maps can be configured for use by the app: an offline map can be associated with the project in the web designer by the author, or the Esri default offline map on the device can be replaced by the app user.

In the web designer, any of the following can be selected as the project map:

  • Online basemap
  • Online web map
  • Offline .tpk, .vtpk, or .mmpk files.
Note:

A .mmpk file can also optionally reference online content, which would be updated when the device is online. This may be desirable in a sometimes connected environment. For example, offline background layers would be available to view at all times, but when the device is online, previously captured records from the project can also be seen on the map.

The Esri default offline map is a .vtpk file that is copied to the device during installation. This file—esri_default.vtpk—can be replaced with your own file of the same name, of any of the supported offline file types: .tpk, .vtpk, or .mmpk. Once replaced, the map will be viewable in any project opened while the device is offline. This file is located in the maps folder on the device in the following places:

  • WindowsC:\Users\<username>\ArcGIS\QuickCapture\resources\maps
  • AndroidInternal Storage/Android/data/com.esri.quickcapture/files/ArcGIS/QuickCapture/resources/maps
  • iOSQuickCapture/ArcGIS/ArcGIS QuickCapture/resources/maps

If the app is reinstalled, any replaced files will be deleted and the Esri default offline map reinstated.

Exclusivity groups

An exclusivity group is used to ensure only one button within the group is active at any time. Consider capturing a series of lines that represent the changing condition of a footpath. As you travel along the path, the condition may be excellent, good, or poor. Tap the excellent button to start capturing a line representing an excellent section of footpath. When the condition changes, tap the poor button immediately. Capture of the excellent line stops, and capture of the poor line starts.

Exclusivity groups are typically applied to polyline and polygon buttons, but you can also add point buttons that are streaming mode enabled. You can include buttons from different template groups in a single exclusivity group, and you can apply multiple exclusivity groups to a project.

Project user input variable

The project user input variable value is populated by the app user, and you can apply it to one or more buttons in a project. The app user enters the value; however, the project author must define the buttons and fields to which the variable will apply.

The following apply to a project user input:

  • Up to three project user input variables can be defined per project.
  • Its value is entered by the user before pressing a button. If the user input is set as required, the user is prompted to enter this value when starting the project but can edit the value at any time.
  • You can apply its value to any text fields in any buttons.
  • You can apply its value to a text or integer field that is configured with a coded value domain.
  • You cannot apply its value to a text field that is configured with a range domain.

Properties of the project user input variable are as follows:

  • Label—Text that will appear as the title of the project user input page in the app.
  • Input type—Can be single-line text, multiline text, or choice list. You can add, delete, and reorder choices. Optionally, you can allow free text entry with choice lists.
  • Apply hint—Display hint text on the project user input page in the app.
  • Apply an input mask—Define the format for data entry by using characters and symbols to define an input mask.
  • Required—Specifies whether the mobile app user must provide the user input value before they can press any button. When not required, the user can optionally enter a user input value by selecting the edit button (next to the user input value displayed at the top of the screen) and typing a value.
    Note:

    When applying a user input value to a feature layer with required fields, ensure that its required property is set to true to avoid submission errors.

  • Show barcode scanner—Use barcode scanner on the input dialog box for text field entry.
    Note:

    The following formats are supported: QR CODE, UPC A, UPC E, EAN 8, EAN 13, CODE 39, and CODE 128.

A project user input is created and configured by the project author either on the Data tab for each field or in the Project user input menu item.

To assign a project user input variable to a capture field of a button, on the Data tab, from the drop-down menu of the capture field, choose Project user input.

Choose a project user input for a text field.

In the mobile app, the user is prevented from entering text that exceeds the length of the data field.

Button user input variable

A button user input variable value is populated by the app user after a button is pressed in a project. The app user enters the value; however, the project author must define the buttons and fields to which button variables will apply.

A button user input variable is different from a project user input variable, as values are entered by the user after pressing a button. Up to three button user inputs can be applied to each project button, with each updating a specified field.

Properties of the button user input variable are as follows:

  • Label—Text that will appear as the title of the project user input page in the app.
  • Input type—Can be single-line text, multiline text, date time or choice list. You can add, delete, and reorder choices. Optionally, you can allow free text entry with choice lists. You can specify a default value and date range with the date time input type.
  • Apply hint—Display hint text on the project user input page in the app. This is not applicable when configured with a range or coded value domain.
  • Apply an input mask—Define the format for data entry using characters and symbols to define an input mask.
  • Required—Specifies whether the mobile app user must provide the user input value after a button is pressed.
    Note:

    When applying a user input to a feature layer with required fields, ensure that its required property is set to true to avoid submission errors.

  • Show barcode scanner—Use barcode scanner on the input dialog box for text field entry.
    Note:

    The following formats are supported: QR CODE, UPC A, UPC E, EAN 8, EAN 13, CODE 39, and CODE 128.

  • Show user input dialog box—Specifies whether the button user input is shown at the start or end of data capture. This applies to buttons that capture line and polygon features; it does not apply to point buttons.

Depending on field type, different user input variable parameters are available:

  • String—User input label, display as multiline single line or choice list, hint, input mask, required.
  • Integer—User input label, required.
  • Double—User input label, required.
  • Date—User input label, required.

A button user input can be configured by the project author on the Data tab for each button. To assign a button user input variable to a capture field of a button, on the Data tab, from the drop-down menu of the capture field, select Button user input and select Create new.

Choose a button user input or create new.

If you create a button user input for a field that has a domain (either coded value or range), the choices are presented to the user as a single choice list. Free text cannot be entered when a coded value domain is present. When a range domain is present, data entry is limited by the range.

Input masks

An input mask defines the format for data entry using characters and symbols as part of a project or button user input variable. When you apply an input mask to a user input variable, values entered by the user must follow the specific pattern defined by the input mask.

To apply an input mask to your user input variable, define the mask in the userInputs.domain.inputMask property.

The following table lists the characters and symbols that you can use in an input mask:

CharacterMeaning

A

ASCII alphabetic character required. Characters can be A through Z and a through z.

a

ASCII alphabetic character permitted but not required.

N

ASCII alphanumeric character required. Characters can be A through Z, a through z, and 0 through 9.

n

ASCII alphanumeric character permitted but not required.

X

Any character required.

x

Any character permitted but not required.

9

ASCII digit required. Digits can be 0 through 9.

0

ASCII digit permitted but not required.

D

ASCII digit required. Digits can be 1 through 9.

d

ASCII digit permitted but not required. Digits can be 1 through 9.

#

ASCII digit or plus/minus sign permitted but not required.

H

Hexadecimal character required. Characters can be A through F, a through f, and 0 through 9.

h

Hexadecimal character permitted but not required.

B

Binary character required. Characters can be 0 through 1.

b

Binary character permitted but not required.

>

All following alphabetic characters are uppercase.

<

All following alphabetic characters are lowercase.

!

Switch off case conversion.

\

Escape the special characters listed above to use them as separators.

The mask consists of a string of characters and separators, optionally followed by a semicolon and the character used for blanks. The blank characters are always removed from the text after editing. The following table lists example masks:

Example maskDescription

>A<xxxxxxxxxxxx

Text that starts with a capital letter followed by any lowercase characters.

AAA-AAA-AAA;_

Unique identifier that uses dashes as separators and underscores to represent each character that is to be completed.

B9.99;-

Represents a pH value. The number is constrained to start only with 0 or 1 and can only include two decimal places. A dash is used to represent each character that is to be completed.

999-99-9999

United States Social Security number.

(999) 999-9999

United States phone number.

900 kg

Weight in kilograms between 0 and 999.

99999

United States 5-digit ZIP Code.

AAA

IATA airport code.

Webhooks

Webhooks are a widely supported method used to allow multiple applications to interact with each other, using HTTP POST requests to pass callbacks between them. For more information, see Wikipedia's page on webhooks. Common uses for webhooks include sending notifications by email or SMS, posting messages to social media, automatically writing records to a spreadsheet, and updating enterprise databases.

In QuickCapture, you can set up and activate webhooks when a record is submitted. For example, after a successful submission of information to the feature layer, you can call the webhook and trigger another action, such as sending a notification email, appending the record to a spreadsheet, and sending an alert.

Your workplace may have its own webhook provider, but a wide variety of third-party workflow services are available, such as Make, Microsoft Power Automate, Zapier, and tray.io. You can use all of these to incorporate QuickCapture as a trigger for a greater automated process. In particular, Make has a QuickCapture module, allowing you to integrate QuickCapture into your webhook workflow with minimum difficulty, and without the need to configure the webhook in the QuickCapture designer or to input a payload URL.

There are many ways you can use QuickCapture as a trigger in your workflows. To get started, Make has templates that you can use to include attachments in your email notifications, add records to spreadsheets, and create calendar items. To learn more, see Automate workflows with Integromat.

Note:

The default QuickCapture module in Make is built for projects hosted in ArcGIS Online. To use Make with projects hosted in ArcGIS Enterprise, you will need to set up a custom connection. For more information, see Connecting Integromat to an ArcGIS Enterprise instance.

You can configure a webhook in the QuickCapture designer by choosing the Webhooks menu item Webhooks. When creating a webhook, provide the following parameters:

  • Name—Set the name of the webhook (unique within the project).
  • Target feature layer—Select a single feature layer. The payload is sent to the configured webhook URL each time a record is submitted to this layer.
  • Webhook URL—Specify where the project information is sent. An external webhook provider must provide this.
  • Event data—Choose what information is included in the payload, including project details, information of the user, portal and submitted record, and response from the server.
  • Status—Determine whether this webhook is enabled when the project is saved.

For an example of a webhook payload, see FAQ for project authors.

Project validation

Analysis is performed to help validate data and diagnose your project configuration when you open, save, or share the project. Guidance is provided to help fix errors or warnings in the Messages pane. Click the error or warning message to locate the issue.

You can save the project with warnings. However, you cannot save it until all the errors are resolved. Issues that may prevent saving include the following:

  • Invalid data sources—Feature layers and map that have been deleted or unshared.
  • Empty required fields—Fields marked as required must have a device variable, user input, or fixed value defined. When assigning a user input to a required field, ensure the user input variable is also marked as required.
  • Invalid project settings—Incompatible values for recommended and required horizontal accuracy, settings marked as required must have valid input, invalid webhook configuration, or a project without any buttons configured.

Oriented imagery

You can configure QuickCapture to automatically capture photo metadata that enables the use of Oriented Imagery in ArcGIS. Enabling a QuickCapture project with oriented imagery allows you to better manage and visualize your nonoblique imagery. Enabling oriented imagery on a project does not result in a change in the mobile user experience but does provide ArcGIS users with the following capabilities:

  • Select a location or asset and see which photos cover it.
  • Select a photo and see its footprint.
  • See a correlation between ground features (on the map) and image features.

To enable oriented imagery in the designer, you need a QuickCapture project that is configured to take photos. Follow these steps to enable oriented imagery:

  1. Click the Manage project layers menu item Manage project layers.
  2. Select the menu for the point feature layer that the photos will be submitted to, and click Enable oriented imagery.

    QuickCapture saves your project and adds fields to the selected feature layer and automatically maps device variables to these fields in your project. These fields store metadata such as horizontal and vertical field of view, camera heading, pitch, and roll.

    Enabling oriented imagery creates a feature layer view with read access for users to explore oriented imagery. It also creates an oriented imagery catalog (OIC) item that contains information including a reference to the feature layer view and a range of settings and default values. It is both of these items that clients such as Experience Builder, ArcGIS Pro, and custom web apps consume to work with the oriented imagery.

  3. Configure each button that will collect oriented images to capture at most one photo, and ensure Use photo location for captured record is enabled.

    Oriented imagery capabilities are not fully supported for buttons that capture multiple photos. Device variables such as camera heading, pitch, roll, and photo longitude and latitude will only be calculated and stored to fields by the QuickCapture app from the first capture photo.

  4. Click Save.

When oriented imagery is enabled, the mobile app calculates the camera heading, roll, and pitch at the time of capturing each photo.

To visualize and exploit the photos with the Oriented Imagery app, click the Manage project layers menu item Manage project layers, open the menu for the layer and click View oriented imagery.

Note:

To share captured photos with others in Experience Builder, ArcGIS Pro, or the Oriented Imagery app, the OIC item and the referenced feature layer view must be shared.

When using hosted feature layers in ArcGIS Enterprise, you must manually add the OIC from your portal to visualize and use the photos. In the Oriented Imagery app, specify your portal URL and sign-in details. Once you're signed in, select the target OIC and add it to the app.

Oriented imagery with nonhosted feature layers in ArcGIS Enterprise

When using hosted feature layers in ArcGIS Enterprise, the oriented imagery experience is the same as for ArcGIS Online, as described above.

When using nonhosted feature layers in ArcGIS Enterprise, a feature layer view will not be created, and the required fields are not automatically added to your feature layer when you enable oriented imagery in a QuickCapture project. The following fields must be manually added to the nonhosted feature layer. If these field names are used, variables will automatically be mapped in the project when oriented imagery is enabled.

Field nameDisplay nameType

camheading

Camera Heading (True North)

Double

campitch

Camera Pitch

Double

camroll

Camera Roll

Double

hfov

HFOV

Double

vfov

VFOV

Double

fardist

Far Distance

Double

neardist

Near Distance

Double

avghtag

Camera Height Above Ground

Double

acquisitiondate

Acquisition Date

Date

Note:
The nonhosted feature layer requires support of the Query Attachments operation. Nonhosted feature layers published from ArcGIS Desktop do not support this operation. Support for nonhosted feature services published from ArcGIS Pro was added at 10.7.1.

Location sharing

Location sharing is an organization-wide capability that allows you to record where mobile workers are and where they have been. When you enable location sharing, licensed users in your organization can use the QuickCapture mobile app to upload their locations to the location sharing layer. The tracks are secure in the location sharing layer—mobile workers only see their own tracks, and additional permissions are required to view the tracks of others. Once location sharing is enabled, administrators can use the Track Viewer web app to share the last known location and track data with other users in the organization by creating track views.

To learn more about enabling location sharing in your organization, see Enable location sharing in ArcGIS Online and Enable location sharing in ArcGIS Enterprise, or see the Deploy a Location Sharing Solution with QuickCapture implementation guide.

To enable location sharing in your project, choose the Location sharing menu item location sharing. When you enable location sharing, you can choose the following:

  • Required—When tracking is required, mobile workers cannot disable tracking.
  • Last known location update interval—The interval of the single location that represents the last known location reported by the mobile app. You can choose 1 minute, 15 minutes, or 1 hour. The default is 1 minute.
  • Last known location category—The value that will be written to the category field of the last known location layer. It can be the project name, a fixed value, or a project user input. The default is the project name.
  • Tracks upload interval—The interval at which locations are uploaded to the track layer. The default is off (disabled). When off, only the last known location will be uploaded. To enable track upload, set this interval to 10 minutes.
  • Tracks category—The value that will be written to the category field of the tracks layer. It can be the project name, a fixed value, or a project user input. The default is the project name.

To learn more, see FAQ for project authors and FAQ for mobile workers.

Arcade expressions

ArcGIS Arcade can be used to calculate fields in records captured with QuickCapture. A project author can write an expression that uses Arcade functions, operators, input values from other fields in the target layer, or values from other layers in the QuickCapture project web map. The following are example use cases that can be constructed as an Arcade expression:

  • Calculate a value from values coming from another field
  • Do a point in polygon query to return an attribute value
  • Use a function to calculate the time duration of a captured polyline

The QuickCapture designer includes an expression builder to help authors write expressions and uses the QuickCapture profile. Similar to how user inputs are defined once and usable in more than one button, once an Arcade expression is saved in the designer, it can be assigned to more than one button.

Arcade expressions can be configured by the project author on the Data tab for each field. To assign an Arcade expression to a capture field of a button, on the Data tab, from the drop-down menu of the capture field, choose Arcade expression and select Create new.

Choose an Arcade expression or create new

Fields that are managed by ArcGIS, such as OBJECTID, GlobalID, CreationDate, Creator, EditDate, and Editor, should not be used in an expression because their values are not known until after a record is submitted. If an expression requires a value for a username or record capture date, the expression should reference a field that has been populated with a device variable.

Note:

Records captured when the device is offline that contain Arcade expressions will only be processed when the device is next online, and only then will they be sent.