Recipes and Patterns
Six ready-to-use formulas for common monday.com workflows — conditional status, due dates, notifications, subitem inheritance, time tracking, and division-safe calculations.
Each recipe shows a practical formula, the target column type, and the automation it enables. Copy the formula, adjust column names to match your board, and save.
Flag Overdue Items
Use case: Trigger status-change automations based on calculated conditions.
IF({Priority} == "High", "Urgent", "Normal")Result: "Urgent" when Priority is High, "Normal" otherwise.
Target: Status column — triggers "When status changes to Urgent" automation.
Columns used: {Priority} (Status).
For multiple conditions, use SWITCH:
SWITCH({Priority}, "High", "Critical", "Medium", "Review", "Low", "Backlog", "Inbox")Result: "Critical", "Review", "Backlog", or "Inbox" based on priority value.
Target: Status column — maps priority values to status labels, triggering the matching automation for each.
Columns used: {Priority} (Status).
Auto-Calculate Due Dates
Use case: Set deadlines that trigger reminder automations.
ADD_DAYS(TODAY(), 14)Result: "2026-04-08" (14 days from today).
Target: Date column — triggers "When date arrives" automation.
Columns used: None (uses TODAY() function).
For business-day deadlines:
WORKDAY({Start Date}, 10)Result: The date 10 working days from {Start Date}, skipping weekends and configured non-working days.
Target: Date column — triggers date-based automations with business-day accuracy.
Columns used: {Start Date} (Date). See Working with Dates for working day configuration.
Build Notification Messages
Use case: Build computed notification messages that trigger text-change automations.
CONCATENATE({Client Name}, " - ", {Project}, " due ", FORMAT_DATE({Deadline}, "MMMM Do"))Result: "Acme Corp - Website Redesign due March 15th".
Target: Text column — triggers "When column changes, notify..." automation with the formatted message.
Columns used: {Client Name} (Text), {Project} (Text), {Deadline} (Date).
How it works: CONCATENATE joins the three column values with separators. FORMAT_DATE converts the raw date to a readable format — without it, the date renders as a long UTC string.
Inherit Parent Data in Subitems
Use case: Sync parent data to subitems for cross-level automation logic.
Copy parent status directly:
{Parent's Status}Result: "In Progress" (mirrors the parent item's current status).
Target: Status column — subitems mirror the parent's status, triggering subitem-level automations on status change.
Columns used: {Parent's Status} (parent item's Status column).
Derive subitem priority from parent:
IF({Parent's Priority} == "High", "Rush", "Standard")Result: "Rush" when parent Priority is High, "Standard" otherwise.
Target: Status column — sets subitem urgency based on parent priority.
Columns used: {Parent's Priority} (parent item's Status column).
How it works: The {Parent's ...} prefix accesses the parent item's column value. When the parent changes, all subitem formulas referencing it recalculate automatically.
Track Time Against Budget
Use case: Trigger alerts when tracked time exceeds a budget.
IF({Time Tracking#Hours} > 8, "Over budget", "On track")Result: "Over budget" when tracked hours exceed 8.
Target: Status column — triggers "When status changes to Over budget" automation to notify the team lead.
Columns used: {Time Tracking#Hours} (Time Tracking, #Hours property).
Calculate Percentages Safely
Use case: Calculate percentages without division-by-zero errors.
IF({Total Items} == 0, 0, DIVIDE({Completed Items}, {Total Items}))Result: 0.75 (75% completion) or 0 when no items exist.
Target: Numbers column — completion percentage that can trigger number-based automations.
Columns used: {Total Items} (Numbers), {Completed Items} (Numbers).
How it works: The IF guard checks for zero before dividing. Without it, DIVIDE(x, 0) throws an error that prevents the formula from calculating.
Always guard division. DIVIDE(x, 0) throws an error. Wrap with IF to handle the zero case: IF({Denominator} == 0, 0, DIVIDE({Numerator}, {Denominator})).
Aggregate Subitem Data
Use case: Roll up subitem values into the parent item to trigger project-level automations.
Total subitem effort on the parent:
SUM({Subitem's Story Points})Result: Total story points across all subitems.
Target: Numbers column — updates whenever a subitem changes. Triggers "When column changes to greater than 40, notify..." automation.
Columns used: {Subitem's Story Points} (Numbers).
Flag a project when any subitem is overdue:
IF(MAX({Subitem's Days Remaining}) < 0, "At Risk", "On Track")Result: "At Risk" if the latest-running subitem is past its deadline.
Target: Status column — project status flips to "At Risk" when any subitem overruns.
Columns used: {Subitem's Days Remaining} (Numbers).
List all subitem assignees on the parent:
CONCATENATE({Subitem's Assignee#Names}, ", ")Result: "Alice, Bob, Carol" — everyone working on subitems of this project.
Target: Text column — a single comma-separated list of all subitem assignees.
Columns used: {Subitem's Assignee#Names} (People, #Names property).
See Subitem Rollup References for the full rollup syntax reference.
Next Steps
- Subitem Rollup References — aggregate subitem values in parent formulas
- Working with Dates — FORMAT_DATE codes, UTC gotchas, and working day configuration
- Function Reference — all 57 functions with syntax and examples
- Troubleshooting — health view, common errors, FAQ, and support
Subitem Rollup References
Aggregate subitem column values in parent item formulas using Subitem's syntax, with SUM, AVERAGE, MAX, MIN, COUNT, CONCATENATE, and MEDIAN.
Working with Dates
Format dates with FORMAT_DATE codes, handle UTC gotchas in text columns, and configure working days for WORKDAY and WORKDAYS functions.