The Fulcrum platform

Fulcrum is a cloud-based mobile data collection platform, designed to simplify the process of managing geographic data from the field. The platform consists of web-based form building, user management, and quality control tools, along with native mobile clients for fieldwork.

The demand for fresh, actionable data is skyrocketing across all industries and disciplines. In this Age of Information, data is an increasingly valuable form of currency. Virtually every project requires (or would benefit from) some type of data collection. Engineers, scientists, conservationists, and archaeologists all apply their specific skill sets to tackle a specific problem in a particular geographic area. From inspecting bridges and utility poles to surveying sea turtle nesting sites and recording landmine clearing activities, accurate data provides the foundation for sound decision making.


The data collection process

Beyond simply providing tools and services for collecting data, the Fulcrum platform encourages a proactive approach to the data collection process. The act of sitting down and building your app forces you to think through the design of the data structure. This important task is often overlooked when you head out into the field with just a clipboard and camera.

Engineers and scientists are tasked with solving problems and as consultants, often their only deliverable to the client is a report based on their findings. This report should be based on data that is clearly documented and can be independently reviewed. Fulcrum provides the tools that let professionals focus on their work without having to worry about IT hurdles.


The complete data cycle

Design & Build:
Fulcrum enables you to build well-structured, highly customized data collection forms in a matter of minutes, directly from your web browser. Our drag-and-drop app designer lets you visually select from dozens of common form components, including text, numeric, timestamps, choice lists, geotagged photos, spatial video/audio, signatures, hyperlinks, barcodes, calculations and more.

Field data collection requires a delicate balance of efficiency and integrity. Field technicians need to be able to capture a complete record of high-quality information as quickly as possible while on site. Well-designed forms reduce quality control issues and the need for back-office work.

To support this, every form field has conditional visibility and requirement logic settings. Any field can be marked as required, hidden, or read-only, and most support defaulting to the previously chosen value. Existing records can also easily be duplicated for additional productivity gains.

Highly advanced workflow customization can be scripted via Fulcrum Data Events, customizable actions​ that can be performed when certain ​events​ are triggered. Actions include custom alerts and validation messages, setting field values, choices, labels, descriptions, requirement & visibility settings, HTTP requests and more. Some examples of event triggers would be record loading, editing, validating, saving, or value changing.

Deploy:
Once your forms have been built, they can easily be deployed to your field teams and work can be assigned to individual technicians or grouped into projects. Members can be added to the organization, assigned to a customizable role, and given access to specific forms, projects, and map layers.

Field technicians simply need to install the free Fulcrum app for Android or iOS via the App Store or Google Play and log in with their account credentials. Upon initial login, all the necessary forms, records, and associated assets will be synced down to their mobile device. Any changes made to forms will be automatically pushed down to the field devices upon their next sync.

Collect:
New records can be created and existing records can be modified in the field regardless of network connectivity. All data is stored locally on the device and can be synced to the Fulcrum server once there is a network connection. Syncing the device pushes any new records into the central database and pulls down any existing records or changes to the form schemas.

Fulcrum’s Android & iOS mobile apps are true native apps, which makes them intuitive for users and incredibly stable, even with hundreds of thousands of records and associated photos. Built on the Google Maps SDK, Fulcrum particularly excels at geodata collection and management. Everything collected with Fulcrum can be automatically geotagged with GPS coordinates, allowing you to see all of your work on a map as it's happening. From incorporating your own custom maps, to reverse geocoding to determine an address and getting real-time driving directions, Fulcrum fully leverages the value of location.

Report:
Stakeholders get a bird’s-eye view of what’s happening in the field via Fulcrum’s visualization, quality assurance, and data management tools. Built-in activity streams allow you to monitor productivity, see who is active in the field, and how your crews are progressing. Every record is versioned in the Fulcrum database, with simple but powerful tools for tracking changes and ensuring accountability.

Reports can be generated from the field or the office and emailed to stakeholders in real-time, or data can be exported in a variety of industry-standard formats for analysis in GIS, Spreadsheet, or Business Intelligence software.

