CSV Integration Schema: Keys

Last updated: October 5, 2026

This is the data format for Keys and Key Assignments coming into Housing.Cloud — physical or digital keys, who holds them, and what they open.

Column Type Required Notes
id string (unique) Yes Unique key identifier (match key for create-vs-update)
type enum Yes KEY, CARD, FOB, DIGITAL
assignedSisId string No SIS ID if the key is currently assigned
assignedSchoolEmail string No Email if assigned
building string Conditional InventoryBuilding.name. Required when any of floor/suite/room is set, or any opens* flag is true
floor string No InventoryFloor.name in building. Required when opensFloor=true; also disambiguates room
suite string No InventorySuite.name in building. Required when opensSuite=true; also disambiguates room
room string No InventoryRoom.name in building (+ floor/suite if given). Required when opensRoom=true
opensBuilding boolean No (default false) Key opens the resolved building
opensFloor boolean No (default false) Key opens the resolved floor
opensSuite boolean No (default false) Key opens the resolved suite (assignable to all students in the suite)
opensRoom boolean No (default false) Key opens the resolved room
opensOther string No Free-text label for openings not in inventory (e.g. shared mailbox)

Booleans accept true/false, 1/0, yes/no, or empty (= false), case-insensitive.

Validation Rules

  • Every row must open at least one of opensBuilding, opensFloor, opensSuite, opensRoom, or opensOther.
  • building is required if any of floor/suite/room or any opens* flag is set.
  • opensFloor=true requires floor; opensSuite=true requires suite; opensRoom=true requires room.
  • Each enabled opens* flag must resolve its inventory record or the row is rejected — so provide a complete, valid inventory path (use floor/suite to disambiguate duplicate room names within a building).
  • A lookup field supplied without its matching opens* flag is allowed but silently ignored.

Delivery

Ingress · CSV.

Attachments