Availability Matrix — user guide
A developer's inventory “chessboard” for Creatio: floors × sections, one cell per unit, with statuses, filters, live updates and a rich unit panel. This page walks through every feature with an emulated interface.
What it is
The Availability Matrix is a Creatio Freedom UI remote-module component. Place it on any record page (a Lead, an Opportunity, a custom section) or a dashboard. It reads the developer's inventory and draws it as a grid where columns are sections and rows are floors — each cell is one unit, coloured by its sales status.
- Hierarchical. Navigate Project → Building → Board → Unit; the grid is always one building.
- Role-aware. Prices and technical floors are shown or hidden depending on who is looking.
- Reusable. Every entity and column name can be remapped in Settings, so it fits a custom data model.
- Safe by design. All data goes through the Creatio devkit Model API — no direct requests from the browser.
Access & roles
The component needs the SynChessboard.Use licence. Without it, the board shows a licence notice and loads no data. What you see also depends on your role:
| Role | Prices | Technical floors | Extras |
|---|---|---|---|
| developer-admin | All units | Visible | Full settings, all actions |
| sales-manager | All units | Visible | Reserve / Hold, edit deals |
| broker | Available & reserved only | Hidden | “My assignments only” filter |
| buyer | Available & reserved only | Hidden | Read-only public view |
The board
The board draws one building. Columns are sections, rows are floors — the top floor sits at the top. Each cell shows the unit number and, when enabled, a compact price. The toolbar carries live counters and the main controls.
Emulated board — click a cell below to preview the unit panel. Toolbar left→right: filters, legend, zoom in / out / fit, refresh, settings.
Zoom & pan
Scroll to zoom around the cursor, drag empty space to pan, or press “Fit” to centre the whole building. Fit runs automatically on load.
Virtualization
Only cells inside the viewport are drawn, so towers with thousands of units stay smooth. The threshold is configurable in Settings → Advanced.
Statuses & legend
Every unit sits in one status of its sales lifecycle. The colour is the same across board, legend and unit panel. The legend also counts how many units are in each status for the current building and filter.
The lifecycle runs available → held → reserved → contracted → paid → registered → sold. Transitions are validated (role + reason) on both client and server; blocked and unavailable are administrative states.
| Status | Meaning | Public |
|---|
Filters
Open the filter panel from the toolbar to narrow the board. Toggle status chips, choose unit type or room count, and set area or price ranges. Brokers get a “My assignments only” switch. Apply redraws the board and recalculates the counters.
Emulated filter panel — active values are filled indigo/green pills.
Unit panel
Click any cell to open the unit panel on the right. It loads everything about the unit in parallel: status, key attributes, price, image gallery, active reservations and holds, status history, audit log and the server-computed effective price.
- Status pill & attributes. Number, type, floor, section, area, rooms — as caption-over-value fields.
- Price block. Base and effective price with a per-m² figure; the effective price shows a rule-by-rule trace.
- Gallery. Swipe unit images loaded from the image detail.
- History & audit. Active reservations, holds, status changes and the audit log — each opens its full record.
- Actions. Add (write the unit to the host record), View details, Reserve, Hold — each can be hidden globally in Settings.
Live updates
With auto-refresh on, the board keeps itself current. A push channel is the primary signal; polling is only a fallback if the subscription can't start. Both are configurable.
Push channel
Subscribes to the Creatio message channel named in Settings (default SynChessboardEvents). Events for the current building trigger a quiet, debounced redraw — no spinner.
Polling fallback
Runs only if push isn't available, on the interval from Settings (seconds). Set the interval to 0 to rely on push alone.
Settings
The gear opens a settings dialog with a Form and a JSON mode. Settings are stored per component instance (by component name) in SynChsbConfig, so two boards on different pages keep separate configuration.
Emulated Settings — seven tabs; the Basic tab shown.
| Tab | What it controls |
|---|
Syn* to Usr*), so the same component works against a different Creatio configuration without code changes.Host record link
When the board lives on a record page (a Lead, an Opportunity), it can write the chosen unit back to that record. Bind the page's id to the component's recordId input (usually $Id), then name the target columns in Settings → Host.
The “Add” button
Appears only when a host schema, a unit column and a record id are all set. It writes the selected unit's id — and, optionally, the project and building ids — to the host record and turns into “Added ✓”.
Reserve / Hold prefill
Reserve and Hold open the matching Creatio page with the unit prefilled; if a record link column is configured, the host record is prefilled too.
Localization & debug
The interface ships in three languages — Ukrainian, Russian and English (this guide covers all three; use the switch at the top). The language follows the Creatio user culture automatically, and can be pinned in Settings → Display. Business data (project, building and unit names) is localized separately by the data model.
Diagnostic logging
Verbose logs are off by default. Turn them on from the browser console when troubleshooting:
| window.__synChessboardDebug = true | This session only |
| localStorage.setItem('synChessboardDebug','1') | Persists across reloads |
Warnings and errors are always shown.
Quick reference
Inputs bound from the host page in the Freedom UI designer:
| Input | Typical binding | What it does |
|---|---|---|
| buildingId | $Id | Open a building's board directly |
| recordId | $Id | Host record for Add / prefill |
| componentName | — | Config key for this instance |
| config | JSON | Merge extra config at runtime |
Creatio prerequisites:
- Licence
SynChessboard.Use - Per-instance config table
SynChsbConfig - Push channel (default)
SynChessboardEvents - Default entities
SynDevProject · SynBuilding · SynSection · SynFloor · SynUnit