User guide

Locations and Sites

Looking for what it does rather than how to use it? Read the Locations and Sites overview .

What it is

A Location is a physical place: a building, a floor, a server room, a rack, a customer site, a service vehicle. Locations nest inside each other, and the things you manage — assets, spare-parts stock, subnets, VLANs, wall jacks, receiving sessions, purchase-order deliveries — attach to one, so you can always answer “what is at this site, and how full is it?”


Concepts

NounWhat it is
LocationOne physical place. Has a type, an optional short code, an address, and a parent.
HierarchyParent/child nesting to any depth: Site → Floor → Room → Rack.
Materialized pathEach location stores its ancestor chain, so a whole subtree can be rolled up at once.
Floor planAn uploaded image of a location, with clickable hotspots that link to sites/assets.
Rack elevationA U-by-U front/rear layout of a RACK location.
PDUA power distribution unit inside a location, with a measured draw in watts.
Environmental sensorA temperature / humidity / airflow / leak / door / smoke reading point.
Access grantWho may enter, by what means (key, badge, PIN, biometric, combination, remote, escorted), until when.
DocumentA file attached to a site — lease, floor plan PDF, permit, wiring diagram.
Audit logEvery create, edit, move and archive of a location, field by field.

Location types

WAREHOUSE, STOREROOM, CUSTOMER_SITE, VEHICLE, ZONE, RACK, SHELF, BIN, DATA_CENTER, BUILDING, FLOOR, WING, ROOM, CLOSET, CAGE, ROW, and CUSTOM — when you pick CUSTOM, the label you type is stored in customLabel and shown everywhere the type would be.


Roles and permissions

Reads are open to every role in every portal. Every mutation — locations and all sub-resources — requires organization administrator or above.

ActionCUSTOMERpower userorganization administratorMSP technicianMSP administratorplatform administrator
View locations, tree, detail
View assets / stock / power at a site
Create, edit, re-parent, archive
Floor plans, racks, PDUs, sensors
Access grants, documents
Network ports, panels, connections

MSP technician ranks above organization administrator in the hierarchy, so organization administrator is deliberately the floor: an MSP technician floor would be stricter and would lock organization admins out of their own sites.

Portals

PortalPathWhat it shows
MSP/msp/locationsThe MSP’s own sites plus every managed client’s
Org/org/locationsThat organization’s sites
Customer/user/locationsRead-only list and detail of the organization’s sites

Visibility on the MSP side resolves through AccountManagementLink, not the primary managedByAccountId alone — a co-managing MSP sees the client’s sites too.


Walkthroughs

Build a site hierarchy

  1. Locations → New Location. Give it a name, pick BUILDING (or DATA_CENTER), and leave Parent Location empty so it becomes a root.
  2. Fill in the address. Start typing in the address box and the autocomplete fills city, province, postal code, latitude, longitude and the IANA timezone in one go.
  3. Optionally give it a code — a short label like YYC-HQ. Codes are unique within your account; a duplicate is refused with a clear message.
  4. New Location again, this time setting Parent Location to the building and type FLOOR, then ROOM, then RACK. For a rack, set Total Rack Units (usually 42) — without it there is no elevation to draw.
  5. Back on Locations, the left-hand tree shows the nesting. Click a node to filter the table to its children.

To re-parent later, open the location, Edit Location, and change Parent Location. Every descendant’s stored ancestor chain is rewritten in the same transaction, and a move that would put a site under its own descendant is refused.

Put assets and stock at a site

  1. Assets → New Asset (or open an existing asset and Edit).
  2. Under Site, pick the location. The list offers only active sites your tenant owns; an identifier from another tenant is refused.
  3. Use Location detail for the free-text bit that is not a record — “Floor 2, desk 15”.
  4. Open the site and the Assets tab now lists it, the header Assets tile counts it, and the site can no longer be archived while it is there.
  5. Stock arrives through Receiving, which requires a location. It then shows on the site’s Inventory tab with on-hand, reserved and available quantities.

Lay out a rack

  1. Open a RACK location. The Rack View tab appears only for that type.
  2. Click any U slot. Set the front or rear side, a label, an asset identifier and the slot’s power draw.
  3. Save. Failures appear in the dialog — a permission refusal is no longer indistinguishable from success.
  4. Clear empties a slot. Clearing an already-empty slot is treated as done; anything else reports.
  5. Rack Summary gives occupied vs total U and the front/rear split.

Track power and environment

  1. Open a site → Power & Environment.
  2. Add PDU: name, side (front/rear/left/right), outlet count, max amps, voltage, phase, and the measured draw in watts.
  3. Add Sensor: type, warning and critical thresholds, last reading.
  4. The Power Budget panel compares the site’s maxPowerWatts against the summed draw of every PDU in the site and everything under it — a rack’s PDU counts toward the building that contains it.
  5. Locations → Capacity Planning rolls the same numbers up across every site, flags anything at 80% (warning) or 90% (critical) on rack or power, and lists the offenders.
  1. Open a site → Floor PlanAdd Floor Plan. Upload a PNG or JPEG.
  2. Rename / Scale sets the plan’s name and its real-world scale in pixels per metre. Make Primary promotes one plan when a site has several.
  3. Edit Annotations places hotspots. A hotspot may link to another location or to an asset; both are resolved inside your tenant before they are saved, so a hotspot can never point at another tenant’s record.
  4. In view mode, clicking a hotspot navigates to that site or asset in the portal you are already in.

