Creating a new app

Creating a new data collection app to use forms in the field. (Basic)

Cory MacVie avatar
Written by Cory MacVie
Updated over a week ago

Before diving in the process to create a new app in Fulcrum, it is important that we get down the basics.

What is an App?

In Fulcrum, the Apps refer to dynamic and customizable groups of attributes composed of different data types - text, numbers, dates, pick-lists, photos, settings, and more. 

Basically, an App is the form used on the mobile device to fill out record attributes along with all the other rules and settings you configure. They also act as databases to hold your collected data.

Apps are always created on the Fulcrum web app, as the mobile device is only used for collecting data.

There are two ways to create an app: selecting an app from the app gallery or creating one from scratch.

Let's review them!

Adding an App From the App Gallery. 

Fulcrum has a number of app templates that can be used to collect data. You can use any of the templates and modify them to your needs, or go with an existing one as is right from the start. Keep in mind that many of the templates have pre-defined choice lists and custom classification sets.

Step 1

From the homepage, click “+ New App” button in the upper right of the screen. This will take you to the App Designer page.

Here is where you can select a pre-defined app by clicking the “Choose a template from the App Gallery” hyperlinked text at the top of the screen.

Step 2

Browse through the categories or use the search box to find a specific app. For this example, we'll use the “ATM Survey App” app from the Banking Apps category. 

  • You can locate the app by either going into the Banking Apps category or using the search box. Once you are on the ATM Survey app page, click "Add This App to {your plan name}."

The app will automatically be imported into your plan and you will be taken back app designer page for the app. 

  • Feel free to make any edits you wish to the app, like adding or removing fields, so that it will better meet your needs. 

  • Once you are done, click the "Save App" button to save your app. Once you do, you will be redirected to the app's dashboard page.

Creating an App from Scratch

This tends to be the most popular option among users, as building out your own app allows you to meet your exact needs and requirements. While the apps in our app gallery can be modified as needed, they are simple and generic by design. Users often find that it is worth it to build their own apps from the ground up.

Let’s build an app together!

Step 1

  • From the homepage, click “+ New App” button in the upper right of the screen. This will take you to the App Designer page. You like we did in the Step 1 of Adding an App From the App Gallery.

Step 2

This will take you to the App Designer page. Here is where you will be adding fields and other details to create your App. But before diving in, let's review the App Designer in detail.

App Designer

The App Designer is broken up into three main parts. Starting from the left side, you have the Fields section, in the middle is the Layout section, and finally the Settings section on the right side. The various field types within the Fields section can either be clicked on or click-and-dragged to be added to the section.

Below are some additional details on the contents of the three sections of the App Designer. Be sure to follow the hyperlinks to be taken to more specific pages.

Field Types 

The fields within Fulcrum are broken into groups to help you find the field that best meets your needs quicker.

The first group are basic field types. This group consists of:

  • Text - A generic field that will accept any character type. 

  • Numeric - Accepts numbers, positive and negative. Integers or decimals.

  • Yes/No - Can display up to 3 buttons for the user to make a selection.

  • Date - Capture a formatted date, leverages platform's calendar picker.

  • Time - Capture a formatted time, leverages platform's calendar picker.

The Next group are the Choice fields. This group consists of:

  • Single Choice - Select a single choice from a choice list. Option to allow users to manually enter in a selection. 

  • Multiple Choice - Select multiple choices from a choice list. Option to allow users to manually enter in a selection. 

  • Classification - A hierarchy list that drills-down into deep choices until the path has been completed. Only one path can be capture. Option to allow users to manually enter in a selection.

The Design fields are used to assist with your apps layout and give direction to the data collector. This group consists of:

  • Section  - Nest fields within sections to help break up your app into logical groups. Section's contents can either be displayed inline or drill-down into their own page.

  • Repeatable Section - Creates a sub-app or child app that can capture child records that are associated with the overall parent record.

  • Label -  Designed to give the data collector information they may need when capturing a record.

The Media fields are used to capture media that is associated with the record being created. This group consists of:

  • Signature - Captures a signature directly on the mobile app by signing with a finger or stylus. 

  • Photo - Captured photos, which the data collector can add markups to if needed.

  • Video - Capture video and GPS track while the video is being captured. 

  • Audio - Capture audio and GPS track while the audio is being recorded. 

The Advanced fields are unique fields that can capture addresses, provide links to external resources, produce results from functions, capture barcodes and link records between apps. This group consists of: 

  • Address - A formatted field type designed to capture the street address. Can automatically capture the address associated with the record's location on the mobile apps. 

  • Hyperlink - Designed to provide the user with a link to an external resource.

  • Calculation - A powerful field that returns results based on code entered into the field. Can be used for mathematical or more complex functions/expressions. Leveraged JavaScript. 

  • Barcode - Scan a barcode or QR code leveraging the device's camera. Also allows for manual entry. 

  • Record Link - Designed around lookup table functionality. Link records contained in another app and have data automatically populate into fields in the record the data collector is correctly working in.


To add fields to your app you will either want to click on the field from within the fields section or drag and drop the field into the layout area. Fields can be nested within the section and repeatable section field type.

How to add fields to the layout and organize them by dragging and dropping them in place.


The settings section along the right side is where you can give your app a name and description. Set the app to be available on the mobile devices through the app status option. Set the field(s) to be used as the record's title. Setup custom status options to dynamically control the color of the record's pin through the status field. Disable location capture or make location information required through the location settings option. Programmatically do actions based on defined event triggers with the data event field.


