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.
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
Variable | Compatible field type | Compatible feature type | Field 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
Variable | Compatible field type | Compatible feature type | Field 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 | - |
Variable name: email Currently signed-in user email address. | Text | Points, lines, polygons | - |
Location
Variable | Compatible field type | Compatible feature type | Field 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
Variable | Compatible field type | Compatible feature type | Field 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
Variable | Compatible field type | Compatible feature type | Field 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
Variable | Compatible field type | Compatible feature type | Field 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:
- Windows—C:\Users\<username>\ArcGIS\QuickCapture\resources\maps
- Android—Internal Storage/Android/data/com.esri.quickcapture/files/ArcGIS/QuickCapture/resources/maps
- iOS— QuickCapture/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.
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.
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:
Character | Meaning |
---|---|
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 mask | Description |
---|---|
>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 . 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:
- Click the Manage project layers menu item .
- 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.
- 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.
- 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 , 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 name | Display name | Type |
---|---|---|
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 . 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.
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.