Control site access

  1. Open a site → Access.
  2. Grant Access: pick a person (or type a name, email and phone for an external holder), choose the access type, record the badge number, PIN or combination, set an access level, and set an expiry if it is temporary.
  3. Revoke stamps revokedAt; the grant stays on the record as history.

Read the change history

Open a site → Audit Log. Every create, field-level edit, move and archive is recorded with who did it, from which IP, and when. Filter by action, page through with Previous/Next — the header count is the true total, not the page size.


Configuration

SettingWhat it doesIf unset
nameDisplay nameRequired
typeOne of the 17 location typesRequired
customLabelThe label shown when type = CUSTOMFalls back to “Custom”
codeShort site code, unique within the accountBlank; the site is identified by name
Address fieldsStreet, city, province, postal code, country (default CA)Address panel shows dashes
latitude / longitudeRecorded from the address autocomplete; shown as coordinatesCoordinates row hidden
timezoneIANA zone; drives the site’s local clock on the detail pageNo local-time row. See Limits
parentIdParent in the hierarchyThe location is a root
customerOrgIdLinks a CUSTOMER_SITE to a client organizationNo Customer row
maxCoolingBTU, maxWeightKgRecorded and displayed; no calculation reads themRow hidden
totalRackUnitsRack height in U; required to draw an elevationRack View asks you to set it
floorArea, ceilingHeightRecorded and displayedRow hidden
commissionedAt, decommissionedAtIn-service and out-of-service datesRows show dashes
primaryContactPersonId or static name/email/phoneSite contact; a linked person wins over the static fieldsContact panel empty
photoUrlSite photo shown on the Overview tabNo photo panel
sortOrderOrdering among siblings0; ties break on type then name
isActiveArchived sites read “Inactive” and are hidden from the tree by defaulttrue

Plan tiers

Locations and Sites carries no plan gate. There is no entitlement check, no tier check and no seat cap anywhere in it. Every paying tier gets the whole feature. What a person sees is decided by portal and role only.

Note that assets do carry a per-tier cap (assertAssetLimit on asset creation), so the number of things you can place at a site is bounded by your asset entitlement even though the sites themselves are not.


Troubleshooting

MessageCause
A location with code "X" already existsCodes are unique per account. Pick another or clear the other site’s code.
Unknown timezone "X" — use an IANA zone such as America/EdmontonThe zone is not one Node’s ICU data knows. Use Region/City.
Location cannot be its own parentparentId equals the location’s own id.
Cannot move location under its own descendantThe target parent is somewhere below this node. Move the subtree first.
Parent location belongs to a different organizationA site’s tree cannot span two tenants.
Cannot delete location with child locationsArchive or re-parent the children first.
Cannot delete location with assigned assetsMove the assets to another site, or clear their site.
Cannot delete location with inventory itemsTransfer the stock first.
Cannot delete location with active receiving sessionsComplete or cancel the receiving session.
Cannot permanently delete a location with receiving historyPermanent delete only; archive instead to keep the history.
Cannot permanently delete a location with network records (subnets, VLANs or ports) assigned to itDetach the IPAM records first, or archive instead.
Cannot permanently delete a location referenced by a contractRemove the contract’s site scoping first.
Location is not a rackRack-unit routes only accept type = RACK.
Position must be between 1 and NThe rack’s totalRackUnits is smaller than the slot you asked for.
Customer organization not foundcustomerOrgId is not an organization you can see. Foreign and non-existent read the same.
Linked location not found / Linked asset not foundA floor-plan hotspot pointed outside your tenant.
locationId does not reference a location in your organizationAn asset was filed against a site you do not own.
Ship-to location not foundA purchase order named a site outside your account.
Organization not managed by this MSPThe organizationId filter is outside your managed set.
Insufficient roleMutations require organization administrator or above.

Limits and known behaviour

  • timezone is informational. It drives the site’s local clock on the detail page and nothing else. SLA clocks, business hours and scheduling windows all resolve their zone from the organization-level BusinessHours record. A site in America/Vancouver under an organization whose business hours say America/Toronto is worked to Toronto hours.
  • maxCoolingBTU, maxWeightKg, floorArea and ceilingHeight are recorded and displayed but nothing calculates against them. Only maxPowerWatts and totalRackUnits drive utilization.
  • Latitude and longitude are recorded and displayed as coordinates. There is no map view, no distance calculation and no routing.
  • The Capacity Planning dashboard rolls up root-level sites, up to 100 of them, fetching each one’s stats. Each site’s figure already includes its whole subtree.
  • Deleting is archiving. DELETE sets isActive = false and keeps the row. Permanent deletion exists on the org router only, and refuses any site that still has records pointing at it.
  • Archiving does not cascade. A site with children cannot be archived at all; archive or re-parent the children first.
  • /ancestors, /descendants, /move, /reorder, /inventory and the single-floor-plan GET are org-scope only. The MSP router does not serve them. Re-parenting from the MSP portal goes through PUT /:id, which does the same work.
  • Rack elevations need a height. A RACK with no totalRackUnits shows a prompt to set one rather than drawing a default.
  • The audit log records locations, not their sub-resources. Creating a PDU or revoking an access grant is not written to LocationAuditLog.

Questions this guide did not answer?

Ask us. You will get a reply from someone who uses the product every day.

Book a demo Contact us

A 30-minute walkthrough against your own workflow. No slides.