Calculations & Data sources

Data Sources

Last Updated: Oct 06, 2016 04:15PM PDT

A Data Source in GoFormz is like a simplified database table. The rows of a data source are called records, and the columns are called fields. Data Sources can be referenced by form fields to provide a powerful way to simplify data capture and increase accuracy.

Use Cases

There are two primary use cases for data sources in GoFormz:

  1. Auto-populating fields. GoFormz can use a data source to auto-populate fields in a form. For example, your form might have fields for customer name, address, and phone number. You may want the address and phone number to fill automatically when a user selects the customer name. You can do this with a data source.
  2. Option filtering. GoFormz can use a data source to present options to a user based on the value of another field. For example, your form might have fields for the make and model of a car. Then you will likely want the model options presented to the user to depend on the make that they selected -- so if they select Ford, they only see Ford models; if they select Toyota, they only see Toyota models; etc. You can set up this kind of logic using a data source.

See here for examples of how to set up a form template to take advantage of these use cases.

Structure & Concepts

Data source structure is simple. Each data source is a table, where the rows are called records, and the columns are called fields. The records typically represent some object or entity (e.g. a customer), and the fields provide information about that entity (e.g. customer name, address, phone number).
There are two important concepts to understand when dealing with data sources -- key fields and indexing.

Key Fields

Each data source must have a key field, and the key field must be unique -- i.e. no two records can have the same key field. This requirement is necessary for the first use case described above -- auto-populating fields.
Let’s go back to our first example -- a data source containing fields for customer name, phone number, and address. In this example, customer name is our key field, because that’s the field that we want to use to auto-populate the phone number and address. But in order to do this, there can only be a single record for each customer name. If the same customer name is found in multiple records, then GoFormz would have no way of knowing which record’s address and phone number should be used!


Indexing a data source on a particular column/field lets you use that column for data retrieval. In practical terms, it enables the second use case described above -- option filtering.
Let’s go back to our second example -- a data source containing fields for car makes and models. The goal is to use these fields in a form in the following way:

  • A “Car Make” form field that displays all unique makes from the data source as options for the user.
  • A “Car Model” form field that displays the appropriate models from the data source based on the make selected by the user.

Indexing the data source on both the make and model columns enables this.

Common Tasks

Use the links below for more information on:
seconds ago
a minute ago
minutes ago
an hour ago
hours ago
a day ago
days ago
Invalid characters found