From 9b27041970cb3522fb1711d1a10badbb0d1bc8b3 Mon Sep 17 00:00:00 2001 From: Randall Stillwell Date: Tue, 7 Apr 2026 17:09:59 -0500 Subject: [PATCH] Fix Monday.com column type names: checkbox, status, numbers Monday.com API returns column types as "checkbox" (not "boolean"), "status" (not "color"), and "numbers" (not "numeric"). Added these as aliases in formatForColumnType so values are properly formatted. Made-with: Cursor --- src/lib/monday.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/lib/monday.ts b/src/lib/monday.ts index b604041..facebe1 100644 --- a/src/lib/monday.ts +++ b/src/lib/monday.ts @@ -157,12 +157,14 @@ function toCleanString(val: unknown): string | null { function formatForColumnType(colType: string, val: unknown): unknown | null { switch (colType) { - case "boolean": { + case "boolean": + case "checkbox": { const isChecked = val === true || val === "true"; return { checked: isChecked ? "true" : "false" }; } - case "color": { + case "color": + case "status": { const str = toCleanString(val); return str ? { label: str } : null; } @@ -181,6 +183,14 @@ function formatForColumnType(colType: string, val: unknown): unknown | null { return iso ? { date: iso } : str; } + case "numeric": + case "numbers": { + const str = toCleanString(val); + if (!str) return null; + const num = parseFloat(str); + return isNaN(num) ? null : String(num); + } + case "email": { const str = toCleanString(val); return str ? { email: str, text: str } : null; @@ -219,6 +229,8 @@ export function mapCardToColumnValues( const values: Record = {}; const columnTypes = ((columnMap._columnTypes as Record) ?? {}); + console.log("[mapCardToColumnValues] _columnTypes keys:", Object.keys(columnTypes).length, "sample:", JSON.stringify(Object.entries(columnTypes).slice(0, 5))); + for (const [cardField, rawColId] of Object.entries(columnMap)) { if (!rawColId || !cardField || cardField.startsWith("_") || typeof rawColId !== "string") continue; const colId = rawColId;