Skip to content

Settings — Locations

The Settings ▸ Locations page is the canonical list of every physical workplace your organization operates: offices, branches, remote-hub addresses. Each location is configured once here and referenced from many surfaces:

  • The HQ picker on Settings ▸ Organization
  • Default-work-location pickers on team-member profiles
  • Hardware-inventory assignment records
  • The Directory ▸ Map view’s marker positions
  • The address footer on audit-stamped PDFs

Settings Locations — Acme Financial Group demo tenant

Standard PageHeader with the title Locations and a one-line description. (The page already used PageHeader before #211; this iteration just wires the help/docs icons.)

Below the header: a count of locations and the current HQ name on the left, the Add Location button on the right.

Each row carries:

  • Name + HQ badge (when applicable)
  • Address (single-line, geocoded)
  • Phone
  • Timezone
  • Status pill (Active / Archived)
  • Row actions: Edit, Set as HQ, Archive, Delete

Right-hand slide-out for create/edit captures:

  • Name (required)
  • Address fields (line 1/2, city, state, postal, country)
  • Phone
  • Timezone (IANA dropdown; defaults to org timezone)
  • Set as HQ checkbox

Exactly one location holds the HQ flag at any time. Setting a new location as HQ:

  1. Server transactionally un-HQs the previous one
  2. Emits org.hq_location_updated to the audit log
  3. Refreshes the picker on Settings ▸ Organization on next load

The HQ flows into:

  • Audit PDF address footer
  • Client portal “About us” block (when the portal is enabled)
  • Directory Map default centering
ActionEffect
ArchiveSoft-delete; hidden from new-assignment pickers but visible on existing records
DeleteHard-delete; permitted only when the location has zero assignments

The platform is conservative about hard-deletes here — locations appear in audit records (e.g., “Hardware X was assigned to Location Y from 2024-2026”), and deleting Y would orphan that history. Archive is the safe default.

Address geocoding runs server-side on save:

  • Inputs: address line 1/2 + city + state + postal + country
  • Provider: external geocoder (configurable per environment)
  • Stored: lat, lng columns on the location record
  • Used by: Directory Map markers + audit PDF map renders

Geocoding failures don’t block save — the location is created with null lat/lng and a “geocoding failed” flag the UI displays inline. Edit + re-save with a more specific address to retry.

RoleViewManage
Owner / Admin
MemberIndirect (sees own assigned location)
ViewerIndirect
ActionEvent
Createlocation.created
Updatelocation.updated
Set HQorg.hq_location_updated (with old + new IDs)
Archivelocation.archived
Deletelocation.deleted

Events surface in Settings ▸ Audit Log.

SymptomMost likely causeFix
Cannot deleteLocation has assignmentsArchive instead, or reassign staff first
HQ won’t switchSave failed silentlyRe-save; check toast
Map marker misplacedGeocoding result impreciseEdit + re-save with a more specific address
Timezone doesn’t take effectUser session cachedSign out + back in
Archived location still in pickerUI cache staleHard-refresh