Step 3

Now, let's start by filling out the general details about our app in the Settings menu. We will be making a general ATM survey app, similar to the one in the App Gallery.

To do so, under Settings, we'll start by adding some of the basic information:

  • Name the app “ATM Survey” and enter a brief description.

  • We will keep the app status as “active” which means it will be visible on the mobile device.

  • Skip the Record Title, this can only be set once a field has been added to your app. 

The status field and data events features are not covered in this tutorial. To learn more about these features please visit the status field and data events help pages.

Step 4

We will begin by adding three section fields to the app and then adding their corresponding labels. Sections field types allow you to modify the layout of your app and can help with the app flow by allowing you to logically group fields together. This can help with adding more advanced features such as using conditional logic.

Adding the Sections 

Start the app by dragging three Section fields to the layout area. Be careful not to nest a section inside one of the other sections.

Adding Labels 

When you first drag & drop a Section (or any field), it will automatically display a popup window where you can add details to your fields, this popup is called field options. Things like setting the Label, Description, Data Name, among other options depending on the field type

To open the field options, simply click on the field you wish to see the options for.

Open each section's field options popup and click the label field. For our ATM Survey example, the first section will be named “Basic Information”, the second “ATM Functions”, and the third “Conditions”.

This particular field has a Display option. It allows you to change how the section will be presented on mobile devices. To see the difference between the two, lets select "Drill Down" for the "Conditions" section.

Step 5

Now we will add fields to the ‘Basic Information’ section of the app. This section will capture the general information of the app such as the operator of the ATM and information about the fees that this ATM charges.

Adding Fields 

  • For the Operator, we will use a Text field. Drag it into the 'Basic Information' section more towards the center to the app designer’s layout area to get the field to nest within it. Then type “Operator” into the label box, within the record's option popup.

  • For the Fee, since we only want to know if there is one or not, lets go with a Yes/No field, placing it below the “Operator” field in the same section. Its label should say 'Fee'.

  • Now, if there is a fee, we want to know its amount. For that, we will add a Numeric field below the “Fee” field and label it “Fee amount.”

If you have been following these steps, your app should look exactly like the one in the image below.

Conditional Logic 

What would happen if there are ATMs out there that don't charge any fees? Would it make sense for the data collector or user to see the "Fee amount" field, when there is no fee charged? Of course not. That is why we will use conditional logic to make it so that the “Fee amount” Field only shows when “yes” is selected on the “fee” yes/no field. 

To do this, we will add Visibility Rules to the Fee Amount field. Click it to open the field options and then click the Visibility Rules button at the bottom of the popup window.

This results in a new popup being displayed to create the visibility rules. While we do not have to worry about the match rules since this field is only going to contain one rule, it is important to understand the difference. Selecting the option "All" means that if you add more than 1 visibility rule, all of them have to be true in order for the visibility rule to apply. On the contrary, if "Any" is selected, the visibility rule will apply as long as one of the rules is true.

That is why for a single rule, we can use either All or Any.

  • In the -Select a form element- select the “fee” field.

  • Since we only what this field to show when the “fee” field is equal to yes we can leave the equal to in place.

  • On the -Select a value- field select “yes.”

Visibility Rules being configured to show the fee amount field only if the Fee field is set to yes.

At the bottom of the visibility logic window is a checkbox to preserve data. When enabled the system will not clear our values if the field is hidden due to logic. When it is not enabled (by default) the system treated any values that are within fields that are hidden by visibility logic as not valid and will clear the values when the record is saved.

Step 6

Now we that we have completed the first section. We can add the fields to next section. In the "ATM functions" section, we will add information about the what features the ATMs offer. For this, lets take advantage of some of the

Add Choice Field

Now on to the next section. In the “ATM Functions” section, drag in a Single Choice field. The single choice field will be used to collect data about the currency that the ATM dispenses. So label the field “Currency Dispensed.” Towards the bottom of the field settings, you will want to add the choices that are presented when collecting data. Since we will not be listing every currency available you will want to check the “allow other” check box. Below is an example of what your choice list could look like.

Adding More Yes/No Fields

Now we will add five additional Yes/No fields to the “ATM Functions” sections. This time after adding the first Yes/No field click the double-page, blue icon on the right side of the Yes/No field. This is the duplicate icon and can be used to quickly duplicate a field or a section and its contents within your app.

Duplicate records by clicking the double page icon

After you have duplicated 4 more Yes/No fields, match the labels up to the labels in the image below.

New App progress showing the newly added fields through the duplicate process

Step 7

Now we will be adding fields to the “Conditions” section. This section captures information about the general condition of the ATM.

Adding More Fields 

This section is more about the condition of the ATM, to do it, we will use a Yes/No field to see if there is damage or not and then using visibility logic display two additional fields, a Multiple Choice field, and another Yes/No field.

The labels for these fields are below:

  • Damage Present? ( Yes/No field )

  • Types of Damage ( Multiple Choice field )

  • Damage Affecting ATM? ( Yes/No field) 

Use the information that you previously learned to complete these three fields, with choice values, and visibility logic.

Your end result should look like the image below.

Step 8

Now that we have completed the app's design we can use the "Save App" button in the lower part of the Settings section to save the app. Or if you are not sure

Did this answer your question?