Commit graph

7 commits

Author SHA1 Message Date
Randall Stillwell
b2c29120cd Add First Time Guest Date and Salvation Date fields
- Add firstTimeGuestDate and salvationDate (DateTime?) to Prisma schema
- Auto-compute dates during OCR: find previous Sunday from card createdAt
  when visitType indicates first/second time guest or nextStep includes
  Baptism
- Add editable date inputs on card detail page in Workflow section
- Add to Monday.com mappable fields in settings for column mapping
- Add table columns (hidden by default) for both date fields
- Handle full ISO datetime strings in Monday.com date parser
- Apply same logic during reprocessing

Made-with: Cursor
2026-04-09 17:20:24 -05:00
Randall Stillwell
ec51c049c3 Fix Monday.com date parsing and normalize dropdown labels
- Rewrite parseToISO to handle many OCR date formats: "july 20, 02",
  "20/May/1999", "08/JUN/26", "Oct / 02 / 2004", "Feb 19, 2016", etc.
- Return null instead of raw string when date parsing fails, preventing
  Monday.com ColumnValueException for unparseable dates
- Normalize long nextStep text from pre-update OCR runs (e.g.
  "Expressing my faith in Jesus..." -> "Baptism") before sending to
  Monday.com dropdowns

Made-with: Cursor
2026-04-08 23:14:46 -05:00
Randall Stillwell
9b27041970 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
2026-04-07 17:09:59 -05:00
Randall Stillwell
d7d859f49d Fix Monday.com push: format column values by column type
The root cause was sending raw text to checkbox, status, dropdown, and
date columns. Monday.com requires specific JSON structures per type.

- Store column types in _columnTypes when Fetch Columns is clicked
- Format boolean/checkbox: {"checked": "true"/"false"}
- Format status/color: {"label": "value"}
- Format dropdown: {"labels": ["val1", "val2"]}
- Format date: parse MM/DD/YYYY to {"date": "YYYY-MM-DD"}
- Format email/phone/link with proper nested structures
- Text columns pass through as plain strings

Made-with: Cursor
2026-04-07 16:01:44 -05:00
Randall Stillwell
a0f5022de2 Fix Monday.com push failures and improve error visibility
- Fix toast showing success when all cards fail (now shows error/warning)
- Fix column value formatting: booleans use checkbox format, JSON arrays
  join as comma-separated strings, objects serialize properly
- Filter out empty/null/undefined string values before sending to API
- Add verbose logging to Monday.com GraphQL client for debugging

Made-with: Cursor
2026-04-07 13:50:44 -05:00
Randall Stillwell
f87ab36493 Fix Monday.com webhook subscription and improve API client
- Add API-Version header to all Monday.com GraphQL requests
- Switch create_webhook/delete_webhook to inline values matching Monday's
  documented syntax (fixes Internal Server Error on subscribe)
- Add extended error details from Monday.com GraphQL responses

Made-with: Cursor
2026-04-07 13:07:46 -05:00
Randall Stillwell
72375d2fae Add Integration Hub: Monday.com sync, webhooks, activity log, notifications
- Bidirectional Monday.com integration with column mapping and file uploads
- Generic webhook system with HMAC-SHA256 signing and configurable events
- Field-level activity log with diff tracking on card detail page
- Persistent notification center with unread badge in header
- Event dispatcher wired into OCR pipeline, card edits, exports, and deletes
- New Prisma models: ActivityLog, Notification; new fields on AppSettings and ResponseCard
- Settings UI with full Monday.com and webhook configuration panels

Made-with: Cursor
2026-04-07 12:23:29 -05:00