Workflow

Workflow Quick Start Application

Overview

The workflow quick start application is designed for step-by-step instruction or data collection use case such as:

  • Inspections

  • Work instructions

  • Assembly procedures

  • Field service

  • Checklists

The app can be used in two different data source modes.

  • Application data - for demos or workflows that aren't updated often

  • Excel spreadsheets - using the provided extension

Deployment Guide

1. Download the Application Bundle

2. Import the Application Bundle

  1. Navigate to the Skylight web portal. Select Applications on the sidebar and clickin the lower right corner to add a new application.

  2. Select Import file, then choose the application bundle .zip file you downloaded.

  3. The application will now appear in the application list. Hover over the application and click Open Dashboard to configure further.

3. Add Users & Configure Application Roles

The workflow quick start application includes the following roles, which give different application permissions:

Role

Application Permissions

User

Has access to non-demo templates; demo workflow templates are hidden

Demo User

Has access to demo workflow templates; non-demo templates are hidden

Manager

Used for the Excel Workflow Synchronization tool and to view work session reports from the web client.

To add users to the application:

  1. Open the Application Dashboard, and select Permissions on the sidebar.

  2. Click the button to Add users.

  3. Type of the name(s) of the user(s) or group(s) you wish to add and choose a role, either User or Demo User. Then select ADD USERS(s) to give them access to the application.

4. Publish the Application

The application must be published in order for it to be synchronized to users' devices. To publish the application:

  1. Open the Application Dashboard.

  2. Click the publish button.

  3. A confirmation dialog will appear. Click PUBLISH to make the application available to all users.

5. Create Workflow Templates

If the user has the Demo User role, they will be able to see the demo workflow template that is included with the import application, whose data is specified in application data. The user will not be able to see non-demo workflow templates.

Otherwise if the user doesn't have the Demo User role, they will only see non-demo workflow templates.

To create your own workflow templates, there are a few options:

Option 1: Manually edit the JSON file contained in App Data

Add them to application data (the application will need to be re-published afterwards, unless the user has a role that has access to draft versions, in which case the application will simply need to be re-loaded on the client). The JSON structure for the data can be found in the JSON Structure section below.

Option 2: Use the Excel Synchronizer Tool

This is the fastest way to import work instructions before you decide to pursue a full integration with your own data source. The Excel Synchronizer Tool with enable you to upload your existing workflows, just make sure to follow the excel format contained in the spreadsheet "Workflow Template Example.xls".

This tool can be used to create both demo and non-demo workflow templates. See the section below for more information about the tool.

Option 3: Integrate directly with your data using the Skylight SDK

Use the Skylight SDK to create workflow template sessions. Along with populating the session data defined by the JSON Structure section below, these sessions also have specific fields in the session.properties object.

  • session.properties.type must be set to the string "template".

  • session.properties.demo should be set to either the string "1" to denote that this workflow template is only visible to users with the Demo User role or the string "0" to indicate that this workflow template is only visible to users without the Demo User role. If left unspecified, the workflow template will default to be a non-demo workflow template.

It is important to remember that updating the session.properties object overwrites any existing keys and values.

Excel Workflow Synchronization Tool

The tool source code can be downloaded using the link here

The tool can be downloaded using the appropriate link here:

The Excel workflow synchronization tool should be run using the credentials for a Skylight manager-level account (different from the Manager role) that is in the group that will be assigned the workflow or a Skylight administrator-level account. This user should have a Manager role within the workflow quick start application.

The sample Excel file containing examples of each type of "step" may be found below. Use this to import your first excel workflow template.

The tool synchronizes Excel spreadsheets in a folder with the workflow quick start application; creating a workflow template for each file. An example spreadsheet is included in the zipped file.

To use the tool, run the following command in Windows while in the same folder as the executable, e.g.:

.\SyncWorkflow.exe --SkylightUsername CHANGE_ME --SkylightPassword CHANGE_ME --SkylightRealm CHANGE_ME --SkylightWebUrl https://skylight.upskill.io --ApplicationName "CHANGE_ME" --SyncDir "C:\CHANGE_ME"

When using the tool to push workflow templates to users, here are descriptions for each of the parameters:

  • SkylightUsername - Username used to log into Skylight

  • SkylightPassword - Password used to log into Skylight

  • SkylightRealm - Skylight realm where the workflow quick start application is installed

  • SkylightWebUrl - URL of the Skylight service; should generally be unmodified

  • ApplicationName - Name of the imported workflow quick start application, will typically be Workflow Quick Start Application unless it has been changed since the initial import

  • SyncDir - Directory where the Excel spreadsheets are stored

When using the tool to pull down completed workflow reports, here are the descriptions for each of the reporting parameters:

  • ReportDir - Directory where Excel reports will be saved

  • FilterWorkflowName - Name of the workflow

  • FilterUsername - Username of the user that submitted the work session

  • FilterFromDate - Date in which work session was submitted from date. MM/DD/YYY

  • FilterToDate - Date in which work session was submitted to date. MM/DD/YYYY

