Data Entry Flows

Overview

Data entry flows in the NoahFace iPad App and NoahFace Go mobile App allow you to collect multiple data items (one after the other) at clock in or clock out.

They are most typically used for scenarios where you need to:

  • Allocate time across multiple dimensions (eg: customers, projects, work types, etc).
  • Collect complex attestations for compliance with employment regulations.
  • Collect multiple pieces of information to drive pay rates (eg: piecework, shift conditions, tips, etc).

You can chain together as many data items as you want to, and you can even have conditional flows so that certain data items are dependent on the answers to previous data items.

Configuration

Data entry flows are configured by specifying the name of the first data item in your flow against your Clock In or Clock Out button in your screen details. For example:

       out=Clock Out:flow:lunch

Each data item is then independently configured to specify the type of data to be collected, labels, validations, etc, as well as the name of the next data item in the flow. For example:

        lunch=yesno:Lunch Break:Did you take your lunch break?

See the following sections for details:

Textual Data

To require a worker to enter text, specify any of the following colon separated components (only the first 3 are required):

  • A type of "text".
  • The name of the data item.
  • The prompt for the data item.
  • The name of the next data item.
  • The minimum number of characters.
  • The maximum number of characters.
  • The type of keyboard (eg: numeric, email-address, etc).
  • The regular expression (ie: regex) validation.
  • The error message to be displayed if the regex validation fails.

For example:

        comments=text:Comments:Comments

Numeric Data

To require a worker to enter text, specify any of the following colon separated components (only the first 3 are required):

  • A type of "number".
  • The name of the data item.
  • The prompt for the data item.
  • The name of the next data item.
  • The minimum number of characters.
  • The maximum number of characters.

For example:

        boxes=number:Boxes:Number of Boxes Packed

Currency Data

To require a worker to enter a dollar amount, specify any of the following colon separated components (only the first 3 are required):

  • A type of "dollar".
  • The name of the data item.
  • The prompt for the data item.
  • The name of the next data item.
  • The minimum number of characters.
  • The maximum number of characters.
  • Whether cents are allowed (true or false).

For example:

        tips=dollar:Tips:Cash Tips Received

Pick Lists

To require a worker to select from a list, specify any of the following colon separated components (only the first 3 are required):

  • A type of "list".
  • The name of the data item.
  • The list of options. This can be either a global list (eg: $1) or a semi-colon separated list of strings.
  • The name of the next data item.
  • The default value for the data item.
  • The type of keyboard for the search bar (eg: numeric, email-address, etc).

A search bar will be displayed automatically if the list has many values (you can disable this by specifying a keyboard type of "none").

If you want the next data item to be determined dynamically, based on the item selected from the list, use a data type of "case" instead of "list" (the specified next data item will be treated as the default).

For example:

        trucktype=list:Truck Type:Single;B Double;A Double

Hierarchical Data

To require a worker to select from hierarchical data (eg: a cost center tree), specify a series of items (one for each level in the hierarchy you want them to navigate) each defining the following colon separated components (only the first 3 are required):

  • A type of "tree".
  • The name of the data item.
  • The global list containing the hierarchical data (eg: $1).
  • The branch in the tree to display (the top of the hierarchy is displayed by default). The following are special branch names:
    • #SITE. Display the branch that corresponds to the current site name.
    • #TYPE. Display the branch that corresponds to the user's type.
    • #TEAM. Display the branch that corresponds to the user's team.
    • #DATA1 / #DATA2 / #DATA3. Display the branch that corresponds to the 1st, 2nd, and 3rd data items respectively.
  • The name of the next data item (the default is "tick").
  • The name of the next data item if the specified branch is empty (the default is "cross").
  • The default value for the data item.
  • The type of keyboard for the search bar (eg: numeric, email-address, etc).
  • Whether next/done should be automatic when an option is selected (eg: true/false).

A search bar will be displayed automatically if the list has many values (you can disable this by specifying a keyboard type of "none").

Example 1: If your tree contains a list of sites at the top level and a list of applicable work types under each site:

        worktype=tree:Work Type:$1:#SITE

Example 2: If your tree contains a list of projects at the top level and a list of applicable work types under each project:

        project=tree:Project:$1::worktype:tick:::true,

        worktype=tree:Work Type:$1:#DATA1

Hierarchical data items are only supported in the iPad App and require version 25.11 or later of the NoahFace iPad App.

Yes/No Questions

To require a worker to answer a 2-option question, specify any of the following colon separated components (only the first 3 are required):

  • A type of "yesno".
  • The name of the data item.
  • The question to ask.
  • The name of the next data item if the green option is selected.
  • The name of the next data item if the red option is selected.
  • The button label for the green option (the default is "Yes").
  • The button label for the red option (the default is "No").
  • The data value if the green option is selected.
  • The data value if the red option is selected.

Yes/No data items enable conditional flows.

For example:

        restbreaks=yesno:Rest Breaks:Did you take your rest breaks today?

Messages

To display messages, specify the following colon separated components (only the first 3 are required):

  • A type of "msg".
  • The name of the data item.
  • The message text.
  • The name of the next data item.

For example:

        instructions=msg:Instructions:To work at this site you must complete a short survey.

Team and Type Specific Data

To require different data entry for different users, you can include "#TEAM" (the team the user belongs to) or "#TYPE" (the user type) in your data item names.

For example:

        in=Start Work:flow:#TEAM,

        Service=list:Area:Telephone Support;Font Desk;Other,

        Warehouse=list:Area:Forklift;Cleaning;Orders;Other

Team and Type specific data items are only supported in the iPad App and require version 25.9 or later of the NoahFace iPad App.

Validations

To validate the data that has been entered, and display a message when it is invalid, specify any of the following colon separated components (only the first 5 are required):

  • A type of "validate".
  • The name of the validation.
  • The message text displayed when the data is invalid.
  • The data to validate (eg: #DATA1 is the first data item collected).
  • The global list (eg: $1) or regular expression (ie: regex) to validate the data against.
  • The name of the next data item if the data is valid.
  • The next data item if the data is invalid. You can either:
    • Specify the number of steps to go back in the flow (eg: "2" to go back two steps).
    • Specify the name of the next step to go to (eg: "cross" to terminate the flow).
    • Omit this, in which case it will go back one step.

Validation steps are only supported in the iPad App.

For example:

        check=validate:Invalid Project:The project number you entered is not valid.:#DATA1:$3

Terminating your Flow

A data entry flow ends if you do not specify the name of the next data item.

Alternatively, you can immediately terminate the flow by specifying a next data item of either:

  • tick. This will record a clock in or clock out event as appropriate.
  • cross. This will record an access denied event.

Examples

Simple Example

For a simple example, let's assume that at the end of each shift you required workers to:

  • Enter the number of boxes they packed during their shift,
  • Confirm whether or not they took their rest breaks, and
  • If they indicated they did not take their rest breaks, then select the reason from a list of valid reasons.

To support this, you might use the following screen configuration:

In the NoahFace Go Mobile App, this would look as follows (if you indicated you did not take your breaks):

California Break Attestations

If you wanted workers to attest to the fact that they took their required breaks (and asked for a reason if they didn't), you might use the following screen configuration:

In the NoahFace Go mobile App, this would look as follows (if you indicated you did not take your rest breaks):

Cookie Preferences
Privacy
Legal
Terms of Use
Contact Us
© NoahFace 2018
.