Availability Matrix
Guide · Creatio Freedom UI
Freedom UI view element

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.

Project → Building → Board → UnitDrill-down navigation
9 statusesColour-coded lifecycle
UA · RU · ENInterface languages
Push + pollingLive refresh
01

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.
02

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:

RolePricesTechnical floorsExtras
developer-adminAll unitsVisibleFull settings, all actions
sales-managerAll unitsVisibleReserve / Hold, edit deals
brokerAvailable & reserved onlyHidden“My assignments only” filter
buyerAvailable & reserved onlyHiddenRead-only public view
Server is the source of truth. Role rules in the UI are for display only — the Creatio server independently enforces read and write permissions.
04

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.

Tower A drag to pan · wheel to zoom Available 112 Reserved 34 Sold 94
Filters Legend

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.

05

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.

StatusMeaningPublic
06

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.

Status Available Reserved Sold
Rooms 1234+
Area —m²
Price —$
ResetApply

Emulated filter panel — active values are filled indigo/green pills.

07

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.
08

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.

Push and polling used to run at the same time and refresh twice. Now polling starts only as a fallback, and rapid events are debounced into a single redraw.
09

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.

Cell size in pixels
Cell size in pixels
Display currency
Interface language

Emulated Settings — seven tabs; the Basic tab shown.

TabWhat it controls
Reuse on any data model. The Schemas and Columns tabs remap every entity and field name (e.g. from Syn* to Usr*), so the same component works against a different Creatio configuration without code changes.
10

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.

Closing the panel without pressing Add asks whether to save the selection to the record — so a choice is never lost by accident.
11

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 = trueThis session only
localStorage.setItem('synChessboardDebug','1')Persists across reloads

Warnings and errors are always shown.

12

Quick reference

Inputs bound from the host page in the Freedom UI designer:

InputTypical bindingWhat it does
buildingId$IdOpen a building's board directly
recordId$IdHost record for Add / prefill
componentName—Config key for this instance
configJSONMerge 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