Portal Community
Cron Expression Verification Before deploying, paste your cron expression into the BizFirstAI portal's cron preview tool to see the plain-English description and the next 10 scheduled fire times in your configured timezone. This confirms the schedule is correct before it goes live.

Example 1 — Daily Payroll Pre-Run

Payroll calculations run every weekday at 5:30 AM Eastern time, before the main office opens. Catch-up is enabled to ensure no business day is missed. Three retries protect against transient database connectivity issues early in the morning.

{
  "node_type": "ScheduledTrigger",
  "name": "Daily Payroll Pre-Run",
  "config": {
    "cron_expression": "30 5 * * 1-5",
    "timezone": "America/New_York",
    "enabled": true,
    "catch_up": true,
    "max_retries": 3,
    "retry_backoff_seconds": 120,
    "execution_timeout_seconds": 7200,
    "overlap_policy": "skip"
  }
}
Expected Outcome: At 5:30 AM Eastern, Monday through Friday, the payroll workflow starts. It queries attendance records from the HRMS for the day, calculates time-based pay adjustments, updates holding accounts, and pre-stages the payroll journal for Finance approval. If the HRMS API is slow, BizFirstAI retries up to 3 times with 2-minute intervals. If a public holiday occurs and the workflow was temporarily disabled, catch-up ensures the next enabled run processes any outstanding records.

Example 2 — Monthly Invoice Generation

Invoices are generated on the first day of every month at 6:00 AM London time. The catch_up flag ensures that even if the platform was in maintenance at midnight on the 1st, invoices will still be generated once the platform recovers.

{
  "node_type": "ScheduledTrigger",
  "name": "Monthly Invoice Generation",
  "config": {
    "cron_expression": "0 6 1 * *",
    "timezone": "Europe/London",
    "enabled": true,
    "catch_up": true,
    "max_retries": 5,
    "retry_backoff_seconds": 300,
    "execution_timeout_seconds": 14400,
    "overlap_policy": "skip"
  }
}
Expected Outcome: On the 1st of each month at 6:00 AM London time, the workflow queries all active billing contracts from Salesforce, calculates charges including usage-based fees from the usage database, generates PDF invoices using a templating service, uploads them to the client document portal, emails each client's accounts payable contact, and creates accounts receivable entries in Sage. A summary report is emailed to the Finance Director by 6:30 AM.

Example 3 — Weekly Performance Report

Every Monday at 7:00 AM Singapore time, a weekly KPI report is generated and sent to department heads. No catch-up — if the report misses a Monday due to maintenance, it simply skips that week rather than sending a late report that could cause confusion.

{
  "node_type": "ScheduledTrigger",
  "name": "Weekly KPI Report — APAC",
  "config": {
    "cron_expression": "0 7 * * 1",
    "timezone": "Asia/Singapore",
    "enabled": true,
    "catch_up": false,
    "max_retries": 2,
    "retry_backoff_seconds": 60,
    "execution_timeout_seconds": 1800,
    "overlap_policy": "skip"
  }
}
Expected Outcome: Every Monday at 7:00 AM SGT, the workflow pulls the prior week's sales, operational, and customer satisfaction KPIs from the data warehouse. It renders an HTML email with trend charts (using a chart rendering service), personalizes each email with the department's own metrics, and distributes to 12 department heads. The entire run completes in under 8 minutes.

Example 4 — Nightly Data Warehouse Sync

Every night at 2:00 AM UTC, the ETL workflow extracts changed records from all operational source systems and loads them into the data warehouse. The 4-hour timeout accommodates heavy nightly loads. Catch-up is enabled to prevent data gaps.

{
  "node_type": "ScheduledTrigger",
  "name": "Nightly Data Warehouse ETL",
  "config": {
    "cron_expression": "0 2 * * *",
    "timezone": "UTC",
    "enabled": true,
    "catch_up": true,
    "max_retries": 3,
    "retry_backoff_seconds": 300,
    "execution_timeout_seconds": 14400,
    "overlap_policy": "skip"
  }
}
Expected Outcome: At 2:00 AM UTC every night, the workflow connects to Salesforce, SAP, Shopify, and the in-house operational database, extracts all records modified since the last scheduled run (using $trigger.scheduled_time to anchor the query window), transforms the data into the warehouse schema, and loads it into Snowflake. A Slack notification is sent to the Data Engineering channel on completion with row counts and any transformation warnings.

Example 5 — End-of-Day Financial Reconciliation

Every weekday at 11:00 PM New York time, the reconciliation workflow compares the payment processor ledger against the banking feed and the ERP. Any discrepancies trigger automatic exception tickets. Overlap policy is kill_and_run to ensure fresh data is always used even if a previous run hangs.

{
  "node_type": "ScheduledTrigger",
  "name": "EOD Financial Reconciliation",
  "config": {
    "cron_expression": "0 23 * * 1-5",
    "timezone": "America/New_York",
    "enabled": true,
    "catch_up": true,
    "max_retries": 3,
    "retry_backoff_seconds": 180,
    "execution_timeout_seconds": 3600,
    "overlap_policy": "kill_and_run"
  }
}
Expected Outcome: At 11:00 PM Eastern every business day, the workflow fetches the day's transaction records from Stripe, the bank API (via open banking connector), and SAP. It performs a three-way match, generates a reconciliation summary with matched and unmatched line items, creates JIRA tickets for any discrepancies over $100, and emails the Finance Controller a PDF reconciliation report. The Finance team arrives the next morning with any issues already flagged.