Extend:
Fulcrum was designed to be extensible and developer-friendly, allowing you to integrate your own database systems, set up custom notifications, and build custom integrations using our REST API.

  • Data Shares provide an easy way to publish real-time data feeds in standard CSV, KML, or GeoJSON formats, for sharing raw data or integrating with other Business Intelligence, GIS, or Asset Management systems.
  • Webhooks can provide push notifications so Fulcrum can notify your systems whenever anything happens in your organization.
  • REST API endpoints can be used for querying, creating, updating, and deleting objects.
  • Fulcrum Desktop Sync can be configured to intelligently sync Fulcrum organization data to your own on-site or cloud-hosted database.

Administration

Fulcrum was designed specifically for collaborative data collection. Managing users, apps, and records can all be accomplished via the Fulcrum web-based admin tools.

Plans:
Our pricing model is designed to be simple, predictable, affordable, and scalable. You can choose from three different plans, which increase in features, functionality, and media storage. Each plan has a fixed price per-user per-month, so you can easily calculate your cost, based on the functionality you need and the number of users you will have. Our self-service billing portal allows you to easily scale up or down as needed, or cancel at any time — and take your data with you.

Members:
A named user is a “member” in Fulcrum. Each member must have a unique email to identify that user within the system. User accounts should not be shared with multiple individuals as every record is tagged with the user who created/updated it for accountability and auditing purposes. Each user can have up to two devices associated with their account, but should only ever be actively collecting data with one device at a time. Sharing accounts across multiple devices to skirt licensing costs is a violation of the Terms of Service and could result in termination of your account.

Organizations:
An “organization” is a collection of members within a plan. The features available for the chosen plan are available to all the members within that organization. You cannot have different members with different plan levels in the same organization, however, users can be members of multiple Fulcrum organizations. A user who is a member of multiple organizations will be billed at the organization level. Every organization must have at least one owner and billing email for invoices.

Billing:
Fulcrum is a self-serving Software as a Service (SaaS) product. Billing is automatically handled with a monthly deduction from the credit card on file. Additional members will be charged a prorated amount the first month they are added.

  • If you’d like to prepay for your Fulcrum usage versus receiving a charge to your credit card each month for your subscription, you can purchase account credits at any time. When you purchase credits up front, each monthly usage charge will be deducted from the credit amount rather than creating new charges for each account activity. Credits allow you to purchase Fulcrum on your own payment schedule, such as quarterly or annually, based on how your purchasing manager prefers to buy.
  • If you are on a “Professional” plan with at least 10 full-time members, or any plan with more than 40 members, you may request a custom payment plan (check, ACH / wire transfer).

Roles:
Member permissions are defined by “Roles.” There are three standard system-level roles included in every Fulcrum organization:

  • Owner: Has access to everything, and the ability to modify the organization settings, subscription information, and create other custom roles.
  • Manager: Has access to the apps that they are given permission to by the owner or another manager. Managers can also grant permission to apps and projects that they have been given access to. Managers can view all records — even if the records are assigned to other members — using the record assignment functionality.
  • Standard User: The default user role. The main responsibility of a standard user is to collect data on the mobile device. Standard users will only have access to apps assigned to them by managers and account owners. If record assignment is being used, standard members will only be able to see records that are assigned to them or are not assigned to any member.

Custom Roles can be defined to configure the specific functionality you need for your account’s users. Role permissions apply to any client used for accessing the system, including web, mobile, and the API.

Settings:
Users can manage their settings by clicking on the gear icon next to the user name in the upper right-hand corner of the screen and selecting “Settings.” The user’s role will determine the settings they can access:

  • Profile: update user profile, choose an avatar, change password (all roles)
  • Organization Profile: update organization profile, choose an avatar (owner role)
  • Billing: change plan type, update credit card info and invoice emails, upgrade storage, cancel subscription (owner role)
  • Members: add or remove members, edit their role, add/revoke permissions to apps, projects, layers (owner, manager, or custom role)
  • Roles: manage system roles and custom roles (owner or custom role)
  • API: create or revoke tokens to access the Fulcrum API (all roles, depending on plan)
  • Webhooks: create, manage, or delete webhooks (owner role, depending on plan)

Apps / Forms

