Claims Consultant Missing Fields Table
Source: custom function claims_consultant.add_dashboard_stats(), rendered by an embedded HTML snippet template on the Claims_Consultant_Dashboard page (https://creatorapp.zoho.com.au/clientportal/test-claims-management-portal/#Page:Claims_Consultant_Dashboard), directly below the "Missing Claims Consultant" KPI panel and above the Jobs_Booked_assigned_to_Claims_Consultant report grid.

What it shows
One row per claims consultant, with a column per required field/document, grouped under 8 header groups: Driver / Owner, Vehicle / Customer, At-Fault, Insurance, Liability, Validation, Repairs, Renewal.
add_dashboard_stats() returns each row as { name, fields }, where fields is a list of { value, link } maps (one per column) — it does not build HTML itself. The template loop renders each cell:
value == 0→<span class="cc-cell cc-zero">0</span>(thecc-zerorule wins the CSS cascade — grey text, no link)- otherwise →
<a class="cc-cell" href="<link>" target="_blank">{value}</a>— opensClaim_Form_Reportfiltered to the matching records, in a new window/tab
Row source
- Form:
User - Criteria:
Crash_Claim_Email != null && Enable_Claims_Consultant_Stats == true - If zero users match,
add_dashboard_stats()returns an empty list; the template checksdata.size() == 0and renders a centered warning instead of a table: "Please enable "Claims Consultant Stats" in the User Form" - A user's row is omitted entirely if every column is
0(total_missing == 0)
Claim status scope (cm_status)
cm_status is an exclusion list — every column below matches when the claim's status is anything other than these three:
CancelDeclinedRejected
This means any status not explicitly listed (Pending, Pending Further Review, Validated, and any future status added later) is included by default, since the check is not in rather than in.
Base filter (all columns)
File_Handler_Test.email == user_record.Crash_Claim_Email && Claims_Management_Form.Status not in cm_status
Each column's criteria below is &&'d onto this base filter, scoped to Claim_Form.
const_url (shared base for every drill-down link) = "File_Handler_Test=" + user_record.Crash_Claim_Email + "&Claims_Management_Form.Status=[" + cm_status + "]&Claims_Management_Form.Status_op=19&"
_op=19 is the "not in" operator on the report link, matching the not in cm_status criteria above.
Recovery type scope (columns 11–13 only)
Built inline at the top of add_dashboard_stats() — there is no longer a separate get_recovery_Type_url_param() helper for this:
recovery_list = [
thisapp.Recovery_Type.CBR_Not_At_Fault(),
thisapp.Recovery_Type.CBR_At_Fault(),
thisapp.Recovery_Type.CBR_Not_At_Fault_Direct(),
thisapp.Recovery_Type.Direct()
]
recovery_param = "[" + recovery_list + "]"
Columns
Grouped exactly as the dashboard's header groups (group_headers / sub_headers in the template).
Driver / Owner
1. Driver Licence Front
column - DL Front
Form - Claim_Form
value - Count
variable - missing_driver_front
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Drives_licence == null
|| Drives_licence == ""
Report - Claim_Form_Report
Report param - const_url + "Drives_licence_op=29"
2. Driver Licence Back
column - DL Back
Form - Claim_Form
value - Count
variable - missing_driver_back
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Drivers_Licence_Back == null
|| Drivers_Licence_Back == ""
Report - Claim_Form_Report
Report param - const_url + "Drivers_Licence_Back_op=29"
3. Owner Relationship
column - Relationship
Form - Claim_Form
value - Count
variable - missing_relationship_to_owner
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& is_Driver_the_same_as_owner == false
&& Relationship_to_Owner == null
|| Relationship_to_Owner == ""
Report - Claim_Form_Report
Report param - const_url + "Relationship_to_Owner_op=29&is_Driver_the_same_as_owner=false"
4. Owner Name
column - Owner Name
Form - Claim_Form
value - Count
variable - missing_owner_name
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& is_Driver_the_same_as_owner == false
&& Owner_Name == null
Report - Claim_Form_Report
Report param - const_url + "Owner_Name_op=29&is_Driver_the_same_as_owner=false"
5. Owner Licence
column - Owner Licence
Form - Claim_Form
value - Count
variable - missing_owner_licence
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& is_Driver_the_same_as_owner == false
&& Owners_Licence == null
|| Owners_Licence == ""
Report - Claim_Form_Report
Report param - const_url + "Owners_Licence_op=29&is_Driver_the_same_as_owner=false"
Vehicle / Customer
6. Customer Registration
column - Registration
Form - Claim_Form
value - Count
variable - missing_customer_reg
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Customer_Registration1 == null
|| Customer_Registration1 == ""
Report - Claim_Form_Report
Report param - const_url + "Customer_Registration1_op=29"
7. Customer Insurer
column - Insurer
Form - Claim_Form
value - Count
variable - missing_customer_insurer
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Client_Insurer == null
Report - Claim_Form_Report
Report param - const_url + "Client_Insurer_op=29"
At-Fault
8. At-Fault Licence Front
column - DL Front
Form - Claim_Form
value - Count
variable - missing_af_dl_front
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& At_Fault_Drivers_Licence == null
|| At_Fault_Drivers_Licence == ""
Report - Claim_Form_Report
Report param - const_url + "At_Fault_Drivers_Licence_op=29"
9. At-Fault Licence Back
column - DL Back
Form - Claim_Form
value - Count
variable - missing_af_dl_back
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& At_Fault_Drivers_Licence_Back == null
|| At_Fault_Drivers_Licence_Back == ""
Report - Claim_Form_Report
Report param - const_url + "At_Fault_Drivers_Licence_Back_op=29"
10. At-Fault Claim
column - Claim #
Form - Claim_Form
value - Count
variable - missing_af_claim
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& At_Fault_Party_Claim == null
|| At_Fault_Party_Claim == ""
Report - Claim_Form_Report
Report param - const_url + "At_Fault_Party_Claim_op=29"
Insurance (Direct / CBR recovery types only)
11. Insurance Document
column - Document
Form - Claim_Form
value - Count
variable - missing_ins_doc
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Recovery_Type in recovery_list
&& Customer_Insurance_Document == null
|| Customer_Insurance_Document == ""
Report - Claim_Form_Report
Report param - const_url + "Customer_Insurance_Document_op=29&Recovery_Type=" + recovery_param
12. Claim Number
column - Claim No.
Form - Claim_Form
value - Count
variable - missing_claim_no
criteria (raw source compares Recovery_Type with == against the recovery_list list here, not `in` like column 11 — kept as written)
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Recovery_Type == recovery_list
&& Claim_Number == null
|| Claim_Number == ""
Report - Claim_Form_Report
Report param - const_url + "Claim_Number_op=29&Recovery_Type=" + recovery_param
13. Policy Number
column - Policy No.
Form - Claim_Form
value - Count
variable - missing_policy_no
criteria (same == vs in inconsistency as column 12 — kept as written)
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Recovery_Type == recovery_list
&& Policy_Number == null
|| Policy_Number == ""
Report - Claim_Form_Report
Report param - const_url + "Policy_Number_op=29&Recovery_Type=" + recovery_param
Liability
14. Liability = No
column - = No
Form - Claim_Form
value - Count
variable - liability_no
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Has_Liability_been_confirmed == "No"
Report - Claim_Form_Report
Report param - const_url + "Has_Liability_been_confirmed=No"
Note: this is an exact-value match on the report link, not _op=29 (blank) like the other columns.
15. Liability Empty
column - Empty
Form - Claim_Form
value - Count
variable - liability_empty
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Has_Liability_been_confirmed == null
|| Has_Liability_been_confirmed == ""
Report - Claim_Form_Report
Report param - const_url + "Has_Liability_been_confirmed_op=29"
Validation
16. Claim Accepted (Red Flag)
column - Red Flag
Form - Claim_Form
value - Count
variable - red_flag
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Is_Claim_Accepted == thisapp.Is_Claim_Accepted.Red_Flag_Job_Pending_Validation()
Report - Claim_Form_Report
Report param - const_url + "Is_Claim_Accepted=" + thisapp.Is_Claim_Accepted.Red_Flag_Job_Pending_Validation()
Repairs
17. Repair Name
column - Repairer
Form - Claim_Form
value - Count
variable - missing_repair_name
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Claims_Management_Form.Repair_Status == thisapp.repair_status.In_Repairs()
&& Claims_Management_Form.Repairer == null
Report - Claim_Form_Report
Report param - const_url + "Claims_Management_Form.Repair_Status=" + thisapp.repair_status.In_Repairs() + "&Claims_Management_Form.Repairer_op=29"
18. Date Sent to Repair
column - Date Sent
Form - Claim_Form
value - Count
variable - missing_date_sent
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Claims_Management_Form.Repair_Status == thisapp.repair_status.In_Repairs()
&& Claims_Management_Form.Date_Sent_to_Repairer == null
Report - Claim_Form_Report
Report param - const_url + "Claims_Management_Form.Repair_Status=" + thisapp.repair_status.In_Repairs() + "&Claims_Management_Form.Date_Sent_to_Repairer_op=29"
19. Repair ETA
column - ETA
Form - Claim_Form
value - Count
variable - missing_repair_eta
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Claims_Management_Form.Repair_Status == thisapp.repair_status.In_Repairs()
&& Claims_Management_Form.Repair_ETA == null
Report - Claim_Form_Report
Report param - const_url + "Claims_Management_Form.Repair_Status=" + thisapp.repair_status.In_Repairs() + "&Claims_Management_Form.Repair_ETA_op=29"
Note: the report param now includes the Repair_Status=In Repairs scope, matching columns 17–18 (it was missing this scope in the previous version of the function).
Renewal
20. Policy Renewal Date
column - Policy Date
Form - Claim_Form
value - Count
variable - missing_renewal
criteria
File_Handler_Test.email == user_record.Crash_Claim_Email
&& Claims_Management_Form.Status not in cm_status
&& Renewal_Date == null
|| Renewal_Date == ""
Report - Claim_Form_Report
Report param - const_url + "Renewal_Date_op=29"
total_missing (used only to decide whether to skip a row) is the sum of all 20 column counts above.
All drill-down links open the same report — Claim_Form_Report — with the column's query param appended to const_url.
Helper functions
claims_consultant.get_url_fields_value(string link, int value)
Returns a Map per cell (no HTML built here — that happens in the template's render loop, see "What it shows" above):
{
"value": value,
"link": "#Report:" + thisapp.link_names_report.Claim_Form_Report() + "?" + link
}
Previous version of this function returned pre-rendered HTML (<span>/<a>) directly; that responsibility has moved to the template.
Header groups (template)
Defined in the template as group_headers (top row, with colspan) and sub_headers (bottom row, one per column, same order as fields in add_dashboard_stats()):
| Group | Span | Columns |
|---|---|---|
| Driver / Owner | 5 | DL Front, DL Back, Relationship, Owner Name, Owner Licence |
| Vehicle / Customer | 2 | Registration, Insurer |
| At-Fault | 3 | DL Front, DL Back, Claim # |
| Insurance | 3 | Document, Claim No., Policy No. |
| Liability | 2 | = No, Empty |
| Validation | 1 | Red Flag |
| Repairs | 3 | Repairer, Date Sent, ETA |
| Renewal | 1 | Policy Date |