The sales demo
Sales demo is a small application shipped with Liberty Next to show, on one coherent subject, what the framework does without code: monthly invoice lines loaded from Excel, periods validated then closed, a home dashboard, free analysis in the Data Explorer, the AI assistant, a digest e-mailed every month, and users who see only their own company. Everything in it is configuration — connector, dictionary, screens, menus, dashboards, model, jobs — readable and editable in the Settings.
It is a showcase, not a product: open it to see a feature at work, copy what fits into an application of your own.
At a glance
The data
| Table | Holds |
|---|---|
| Items | The items, with their family and sub-family. |
| Companies | The companies, with their business unit, region and currency. |
| Customers | The customers met in the sales; the codes are added by each load, the names completed by hand. |
| Sales lines | One row per invoice line: period, company, item, customer, destination country, quantity, weight, revenue in the company's currency. |
| Periods | One row per loaded period: status (open, validated, closed), number of companies and lines, quantity, who changed the status and when, a comment. |
The revenue is in each company's own currency: it is never summed across currencies, so the analyses give it per currency or per company.
The screens
- Sales → Sales lines: the invoice lines, read-only, up to 5,000 rows. The grid opens empty: pick a period, a business unit, a family… first. The filters cascade — the companies follow the business unit, the sub-families the family, the items both.
- Sales → Periods: the loaded periods. The row menu offers Validate, Close and Reopen, each after a confirmation. A closed period is read-only in the grid — see Conditional fields — and a new load of that period is refused.
- Reference data → Items, Companies, Customers: the reference tables, editable.
Loading the files
The Import folder of the menu holds the loads, each a job page where the user picks the file, runs it and follows its log:
| Entry | Job | Does |
|---|---|---|
| Items file | nomademo-load-items | Loads the item file (sheet Items: code, name, family, sub-family), replacing the table. |
| Companies file | nomademo-load-companies | Loads the company file (sheet Companies: code, name, business unit, region, currency), replacing the table. |
| Sales file (one month) | nomademo-load-sales | Loads one month of invoice lines (sheet Sales). |
| Refresh periods | nomademo-refresh-periods | Rebuilds the period rows from the loaded lines, keeping their status. |
| Load the sample files | nomademo-load-samples | Loads the sample files shipped with the demo — every file at once, no upload. Run it again any time to reset the demo. |
The sample files ship with the application: about 320 items in six families, 14 companies in six business units, and six months of invoice lines (October to March). The data is synthetic and anonymous; a reload gives the same figures.
The sales load shows the file_load step at work:
- it replaces the partitions the file carries — year, month and company — in one transaction: reloading a corrected month replaces that month only, and a failed load leaves the previous data in place;
- a guard refuses the file when one of its periods is closed, with the reason in the log;
- rejected rows are offered for download under the log;
- the following steps add the new customers and refresh the period rows.
Two more jobs are run from Nomaflow → Jobs: nomademo-init-db creates the tables, nomademo-demo-accounts creates the demo users (below). The jobs are delivered without a schedule.
The home dashboard
Overview is the application's home page: the dashboard Sales overview, built on the synthesis widgets.
| Widget | Shows |
|---|---|
| Invoice lines, Latest period, Periods, Items sold | The figures, with a detail line: units, companies and customers; the latest period and its quantity; the periods still open; the families. |
| Monthly quantity by business unit | One series per business unit, per period. |
| What needs attention | The open periods to close, the companies without sales in the latest period. |
| Revenue by currency, Quantity by family | Proportion bars — the totals first, then per business unit. The revenue is never added across currencies. |
| Periods | Each period's status, who changed it and when. |
| Top items, Quantity by business unit | The largest quantities. |
The bar carries a period (all dates when the page opens) and a Business unit filter that narrows every widget whose query returns the business unit — no screen needed behind the widgets.
The Data Explorer
Data Explorer, right under Overview, opens the Data Explorer on the Sales model: the invoice lines at the centre, with the item (family, sub-family), the company (business unit, currency) and the customer around them.
The model ships ten shared analyses — quantity by business unit, by company, by family; revenue by currency, by business unit, by company; the monthly quantity, alone and by business unit as a pivot; the top items; the number of invoice lines — and the Sales overview dashboard that gathers them. They are a starting point: open one, change it, save it under another name.
The AI assistant
The application ships its starter questions under four headings — Sales, Periods, Loads, Reference data — with Which business unit sold the most last month? or How do I reload a month that was wrong?. The Sales lines screen has its own, which use the page context: Sum the quantities of the rows I see, by business unit.
Three playbooks — Load a month of sales, Validate or close a period, Analyse quantities and revenue — let the assistant walk a user through the application's procedures. All of it is visible and editable in Settings → AI.
The monthly digest
nomademo-monthly-digest is a scheduled digest without code:
- two
reportsteps render the analyses Revenue by business unit and Quantity by company to Excel, over the previous month; - a
notifystep sends them to the holders of the group role, the two files attached.
Schedule it on the first of the month once the e-mail account is set in Notifications.
Three users, three views
nomademo-demo-accounts creates two roles and three users, password demo:
| User | Role | Sees |
|---|---|---|
demo_group | nomademo_group | Everything. |
demo_bu | nomademo_scoped | The companies of one business unit. |
demo_company | nomademo_scoped | One company. |
Both roles grant the same things: the application's queries, its Data Explorer models and the assistant. The scoped role adds a data scope on the company, whose values come from each user's companies attribute. Sign in as each user in turn: the same screens, dashboard, analyses and exports show other rows, the totals included.
Load the companies (or the sample files) before running this job: it reads them to fill the users' attributes.
Setting it up
- In Settings → Pools, a pool named
nomademopointing at an empty database. - In Nomaflow, run
nomademo-init-db. - Open Sales demo from the application switcher, then Import → Load the sample files.
- Run
nomademo-demo-accountsin Nomaflow to create the demo users.
What's next
- Dashboards — the widgets and the export.
- Data Explorer — models, analyses, dashboards.
- Steps — file loads, reports and notifications.
- Roles and permissions — the data scope.