Every Fulcrum organization consists of a collection of apps (or forms). Apps can be created from scratch or added from our comprehensive gallery of existing app templates and modified. The app gallery includes hundreds of ready-made form templates from a variety of industries, and we encourage users to submit their own apps to share with other Fulcrum users.

The Fulcrum App Builder:
The drag-and-drop app builder is comprised of three columns:

  • Add Fields: The field type components available for your plan are grouped into categories. You can get more information on each individual component by hovering over the “i” (info) icon. To add a field to your app, click and hold on the field type component, drag it over to the app canvas, and release the mouse where you want it to be placed. Once placed, the field settings will open for you to complete.
  • Field Settings: This is the app canvas where you drag field components. You can rearrange fields by clicking, holding, and dragging the component around the canvas. Rearranging fields is not destructive, but deleting a field will destroy any data associated with that field. You can change field labels, descriptions, defaults, data names, requirement and visibility settings without harming any existing data. Field types cannot be changed. Every field requires a Label and Data Name. Different field types have different settings options, but all fields have the following common settings:
    • Label: Label of the field when collecting data (required)
    • Description: Additional descriptive information about the field. Accessed by tapping the “i” info button on mobile. (optional)
    • Default Value: Default value to prefill the input. Can improve efficiency but all may encourage skipping over field completely. (optional)
    • Data Name: Database-friendly property name, used as the column name for exports and data shares (required). Note: shapefile exports may trim data name.
    • Required Field: Is an input required in order to submit the record?
    • Hidden: Hidden fields can store imported data without being visible to users.
    • Read-only Field?: Read-only fields are visible but cannot be modified by users.
    • Default to previous value?: Use the input from the last record as the default value.
  • App Settings: This is where you assign the basic settings for the app.

Standard App Settings:

  • Name: Every app requires a name. This should be short but descriptive so users can quickly navigate to it from the app picker.
  • Description: Optional descriptive text to display below the app name.
  • App Status: Inactive apps are not accessible from the mobile device and are used for archiving purposes.
  • Record Title: The field(s) used to determine the record title. Can be a single field or concatenation of multiple fields. Title is displayed in the record list view and marker popup. Note: changing the title configuration after data has been collected requires clearing the mobile cache.
  • Status Field: The status field is a special field used for color coding and data filtering.
  • Location Settings: Set whether location geotagging is enabled / required for records.
  • Data Events: Data events allow users to script ​actions​ when certain ​events​ are triggered.

