Upload / PMS Sync

Business date 2026-08-09 — external process posts to /api/pms/sync; use this helper to test and inspect state changes
Test upload (paste Hyatt roomMatrix or PMS payload JSON)

The API accepts either format. https://ca.hyatt.com/... matrix or {hotelCode,businessDate,rooms:[]}. On real deploys, your external process will POST to /api/pms/sync.

Hotel code hint: MEMZW
What happens on subsequent uploads
  • If a serviced/checked-out room becomes vacant dirty → a new follow-up task is created (reason EARLY_DEPARTURE or REDIRTY_AFTER_COMPLETION).
  • If a new workload appears after assignment, the task keeps its housekeeper until a manager explicitly returns it to the pool.
  • PMS/board mismatches create discrepancies (visible on Reconciliation & All Rooms).
  • If the board is locked, the sync is recorded but board rows aren't changed — unlock the board first.
  • Old PMS snapshots are rejected if generatedAt is older than last sync.
Tip: run npm run db:seed to generate realistic rooms (156 from sample), 6 housekeepers, a board and two PMS uploads — the second one simulates redirty state changes.
Current PMS snapshot
Open board →
Latest received: 8/10/2026, 1:08:17 AM126 rooms in DB snapshot
126 new follow-ups ever8 active discrepancies
Recent import issues (0)
No issues for this date.
Recent follow-up tasks (from PMS changes)
0101INITIAL_BOARD
VACANT_READY
0105INITIAL_BOARD
VACANT_READY
0107INITIAL_BOARD
VACANT_READY
0125INITIAL_BOARD
VACANT_READY
0218INITIAL_BOARD
VACANT_READY
0219INITIAL_BOARD
VACANT_READY
0220INITIAL_BOARD
VACANT_READY
0221INITIAL_BOARD
VACANT_READY
0223INITIAL_BOARD
VACANT_READY
0225INITIAL_BOARD
VACANT_READY
0306INITIAL_BOARD
VACANT_READY
0308INITIAL_BOARD
VACANT_READY
0310INITIAL_BOARD
VACANT_READY
0312INITIAL_BOARD
VACANT_READY
0313INITIAL_BOARD
VACANT_READY
0318INITIAL_BOARD
VACANT_READY
0319INITIAL_BOARD
VACANT_READY
0321INITIAL_BOARD
VACANT_READY
0323INITIAL_BOARD
VACANT_READY
0401INITIAL_BOARD
VACANT_READY
0402INITIAL_BOARD
VACANT_READY
0404INITIAL_BOARD
VACANT_READY
0405INITIAL_BOARD
VACANT_READY
0406INITIAL_BOARD
VACANT_READY
0407INITIAL_BOARD
VACANT_READY
0408INITIAL_BOARD
VACANT_READY
0409INITIAL_BOARD
VACANT_READY
0410INITIAL_BOARD
VACANT_READY
0411INITIAL_BOARD
VACANT_READY
0413INITIAL_BOARD
VACANT_READY
0414INITIAL_BOARD
VACANT_READY
0417INITIAL_BOARD
VACANT_READY
0418INITIAL_BOARD
VACANT_READY
0420INITIAL_BOARD
VACANT_READY
0421INITIAL_BOARD
VACANT_READY
0422INITIAL_BOARD
VACANT_READY
0423INITIAL_BOARD
VACANT_READY
0501INITIAL_BOARD
VACANT_READY
0503INITIAL_BOARD
VACANT_READY
0504INITIAL_BOARD
VACANT_READY
0506INITIAL_BOARD
VACANT_READY
0516INITIAL_BOARD
VACANT_READY
0517INITIAL_BOARD
VACANT_READY
0518INITIAL_BOARD
VACANT_READY
0521INITIAL_BOARD
VACANT_READY
0522INITIAL_BOARD
VACANT_READY
0523INITIAL_BOARD
VACANT_READY
0604INITIAL_BOARD
VACANT_READY
0606INITIAL_BOARD
VACANT_READY
0607INITIAL_BOARD
VACANT_READY
0612INITIAL_BOARD
VACANT_READY
0613INITIAL_BOARD
VACANT_READY
0614INITIAL_BOARD
VACANT_READY
0616INITIAL_BOARD
VACANT_READY
0618INITIAL_BOARD
VACANT_READY
0619INITIAL_BOARD
VACANT_READY
0621INITIAL_BOARD
VACANT_READY
0622INITIAL_BOARD
VACANT_READY
0617INITIAL_BOARD
OCCUPIED_NO_SERVICE
0625INITIAL_BOARD
OCCUPIED_NO_SERVICE
0512INITIAL_BOARD
OUT_OF_ORDER
0513INITIAL_BOARD
OUT_OF_ORDER
0510INITIAL_BOARD
OUT_OF_ORDER
0511INITIAL_BOARD
OCCUPIED_NO_SERVICE
0519INITIAL_BOARD
STAYOVER_SERVICE
0419INITIAL_BOARD
OCCUPIED_NO_SERVICE
0415INITIAL_BOARD
OCCUPIED_NO_SERVICE
0416INITIAL_BOARD
STAYOVER_SERVICE
0303INITIAL_BOARD
OCCUPIED_NO_SERVICE
0304INITIAL_BOARD
OCCUPIED_NO_SERVICE
0425INITIAL_BOARD
OCCUPIED_NO_SERVICE
0301INITIAL_BOARD
OCCUPIED_NO_SERVICE
0302INITIAL_BOARD
OCCUPIED_NO_SERVICE
0309INITIAL_BOARD
OCCUPIED_NO_SERVICE
0307INITIAL_BOARD
OCCUPIED_NO_SERVICE
0212INITIAL_BOARD
OUT_OF_ORDER
0210INITIAL_BOARD
OUT_OF_ORDER
0123INITIAL_BOARD
STAYOVER_SERVICE
0122INITIAL_BOARD
OCCUPIED_NO_SERVICE
0508INITIAL_BOARD
OUT_OF_ORDER
0505INITIAL_BOARD
OUT_OF_ORDER
0514INITIAL_BOARD
OCCUPIED_NO_SERVICE
0515INITIAL_BOARD
OCCUPIED_NO_SERVICE
0403INITIAL_BOARD
OUT_OF_ORDER
0520INITIAL_BOARD
FULL_SERVICE
0525INITIAL_BOARD
STAYOVER_SERVICE
0412INITIAL_BOARD
OCCUPIED_NO_SERVICE
0601INITIAL_BOARD
OCCUPIED_NO_SERVICE
0608INITIAL_BOARD
OCCUPIED_NO_SERVICE
0609INITIAL_BOARD
OUT_OF_ORDER
0605INITIAL_BOARD
OUT_OF_ORDER
0602INITIAL_BOARD
OCCUPIED_NO_SERVICE
0603INITIAL_BOARD
OCCUPIED_NO_SERVICE
0611INITIAL_BOARD
OCCUPIED_NO_SERVICE
0610INITIAL_BOARD
OUT_OF_ORDER
0305INITIAL_BOARD
OCCUPIED_NO_SERVICE
0314INITIAL_BOARD
OCCUPIED_NO_SERVICE
0315INITIAL_BOARD
OCCUPIED_NO_SERVICE
0311INITIAL_BOARD
OCCUPIED_NO_SERVICE
0316INITIAL_BOARD
OCCUPIED_NO_SERVICE
0317INITIAL_BOARD
OCCUPIED_NO_SERVICE
0204INITIAL_BOARD
OUT_OF_ORDER
0325INITIAL_BOARD
OCCUPIED_NO_SERVICE
0205INITIAL_BOARD
OUT_OF_ORDER
0202INITIAL_BOARD
STAYOVER_SERVICE
0203INITIAL_BOARD
OUT_OF_ORDER
0201INITIAL_BOARD
STAYOVER_SERVICE
0322INITIAL_BOARD
OCCUPIED_NO_SERVICE
0320INITIAL_BOARD
OCCUPIED_NO_SERVICE
0208INITIAL_BOARD
OUT_OF_ORDER
0103INITIAL_BOARD
STAYOVER_SERVICE
0104INITIAL_BOARD
STAYOVER_SERVICE
0222INITIAL_BOARD
OUT_OF_ORDER
0102INITIAL_BOARD
OCCUPIED_NO_SERVICE
0615INITIAL_BOARD
OCCUPIED_NO_SERVICE
0502INITIAL_BOARD
OCCUPIED_NO_SERVICE
0623INITIAL_BOARD
OCCUPIED_NO_SERVICE
0620INITIAL_BOARD
STAYOVER_SERVICE
0509INITIAL_BOARD
OUT_OF_ORDER
0507INITIAL_BOARD
OUT_OF_ORDER
0209INITIAL_BOARD
OUT_OF_ORDER
0206INITIAL_BOARD
OUT_OF_ORDER
0207INITIAL_BOARD
OCCUPIED_NO_SERVICE
0216INITIAL_BOARD
STAYOVER_SERVICE
0214INITIAL_BOARD
OUT_OF_ORDER
0211INITIAL_BOARD
OUT_OF_ORDER
Active discrepancies
0519
PMS_CLEAN_BOARD_REQUIRES_CLEANING
PMS: Clean • Board: STAYOVER_SERVICE
0416
PMS_CLEAN_BOARD_REQUIRES_CLEANING
PMS: Clean • Board: STAYOVER_SERVICE
0123
PMS_CLEAN_BOARD_REQUIRES_CLEANING
PMS: Clean • Board: STAYOVER_SERVICE
0520
PMS_CLEAN_BOARD_REQUIRES_CLEANING
PMS: Clean • Board: FULL_SERVICE
0525
PMS_CLEAN_BOARD_REQUIRES_CLEANING
PMS: Clean • Board: STAYOVER_SERVICE
0103
PMS_CLEAN_BOARD_REQUIRES_CLEANING
PMS: Clean • Board: STAYOVER_SERVICE
0620
PMS_CLEAN_BOARD_REQUIRES_CLEANING
PMS: Clean • Board: STAYOVER_SERVICE
0216
PMS_CLEAN_BOARD_REQUIRES_CLEANING
PMS: Clean • Board: STAYOVER_SERVICE