---
title: "Example 2 - Advanced Conditional Checklist"
canonical: "https://help.fieldbuddy.com/space/FBDOCS/6024888321/Example%202%20-%20Advanced%20Conditional%20Checklist"
format: markdown
---
> ℹ️ Some steps in this example are shortened to decrease reading time. If you need more detailed steps, make sure to check out [https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/6023544856](https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/6023544856) before moving on to this example.

---

The requirements of this checklist are as follows:

First, we would like to check basic equipment functionality.

- (Page 1) Ask technician if the equipment powers on.
  - If yes, proceed with second page.
  - If no, then:
    - Ask what the cause is.
      - There should be set of preset answers, so that the technician doesn’t spend extra time entering the values themselves.
      - There should be an “Other” option, that technician can choose to enter another cause, if the cause is not in the preset answers list, of if they do not know the cause.
    - The checklist may prematurely end here.

Second, we would like to check system performance.

- (Page 2) Ask technician to check whether the system is operating within expected parameters.
  - If yes, proceed with third page.
  - If no, then:
    - Ask technician to identify and document the deviations.
- If the question is answered, technician may proceed to the next page.

Third, we will ask the technician to check for signs of wear and tear.

- (Page 3) Ask technician to check if there are any visible signs of damage.
  - If no, proceed with fourth page.
  - If yes, ask technician if they needed to repair or replace these damaged components.
    - If no, ask them to specify the reason they could not perform the repairs.
- If the question is answered, technician may proceed to the next page.

Fourth, we will ask the technician to check the information about preventative maintenance.

- (Page 4) Ask technician to check if some other technician already completed the preventative maintenance.
  - If yes, ask for the name of the technician and the date of completion of the maintenance.
  - If no, ask user if they performed the needed maintenance.
- If the question is answered, technician may proceed to the next page.

Lastly, in Page 5, we will ask the technician to confirm or deny whether the system passes all the needed checks after maintenance and repairs. 

The checklist ends here.

---

Let’s start by following the steps outlined here [https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/6020071431/Filter+Logic+in+Checklists#How-to-make-a-field-conditional-on-other-fields%27-values](https://upperdeck.atlassian.net/wiki/spaces/FBDOCS/pages/6020071431/Filter+Logic+in+Checklists#How-to-make-a-field-conditional-on-other-fields%27-values) .

1. We will name our WOLI “Advanced Conditional Checklist”. We will set its type to `Activity`, and its display type to be `Checklist` .
2. Next, we will create the WOIDs that we need, with the order that we would like to see them in. We also choose a fitting type for each type of WOID.
3. If a page’s filter logic evaluates to false, we can set up a custom message to display to the technician. This is done via the Help Text property.
4. If we want filter logic to be able to refer to a field, we will need to assign an API name to it. So, we add some API Names to fields that we will need to refer to using filter logic.
5. Now that we have the API names that we need, we can refer to the values of WOIDs in our filter logic. We carefully examine the dependencies between fields, and add the filter logic.

Here is the table representation of the checklist:

| **WOID** | **API Name** | **Filter Logic** | **Type** | **Page** | **Order** | **Picklist values** | **Help Text** |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Equipment Functionality | - | - | Page | 100 | 100 | - | - |
| Does the equipment power on? | `equipmentPowersOn` | - | IconPicklist | 100 | 101 | ```
Yes
No
``` | `Confirm to proceed to the next page.` |
| What's the cause? | `causeOfNoPower` | `(equipmentPowersOn)=>{return equipmentPowersOn === "No"}` | LabelPicklist | 100 | 102 | ```
Power source
Cables
Circuit breakers
Other
``` | - |
| Please specify the cause. | `otherCauseOfNoPower` | `(equipmentPowersOn, causeOfNoPower)=>{return equipmentPowersOn === "No" && causeOfNoPower === "Other"}` | Text | 100 | 103 | - | - |
| System Performance | `systemPerformancePage` | `(equipmentPowersOn)=>{return equipmentPowersOn === "Yes"}` | Page | 200 | 200 | - | `Please fill out the required items in the previous page.` |
| Is the system operating within the expected parameters? | `withinExpectedParameters` | - | IconPicklist | 200 | 201 | ```
Yes
No
``` | `Enter a value to proceed to the next page.` |
| Please identify and document the deviation. | `performanceDeviation` | `(withinExpectedParameters)=>{return withinExpectedParameters === "No"}` | Text | 200 | 202 | - | `Check for software issues, worn parts, or external environmental factors.` |
| Signs of Wear or Damage | `signsOfWearAndDamagePage` | `(withinExpectedParameters, equipmentPowersOn)=>{return equipmentPowersOn === "Yes" && (withinExpectedParameters === "Yes" || withinExpectedParameters === "No")}` | Page | 300 | 300 | - | - |
| Are there any visible signs of damage? | `signsOfWearAndDamage` | - | IconPicklist | 300 | 301 | ```
Yes
No
``` | `Enter a value to proceed to the next page.` |
| I have repaired or replaced damaged components. | `repairConfirmation` | `(signsOfWearAndDamage)=>{return signsOfWearAndDamage === "Yes"}` | IconPicklist | 300 | 302 | ```
Yes
No
``` | - |
| Please specify the reason. | `reasonNoRepair` | `(signsOfWearAndDamage, repairConfirmation)=>{return signsOfWearAndDamage === "Yes" && repairConfirmation === "No"}` | Text | 300 | 303 | - | - |
| Preventative Maintenance | `preventativeMaintenancePage` | `(signsOfWearAndDamage, repairConfirmation, equipmentPowersOn)=>{return equipmentPowersOn === "Yes" && (signsOfWearAndDamage === "No" || signsOfWearAndDamage === "Yes")}` | Page | 400 | 400 | - | - |
| Has some technician already completed all scheduled preventative maintenance? | `scheduledMaintenanceComplete` | - | IconPicklist | 400 | 401 | ```
Yes
No
``` | `Enter a value to proceed to the next page.` |
| Name of the technician who performed maintenance | `nameOfTechnicianWhoPerformedMaintenance` | `(scheduledMaintenanceComplete)=>{return scheduledMaintenanceComplete === "Yes"}` | Text | 400 | 402 | - | - |
| Date of last preventative maintenance | `dateOfLastMaintenance` | `(scheduledMaintenanceComplete)=>{return scheduledMaintenanceComplete === "Yes"}` | Date/Time | 400 | 403 | - | - |
| I performed the necessary maintanence. | `technicianPerformedMaintenance` | `(scheduledMaintenanceComplete)=>{return scheduledMaintenanceComplete === "No"}` | Checkbox | 400 | 404 | - | - |
| Please specify why you could not perform the preventative maintenance. | `reasonNoPreventativeMaintanence` | `(technicianPerformedMaintenance, scheduledMaintenanceComplete)=>{return scheduledMaintenanceComplete === "No" && technicianPerformedMaintenance == "" }` | Text | 400 | 405 | - | - |
| System Post-Inspection | `systemPostInspectionPage` | `(scheduledMaintenanceComplete, technicianPerformedMaintenance, equipmentPowersOn)=>{return equipmentPowersOn === "Yes" && (scheduledMaintenanceComplete === "Yes" || scheduledMaintenanceComplete === "No" || technicianPerformedMaintenance === "Yes")}` | Page | 500 | 500 | - | - |
| The system passed all operational tests after maintenance and repairs. | - | - | Checkbox | 500 | 501 | - | - |