Advanced App Settings:
(https://web.fulcrumapp.com/apps/{app-id}#settings)

  • Icon: Optional app icon to display next to the app name. Can be used for branding.
  • Projects Enabled: Allow users to tag records with projects that they have access to.
  • Assignment Enabled: Allow records to be assigned to individual users.
  • Auto Assign Records: Assign records to the user that creates them.
  • Hidden on Dashboard: Make reference apps hidden but still active for use with record linking.

Field Types and Settings:

  • Basic Fields:
    • Text: General free text entry. Launches the standard alphanumeric keyboard on mobile. Additional settings include: min/max length and regular expression pattern validation.
    • Numeric: For entering numbers. Launches the numeric keyboard on mobile. Additional settings include: integer or decimal, numeric min/max validation.
    • Yes/No: For simple yes/no questions. Additional settings include: optional 3rd N/A value, label / value inputs.
    • Date: Formatted date entry. Launches the native calendar picker on mobile. Format for import is YYYY-MM-DD
    • Time: Formatted time entry. Launches the native time picker on mobile. Format for import is hh:mm
  • Choice Fields:
    • Single Choice: Choice list which supports only one selection. Choices can be specified inline or referenced from a predefined choice list. Additional options include: Allowing “Other” to allow user to enter item if not in choice list.
    • Multiple Choice: Choice list which supports multiple selections. Choices can be specified inline or referenced from a predefined choice list. Additional options include: Allowing “Other” to allow user to enter item if not in choice list.
    • Classification Field: Similar to single choice field, but can have nested choices to give a logical grouping or hierarchy to the choices. Additional options include: Allowing “Other” to allow user to enter item if not in choice list.
  • Design Fields:
    • Section: Use sections to group fields together to better organize your form for presentation to the user. Also includes Display options: Inline display simply provides a group heading while drill-down display makes the section display in a separate page.
    • Repeatable: Create multiple one-to-many relations. Additional options include: Title, Location Enabled, Location Required, min/max count. Repeatables must have at least one field within.
    • Label: Simple fields for displaying text on the form.
  • Media Fields:
    • Signature: Capture electronic signatures to attach to the record. Additional options include: Agreement Text.
    • Photos: Associate photos with this field by launching the camera or selecting from the camera roll. Additional options include: min/max Photos.
    • Videos: Associate videos with this field by launching the camera or selecting from the camera roll. Additional options include: Audio enabled?, GPS Track enabled?, min/max Videos. Enabling the GPS track allows for spatial video playback with synced map.
    • Audio: Associate audio recordings with this field by launching the microphone or selecting from the camera roll. Additional options include: GPS Track enabled?, min/max Audio Files. Enabling the GPS track allows for spatial audio playback with synced map.
  • Advanced Fields:
    • Address: Store a single street address. Can autopopulate on mobile devices by reverse geocoding the record’s location coordinates to determine nearest address. Additional options include: Autopopulate?
    • Hyperlink: Embed a link to a URL. Can also be used as an action button with data events. Additional options include: Default URL.
    • Calculation: Define dynamic expressions and perform calculations using values from other fields and JavaScript. Additional options include: Expression, Display Format.
    • Barcode: Scan a barcode and store the text value.
    • Record Link: Select or create records from other apps you have access to. Additional options include: Linked App, Allow Selection of Existing Records, Allow Creation of New Records, Allow Updating of Existing Records, Allow Multiple Records, Selection Filters, Autopopulate Fields.

App Preview:
You can preview your app as you are building it by clicking the yellow “Preview App” button. This will preview the app in its current draft state, so you can confirm it is functioning properly before saving any changes. This is particularly helpful for testing and debugging data events.

Saving Your App:
When you build or edit an app, you are working on a local draft of the app schema. These edits are not available for other users until you click either the “Save and Continue” or “Save and Exit” button. Once saved, users need to sync their mobile device or refresh their web browser if they are on the app builder page in order to pull down the changes. Multiple users should not edit the same app in different browsers at the same time, as subsequent saves will overwrite the entire app schema, potentially overwriting any unsaved changes.

Managing Additional Resources:
The “Setup” button on the main Fulcrum dashboard screen is used to manage additional Fulcrum resources, including:

  • Projects: Projects are used to separate data into different groups. Once projects have been created and permissions granted to members, members can tag a record with one of the created projects. Records can be filtered by projects and only members with permissions to a project can access records tagged with that particular project.
  • Choice Lists: Choice lists can be defined directly within a field, or predefined for use across multiple apps. Predefined choice lists can be created manually or from an imported CSV file. Choice options have Label (what the user sees) and Value (value stored in the database/export) settings.
  • Classification Sets: Classification sets are similar to single choice fields, but can have nested choices to give a logical grouping or hierarchy to the choices. These cannot be defined directly within the field and must be predefined here. Predefined classification sets can be created manually or from an imported CSV file.
  • Layers: Map layers are external map resources, which can be added to the Fulcrum map view. While Fulcrum supports several different layer formats, only the MBTiles and Tile XYZ formats are supported on both the mobile and web platforms.

Changes to these Fulcrum resources require a sync to be pulled down to the mobile clients. Be careful making changes to choice lists, classification sets, and projects which are used in existing apps. If you change or remove an option from one of these resources which are referenced by existing records, the data may not display properly.


Managing Data

Data is the core component of any Fulcrum implementation. Whether you are importing existing data for field verification or collecting new records, Fulcrum makes it easy to get your data both into and back out of the system. The platform also provides a variety of integration points for working with your data outside of Fulcrum.

System Metadata Columns:
Every Fulcrum record includes several standard system-level metadata columns. These attributes support internal processes and are automatically updated by the system as needed.

  • Record ID (_record_id): Unique ID for the record. This field is used to maintain a globally unique reference to that record.
  • Child Record ID (_child_record_id): Only available on downloaded files that contain child records. Globally unique ID for the child record.
  • Fulcrum Parent ID (_parent_id): Only available on downloaded files that contain child records. The parent ID column contains the Fulcrum ID of the parent record that the record is associated with in Fulcrum. It can be used in a database system or GIS to create relationship links or table joins. When you import data back into Fulcrum this field is used to link the child records to their parent record. If you have multiple repeatable sections nested together, the _record_id column will always show the root record ID at the top level.
  • Title (_title): The record title. Can be a single field or concatenation of multiple fields.
  • Version (_version): The current version of the record. The version number increments each time a record is modified. Review all versions of data using the record history view.
  • Server Created At (_server_created_at) / Server Updated At (_server_updated_at): These fields indicate when the record was created or updated on the Fulcrum server. The difference between Created / Updated At and Server Created / Updated At is due to delays between capturing the record on the device and syncing it with the server.
  • Created At (_created_at) / Updated At (_updated_at): These fields show timestamps for when the record was initially created, and most recently updated. They are only editable by updating existing records using the importer or API.
  • Created By (_created_by) / Updated By (_updated_by): These fields show which user created or last updated the record.

Importing Data:
Existing data can be imported into Fulcrum via the Import Wizard or programmatically via the REST API. The import wizard can be used both to import new records and to update existing records. The Import Wizard supports the shapefile and CSV data formats. Multiple files should be zipped into a .zip file archive before importing into Fulcrum.

When updating existing data via the Import Wizard, your import file must include the _record_id column with the system IDs for the records. Only include the records and columns you want to update.

  • Geometry: Fulcrum currently only supports point geometries.
    • Shapefiles with line or polygon geometries will have their centroid point imported as the record location.
    • The Import Wizard supports most common projections, and will automatically reproject coordinates to WGS84.
    • CSV files with latitude and longitude columns will automatically be recognized as geometry columns by the Import Wizard.
  • Files: Include files for the parent record, as well as any repeatable field tables. The Import Wizard includes table and field mapping to associate your imported files with the corresponding Fulcrum tables and columns.
    • When importing data into an app with repeatable fields, you will be given the opportunity to select which files correspond to their intended destination table.
    • You can import photos in .jpg format by including them at the root of the zip file and referencing the file name in the photo column of the import table.

The best way to prepare a data import is to run a CSV export to see the structure that Fulcrum expects.

Exploring Data:
Fulcrum’s data management tools allow stakeholders to monitor progress, view, filter, query, and download data, all from a fast and intuitive web-based interface. You can visualize your data in map, table, or split-screen views, rearrange and sort columns, perform a quick full-text search, or create advanced filters based on multiple fields. The Fulcrum Editor provides some basic summary statistics and you can easily download data subsets for further analysis outside of Fulcrum.

Downloading Data:
To download data from Fulcrum, there are several options: Export Wizard, Editor Exporter, and programmatically via the REST API.

If you want to export data out of multiple apps at once or have a need to download media files, the Export Wizard is the best option. The Export Wizard allows users to export their data in a variety of formats including:

  • CSV (.csv)
  • Excel XLSX (.xlsx)
  • ESRI File Geodatabase (.gdb)
  • ESRI Shapefile (.shp)
  • SpatiaLite (.sqlite)
  • SQLite (.sqlite)
  • PostGIS (.sql)
  • KML (.kml)
  • GeoJSON (.geojson)
  • GeoPackage (.gpkg) (Editor Exporter Only)

There is also the option to apply a Date Range filter, geographic area filter, include photos, include PDFs for each record, include GPS data, include full history, and include changesets. If data has been tagged using projects, users can download data pertaining to a specific project, like a specific client’s data.

Another option to download data is using the Exporter at the top of the Editor screen. Using this option, hyper-specific filters and queries can be applied to your data on any field and the export will reflect the filter. The last way to export data is via the REST API.


Thank You

We hope that you have learned a few things about Fulcrum after reading this guide. We will continue to update it as we introduce new features and functionality.

If you found this guide helpful, feel free to share it with friends and co-workers so they too can understand the Fulcrum platform and get the best results from their data collection efforts. The biggest compliment we as a company can receive is when users like you share Fulcrum with others. From everyone at Spatial Networks, thank you for using Fulcrum, and we look forward to meeting your data collection needs well into the future!