.\SyncWorkflow.exe --SkylightUsername CHANGE_ME --SkylightPassword CHANGE_ME --SkylightRealm CHANGE_ME --SkylightWebUrl https://skylight.upskill.io --ApplicationName "CHANGE_ME" --ReportDir "CHANGE_ME" --FilterWorkflowName "CHANGE_ME" --FilterUsername CHANGE_ME --FilterFromDate MM/DD/YYYY --FilterToDate MM/DD/YYYY

JSON Structure

This is the JSON structure of a workflow as it exists in application data or the session data of a workflow template session.

The basic data model describing a workflow item and its steps:

{
"id": "theWorkflowId",
"name": "The workflow name",
"templates": [
"steps": [
]
],
"steps": [
{
"type": "choice",
"id": "theStepId",
"text": "The step instruction",
"isRequired": true,
"choices": [
{
"id": "choice1",
"text": "Yes"
},
{
"id": "choice2",
"text": "No"
}
]
}
]
}

At the root level:

  • id (string) - required: each workflow must have a unique id (unique across all workflow)

  • name (string) - required: the workflow name displayed to the user

  • templates (array of template) - optional: templates of sets of steps to use for items added using addItem steps

  • steps (array of step) - required: the steps in the workflow; see below for step object specification

  • version (string) - required: version string; used to know when to update a template

  • description (string) - optional

  • demo (boolean) - optional: if set to true, this will only be visible as a template to users with the Demo User role; defaults to false

    • this field is only for workflow templates defined in application data

    • in session data, the session.properties.demo field is used instead. As values in the session.properties object must be strings, a demo workflow template is denoted by session.properties.demo being set to the string "1" (or the string "0" if it isn't a demo workflow template)

At the step level:

  • type (string) - required (one of instruction, section, choice, captureText, capturePhoto,captureVideo, captureScan,call, submit, addItem, deleteItem, exitItem)

  • id (string) - required: each step must have a unique id (unique within the workflow)

  • label (string) - required: this will show up as the label for the step, e.g. "Step 5.4"

  • triggers (array of trigger) - optional: list of triggers that will trigger this step

  • text (string) - optional: the text associated with this step

  • steps (array of step) - optional: list of substeps

  • media (array of media) - optional: the step image(s) displayed to the user; can be used alongside text

  • see below for additional fields based on the step type

At the trigger level:

  • stepId (string) - required: step that must be complete to trigger this step

  • choiceId (string) - optional: choice id in the triggering step that will trigger this step, if the stepId points to a step of type choice

At the media level:

  • uri (string) - required: the URI for the media

At the template level:

  • steps (array of step) - required: these are the steps that will be used when a new item is added using addItem

Requirable step types:

Where step.type is instruction:

  • isRequired (boolean) - optional, defaults to false

Where step.type is choice:

  • choices (array of choice) - required: list of choices

  • isRequired (boolean) - optional, defaults to false

At the choice level:

  • id (string) - required: each choice must have a unique id (unique within the step)

  • text (string) - required: the choice text displayed to the user

  • group (string) - optional: if specified, choosing this choice will clear out other groups' choice selections

Where step.type is captureText

  • textInputType (string) - optional: one of 'generic' or 'numeric' to indicate the possible input characters, defaults to 'generic'

  • text (string) - optional: the step instruction displayed to the user; defaults to "Capture text"

  • isRequired (boolean) - optional, defaults to false

Where step.type is capturePhoto

  • text (string) - optional: the step instruction displayed to the user; defaults to "Capture photo"

  • delay (number) - optional: the delay (in seconds) until a photo is taken; a value of 0 means manual capture; defaults to 0

  • isRequired (boolean) - optional, defaults to false

Where step.type is captureScan

  • text (string) - optional: the step instruction displayed to the user; defaults to "Capture scan"

  • isRequired (boolean) - optional, defaults to false

Where step.type is captureVideo

  • text (string) - optional: the step instruction displayed to the user; defaults to "Capture video"

  • isRequired (boolean) - optional, defaults to false

Requirability depends on children:

Where step.type is section

  • display (string) - optional: if set to nested, substeps will be in a new view; defaults to adding substeps inline

Unrequirable step types:

Where step.type is call

  • text (string) - optional: the step instruction displayed to the user; defaults to "Join call"

Where step.type is submit

  • text (string) - optional: the step instruction displayed to the user; defaults to "Submit"

Where step.type is addItem

  • text (string) - optional: the step instruction displayed to the user; defaults to ""

  • template (string) - required: the template id of the cards that should exist in the added item

  • verbiage (object) - optional:

    • singular (string) - optional: singular noun for the item; defaults to "Item"

    • plural (string) - optional: plural noun for the item; defaults to "Items"

Where step.type is deleteItem

  • text (string) - optional: the step instruction displayed to the user; defaults to ""

Where step.type is exitItem

  • text (string) - optional: the step instruction displayed to the user; defaults to ""

User Guide

Workflow templates

The user will have access to a set of workflow templates. These workflows templates originate from either an extension or from application data.

Users with the Demo User role will only see templates that have the demo property set to true, and Users without that role will only see templates that either do not have the demo property or have the property set to false.

To start a workflow, a user can select one of the templates. From the Select a workflow to begin screen.

The user can select the "Workflow Procedure" template to start it (web client)
The user can select the "Workflow Procedure" template to start it (HUD client)

Once a template is selected, an instance of it will copied and created. The user can perform the steps associated with that workflow and finally submit it to close the workflow session.

Submitted workflows

The data associated with a submitted workflow is always accessible through the Skylight Web Portal and through the Skylight APIs.

Step types

The following are the available steps in a workflow:

Instruction

A generic instruction step that can include both text and image-based information. User actions include:

  • Select: If the step is required, this action will toggle completion of the step.

  • View media: If the user is on HUD and the step has media associated with it, this will bring up a gallery view of the media.

Example instruction step on web client
Example instruction step on HUD client

Choice

A multiple-choice step that allows the user to make a selection from an array of choices. On the web client, tapping the choice step's main card will toggle visibility of the choices. On the HUD client, tapping the choice step's main card will take the user to a new view with the choices, in which the user can make a selection. A choice can be selected to toggle selection of that choice.

Choices are divided into groups (e.g. pass, fail, n/a). Groups are exclusive in that multiple choice selections cannot be made simultaneously across groups, only within them. Selecting a choice within a group will cause any selected choices in other groups to become deselected. If all choices within a group are selected, then the visibility of the choices is toggled (in web) or the user is taken back to the list of steps that includes this choice step (in HUD).

A choice step is considered complete if at least one choice is selected.

Example choice step with choices inline on web client
Example choice step on HUD client -- selectin this step will take the user to a view with the choices

Section

A section step provides a way to create blocks of other steps that act as substeps of the section. The substeps can be displayed inline (much like how substeps for other step types are displayed), or for the section step in particular, the substeps can be nested so that the user can select the section step to be taken to a new view showing the substeps.

Example of a section step on web client with inline substeps
Example of a section step on HUD client with inline substeps

Capture Photo

A step that allows the user to take a photo. Captured photos are stored in the session's media with the step's id as a label.

A capture photo step is considered complete if at least one photo has been taken.

Input Text

A step that allows for textual user input. On the web client, selecting this step will bring up a text box for data entry. On HUD devices that support speech-to-text (such as the Google Glass EE2), selecting this step will bring up a speech-to-text prompt.

This step is considered complete if text has been input.

Scan

A step that allows the user to use the device's camera to scan a barcode. The scan result is recorded as text.

A scan step is considered complete if the text from a successful scan has been recorded.

Call

A step that allows the user to join the call associated with this workflow. Every workflow has one call room associated with it that up to 4 users can join.

Refer to the Web Client User Guide or Smart Glasses Client User Guide for instructions on using the in-call Skylight Live features.

A call step cannot be required and as such cannot be completed.

Submit

A step that allows the user to submit the workflow. This will set the status of the workflow to submitted and the workflow session will be removed from the list of active sessions.

The session's recorded data, such as from Choice steps and Capture Photo steps, will be retained within Skylight and can be accessed even after a workflow has been submitted.

Add Item

A step that allows the user to add a new item to the workflow. For example, this can be used to enable the user to report any number of incidents/discrepancies/notes. This step must point to a template.

Delete Item

A step that allows the user to delete the item that they are currently viewing. This step is only usable inside of templates that are used by the Add Item step.

Exit Item

A step that allows the user to exit the current item. This step is only usable inside of templates that are used by the Add Item step.

Triggered steps

Some steps only become visible and part of the workflow if another particular step has been completed, or if a particular choice has been selected. These triggered steps can be used to create branching workflows or steps that are specific to the user's multiple choice answer.

Other Information

Requirements

  • Smart Glasses Client 7.1.0 or newer

  • Web Client 0.1.1 or newer

Known Limitations

  • The Input Text step does not currently provide a way to toggle the character set between alphanumeric and numeric entry.

Release Notes

1.1.1

  • Fixed a bug which caused a crash on iOS

  • Manager can now step into nested section steps

1.1

  • Excel Workflow Synchronization Tool

    • Add new step types: VideoStep, AddItemStep, DeleteItemStep, ExitItemStep, EndSectionStep

  • Workflow Quick Start Application

    • Add new step types: captureVideo, addItem, deleteItem, exitItem

    • Improve stability when submitting workflows

0.1

  • Excel Workflow Synchronization Tool

    • Correctly determine the last row with data

  • Workflow Quick Start Application

    • Fix issues with icons and text input

0.0

  • Pre-release of the Workflow Quick Start Application