GUBUS CHECKER
Advanced validation system for complex multi-condition checks with AND logic.
CHECKER is GUBUS’s advanced validation system for complex multi-condition checks. It enables sophisticated AND-logic validation where ALL conditions must pass for a row to be considered “done” or “valid”.
Primarily used in Workfeed read logic, Checker allows you to define multiple validation rules that are evaluated together, providing far more flexibility than simple single-condition checks.
Checker uses AND logic - ALL conditions must be true. Perfect for complex workflow prerequisites and multi-field validation.
When to use Checker:
- Multi-field validation (e.g., status = “ready” AND date < today)
- Complex date-based conditions
- Combinations of different check types
- Advanced workflow prerequisites
Key characteristics:
- AND logic: All checkers must pass
- 15+ check command types
- Date validation with custom formats
- Value extraction before checking
- Field comparison and validation
How It Works
In Workfeed Read Context
[Read workfeed] → [Generate check instructions] → [Execute checker logic]
→ [Filter "done" rows] → [localObjs]
Step-by-step:
- Workfeed rule specifies
resolve_type: "checker" - Checker array loaded from workfeed configuration
- Check instructions generated
- For each row:
- Each checker evaluated independently
- ALL checkers must return true (AND logic)
- If all pass → row marked as “done”
- If any fail → row skipped
- Done rows collected for processing
- Resolve strategy executed on matched rows
Checkers use AND logic - ALL conditions must be true. If you need OR logic, use separate schemas.
Checker Structure
class Checker {
reference: string; // Unique identifier for this checker
check_field_name: string; // Field to validate
check_command: string; // Validation command
check_help_value: string; // Reference value for comparison
date_format_if_date: string; // Date format for date checks
extract_command: string; // Optional: extract value before check
extract_ref: string; // Reference for extraction
extract_field: string; // Field to extract from
date_format_extracted: string; // Date format for extracted dates
}
Check Commands
Category 1: Basic Comparison
IN - Value must be in list
Checks if field value is in comma-separated list.
{
"reference": "status_check",
"check_field_name": "status",
"check_command": "IN",
"check_help_value": "pending,processing,ready"
}
Example:
- Field
status: "processing"→ ✅ PASS (in list) - Field
status: "completed"→ ❌ FAIL (not in list)
NOT_IN - Value must NOT be in list
{
"reference": "exclude_statuses",
"check_field_name": "status",
"check_command": "NOT_IN",
"check_help_value": "cancelled,archived"
}
IS_EQUAL - Exact match
{
"reference": "payment_confirmed",
"check_field_name": "payment_status",
"check_command": "IS_EQUAL",
"check_help_value": "confirmed"
}
IS_NOT_EQUAL - Not equal
{
"reference": "not_cancelled",
"check_field_name": "status",
"check_command": "IS_NOT_EQUAL",
"check_help_value": "cancelled"
}
Category 2: Cell State Checks
CELL_NOT_EMPTY - Cell has any value
{
"reference": "has_comment",
"check_field_name": "comment",
"check_command": "CELL_NOT_EMPTY",
"check_help_value": ""
}
Example:
- Field
comment: "Some text"→ ✅ PASS - Field
comment: ""→ ❌ FAIL (empty)
CELL_IS_NUMBER_NULL - Cell is number or empty
{
"reference": "optional_amount",
"check_field_name": "discount_amount",
"check_command": "CELL_IS_NUMBER_NULL",
"check_help_value": ""
}
IS_POSITIVE_NUMBER - Value > 0
{
"reference": "has_quantity",
"check_field_name": "quantity",
"check_command": "IS_POSITIVE_NUMBER",
"check_help_value": ""
}
CHECKBOX_TRUE - Checkbox is checked
{
"reference": "completion_check",
"check_field_name": "is_completed",
"check_command": "CHECKBOX_TRUE",
"check_help_value": ""
}
Most popular checker for workflow queues - mark tasks as ready for processing.
Category 3: Date Checks
All date checkers require date_format_if_date to parse field value correctly.
DATE_TODAY - Date equals today
{
"reference": "today_check",
"check_field_name": "operation_date",
"check_command": "DATE_TODAY",
"check_help_value": "",
"date_format_if_date": "YYYY-MM-DD"
}
DATE_YESTERDAY - Date equals yesterday
{
"reference": "yesterday_check",
"check_field_name": "report_date",
"check_command": "DATE_YESTERDAY",
"check_help_value": "",
"date_format_if_date": "DD.MM.YYYY"
}
DATE_TOMORROW - Date equals tomorrow
{
"reference": "tomorrow_check",
"check_field_name": "scheduled_date",
"check_command": "DATE_TOMORROW",
"check_help_value": "",
"date_format_if_date": "YYYY-MM-DD"
}
DATE_EARLIER_INCLUDE - Date ≤ reference date
{
"reference": "deadline_check",
"check_field_name": "due_date",
"check_command": "DATE_EARLIER_INCLUDE",
"check_help_value": "2025-12-31",
"date_format_if_date": "YYYY-MM-DD"
}
Process all items with dates in the past or up to a deadline.
DATE_LATER_EXCLUDE - Date > reference date
{
"reference": "future_only",
"check_field_name": "start_date",
"check_command": "DATE_LATER_EXCLUDE",
"check_help_value": "2025-11-19",
"date_format_if_date": "YYYY-MM-DD"
}
DATE_THIS_MONTH - Date in current month
{
"reference": "current_month_check",
"check_field_name": "transaction_date",
"check_command": "DATE_THIS_MONTH",
"check_help_value": "",
"date_format_if_date": "YYYY-MM-DD"
}
DATE_TIME_PRECISION_MATCH_SECONDS - Exact datetime match
{
"reference": "exact_time_check",
"check_field_name": "scheduled_time",
"check_command": "DATE_TIME_PRECISION_MATCH_SECONDS",
"check_help_value": "2025-11-19 14:30:00",
"date_format_if_date": "YYYY-MM-DD HH:mm:ss"
}
Category 4: Special Checks
CHECK_NOT_GOOGLE_MISTAKE - Validates proper data format
Checks that field value is not a Google Sheets error or invalid format.
{
"reference": "valid_data",
"check_field_name": "calculated_total",
"check_command": "CHECK_NOT_GOOGLE_MISTAKE",
"check_help_value": ""
}
Example:
- Field
calculated_total: 100.50→ ✅ PASS (valid number) - Field
calculated_total: "#DIV/0!"→ ❌ FAIL (formula error)
Validate that calculated fields don’t contain formula errors before processing.
Date Format Patterns
Common date format patterns for date_format_if_date:
Date format must EXACTLY match your sheet’s date format, or checks will fail. Format is case-sensitive! YYYY ≠ yyyy
Complete Examples
Example 1: Simple Checkbox Queue
Use Case: Process tasks marked as ready.
{
"resolve_type": "checker",
"checker": [
{
"reference": "ready_check",
"check_field_name": "is_ready",
"check_command": "CHECKBOX_TRUE",
"check_help_value": ""
}
]
}
Logic: Read only rows where is_ready checkbox is checked.
Example 2: Multi-Condition AND Logic
Use Case: Process orders that are both ready AND have confirmed payment.
{
"resolve_type": "checker",
"checker": [
{
"reference": "ready_check",
"check_field_name": "is_ready",
"check_command": "CHECKBOX_TRUE",
"check_help_value": ""
},
{
"reference": "payment_check",
"check_field_name": "payment_status",
"check_command": "IS_EQUAL",
"check_help_value": "confirmed"
}
]
}
Logic: Read only rows where BOTH conditions are true:
is_ready= true ANDpayment_status= “confirmed”
If either fails, row is skipped.
Example 3: Complex Workflow Prerequisites
Use Case: Process production items that meet all criteria.
{
"resolve_type": "checker",
"checker": [
{
"reference": "status_check",
"check_field_name": "status",
"check_command": "IN",
"check_help_value": "ready,processing"
},
{
"reference": "quantity_check",
"check_field_name": "quantity",
"check_command": "IS_POSITIVE_NUMBER",
"check_help_value": ""
},
{
"reference": "date_check",
"check_field_name": "production_date",
"check_command": "DATE_THIS_MONTH",
"check_help_value": "",
"date_format_if_date": "YYYY-MM-DD"
},
{
"reference": "not_cancelled",
"check_field_name": "is_cancelled",
"check_command": "IS_NOT_EQUAL",
"check_help_value": "true"
}
]
}
Logic: ALL of these must be true:
statusis “ready” OR “processing” ANDquantity> 0 ANDproduction_dateis in current month ANDis_cancelled≠ “true”
Integration with Workfeed
Checker is silently connected to workfeed reference. Just set resolve_type: "checker" and GUBUS will search checker properties bound to workfeed reference.
How it works:
- Schema reads workfeed
- System generates check instructions from
checkerarray - For each row:
- Check 1, Check 2, … Check N evaluated
- If BOTH/ALL pass → row is “done” and included in read result
- After processing, rows are resolved as assigned in
resolveproperty
Advanced: Extract Commands
Actively Used: Extract commands is a perfect concise way to check workfeed against another pattern loaded to Schema Context. Most commonly you need to check against values entered in initial multipanel.
Example Use Case: User wants to undo some execution by posting date. Multipanel for that created. How to extract value to check workfeed with entered value? Right! GUBUS extract command!
{
"reference": "extracted_date_check",
"check_field_name": "posting_date",
"check_command": "DATE_EARLIER_INCLUDE",
"check_help_value": "2025-12-31",
"date_format_if_date": "YYYY-MM-DD",
"extract_command": "EXTRACT_VALUE",
"extract_field": "undo_date",
"extract_ref": "undoInputPanel"
}
This extracts undo_date from multipanel, then checks workfeed posting_date against it.
Best Practices
Do’s ✅
Design:
- ✅ Use clear, descriptive
referencenames (e.g., “payment_confirmed”, “past_date_check”) - ✅ Start with simple checkers, add complexity only when needed
- ✅ Use
CHECKBOX_TRUEfor workflow queues (most common pattern) - ✅ Always specify
date_format_if_datefor date checks
Testing:
- ✅ Test each checker independently first
- ✅ Test ALL combinations of conditions
- ✅ Verify date formats match your sheet exactly
- ✅ Use sample data to validate logic before production
Don’ts ❌
Configuration:
- ❌ Don’t forget
date_format_if_datefor date checks - will fail silently - ❌ Don’t mix different date formats in same workfeed
- ❌ Don’t use too many checkers (>5) - becomes hard to debug
- ❌ Don’t use checkers for simple single-condition checks (use
resolve_typeinstead)
Logic:
- ❌ Don’t expect OR logic - ALL checkers must pass (AND only)
- ❌ Don’t assume empty fields pass checks - define explicit handling
Troubleshooting
Checker Not Matching Any Rows
Possible Causes:
- Date format mismatch -
date_format_if_datedoesn’t match actual format - Field name typo in
check_field_name - Too restrictive conditions - no rows meet ALL criteria
- Wrong
check_help_value- doesn’t match actual data
Solution Checklist:
- ✓ Verify
check_field_nameexists in workfeedmodel - ✓ Check date format matches exactly (case-sensitive)
- ✓ Temporarily disable some checkers to isolate issue
- ✓ Review actual sheet data to verify values
Date Checks Always Failing
Cause: Date format mismatch between sheet and date_format_if_date.
Solution:
// If sheet has: "19.11.2025"
// Use: "DD.MM.YYYY"
// If sheet has: "2025-11-19"
// Use: "YYYY-MM-DD"
// If sheet has: "11/19/2025"
// Use: "MM/DD/YYYY"
Format is case-sensitive! YYYY ≠ yyyy
Summary
Checker = Complex Multi-Condition Validation
- ✅ AND logic: ALL checkers must pass
- ✅ 15+ check commands (comparison, cell state, date, special)
- ✅ Flexible date validation with custom formats
- ✅ Integrated with Workfeed read logic
Key Commands:
- Comparison: IN, NOT_IN, IS_EQUAL, IS_NOT_EQUAL
- Cell State: CELL_NOT_EMPTY, IS_POSITIVE_NUMBER, CHECKBOX_TRUE
- Date: DATE_TODAY, DATE_EARLIER_INCLUDE, DATE_THIS_MONTH
- Special: CHECK_NOT_GOOGLE_MISTAKE
Common Patterns:
- Simple queue:
CHECKBOX_TRUEonis_readyfield - Date range:
DATE_EARLIER_INCLUDEfor past dates - Multi-condition: Multiple checkers for complex workflows
- Status validation:
IS_EQUALorINfor status checks
When to use:
- Multi-field validation requirements
- Complex workflow prerequisites
- Date-based processing logic
- Advanced queue management
When NOT to use:
- Single simple condition (use
resolve_typeinstead) - OR logic needed (use separate schemas)
- Performance-critical paths (checkers add overhead)
Next Steps
👉 GUBUS WORKFEED → - Workfeed pattern documentation 👉 GUBUS SCHEMA → - Schema execution workflows 👉 ← Back to Getting Started - Main documentation