HR — ClickUp delivery feed (Layer 4)
HEALTHYHR & Administration · production · 1 dataset
- 1. Template
- 2. Upload
- 3. Dry run
- 4. Confirm
- 5. Four-eyes
STEP 1 · THE TEMPLATE IS GENERATED FROM THE REGISTRY
Exact columns, types, enum domains, one example row, header locked, and the date and number columns preformatted as Text — because Excel turns 2026-09 into a date and 01.5 into 1 May, and it does it silently.
STEP 2 · UPLOAD
FN_close_2026-09.csv
18 kB · detected UTF-8 with BOM · cap 50 MB / 200,000 rows
Above 200,000 rows, use the API. Encoding is detected rather than assumed: a CP1258 file is rejected with a clear message rather than stored as Tỷ lệ.
THE TRAPS THIS DOOR IS BUILT AROUND
- · Excel writes 01/09/2026. We refuse rather than guess between 1 Sep and 9 Jan.
- · 1,5 is 1.5 in one locale and 15 in another. The template declares the locale; a mismatch is refused.
- · Vietnamese diacritics: UTF-8 with or without BOM is fine, CP1258 is refused with a message rather than stored as mojibake.
- · 400 trailing blank rows from Excel are trimmed and reported, so the row count still reconciles against the source.
- · An identical re-upload is a no-op, not a restatement.