Skip to main content

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​

SALES DEMOOverviewData Explorer▾ SalesSales linesPeriods▾ Reference dataItemsCompaniesCustomers▾ ImportLoad the sample filesDashboardKPIs, charts, tables; a business unit filterScreenscascading filters: family → sub-family → itemPeriod closingvalidate, close, reopen; a closed period is read-onlyData ExplorerSales model, 10 analyses, a dashboardNomaflow jobssample files, loads by partition, the monthly digestAccounts and scopegroup, business unit, companyThe home pagea dashboard menu entryRead-only grid5,000 rows, filters firstImporta job page per fileOne app, every featurebuilt from Settings onlyThree demo userssame screens, other rows

The data​

TableHolds
ItemsThe items, with their family and sub-family.
CompaniesThe companies, with their business unit, region and currency.
CustomersThe customers met in the sales; the codes are added by each load, the names completed by hand.
Sales linesOne row per invoice line: period, company, item, customer, destination country, quantity, weight, revenue in the company's currency.
PeriodsOne 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:

EntryJobDoes
Items filenomademo-load-itemsLoads the item file (sheet Items: code, name, family, sub-family), replacing the table.
Companies filenomademo-load-companiesLoads the company file (sheet Companies: code, name, business unit, region, currency), replacing the table.
Sales file (one month)nomademo-load-salesLoads one month of invoice lines (sheet Sales).
Refresh periodsnomademo-refresh-periodsRebuilds the period rows from the loaded lines, keeping their status.
Load the sample filesnomademo-load-samplesLoads 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.

WidgetShows
Invoice lines, Latest period, Periods, Items soldThe 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 unitOne series per business unit, per period.
What needs attentionThe open periods to close, the companies without sales in the latest period.
Revenue by currency, Quantity by familyProportion bars — the totals first, then per business unit. The revenue is never added across currencies.
PeriodsEach period's status, who changed it and when.
Top items, Quantity by business unitThe 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:

  1. two report steps render the analyses Revenue by business unit and Quantity by company to Excel, over the previous month;
  2. a notify step 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:

UserRoleSees
demo_groupnomademo_groupEverything.
demo_bunomademo_scopedThe companies of one business unit.
demo_companynomademo_scopedOne 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​

  1. In Settings → Pools, a pool named nomademo pointing at an empty database.
  2. In Nomaflow, run nomademo-init-db.
  3. Open Sales demo from the application switcher, then Import → Load the sample files.
  4. Run nomademo-demo-accounts in Nomaflow to create the demo users.

What's next​