Hayat Reports: access, settings and limits
reports.hayaterp.com/links ↗For business admins and BI managers — the BI reports module and its four permissions with the role defaults, dataset permissions, the public links switch, email schedules, the limits (5,000 rows by default, 50,000 at most, 15 seconds, rate limits, 60-second cache) and known data notes.
This page is for the business admin who gives people access to Hayat Reports, and for the BI manager (bi.manage) who looks after its settings. Hosting and set-up notes for whoever runs the Hayat server are at the end.
The module and the permissions
Hayat Reports is the module BI reports. It is on for a new subscriber unless the Hayat team switches it off (admin.hayaterp.com → Subscribers → subscriber → Modules, see Modules and access). When it is off the ERP menu item Overview → BI reports ↗ disappears and reports.hayaterp.com says Hayat Reports is not open for you.
Give the permissions in Settings → Roles (module BI reports):
| Permission | Key | Kind | Lets a user |
|---|---|---|---|
| Open BI reports and dashboards shared with them | bi.view | View | Sign in to Hayat Reports; open, run and export what is shared with them; favourites. Needed for everything else. |
| Build their own BI reports and dashboards | bi.create | Edit | The report builder and dashboard designer, ad-hoc questions, previews, templates, folders, duplicate. |
| Share BI reports and dashboards, email schedules and public links | bi.share | Action | Share, schedules and public links. |
| All BI reports and dashboards of the company, templates and BI settings | bi.manage | Approve | Every report and dashboard of the company (see, change, delete), company folders, company templates, the public links switch. |
| Ready-made role | Gets |
|---|---|
| Admin | All four. |
| Management | All four. |
| Accountant | bi.view, bi.create. |
| Branch Manager | bi.view. |
| Auditor | bi.view (with every other View permission). |
| Everyone else | None — copy a role and tick what they need. |
Dataset permissions
The BI permissions open the site; the data still needs each dataset's own permission and module. A user without See ledgers never sees General ledger lines in the dataset list, cannot query it, and sees 🔒 You do not have access to … data on a dashboard tile that uses it — even on a dashboard shared with the whole company. The full list is in The 25 datasets; in short:
| Data | Permission (any of) |
|---|---|
| General ledger lines | finance.view |
| Receivables / Payables | sales.view or finance.view / trading.view or finance.view |
| Sales invoice lines, POS receipt lines, POS payments | sales.view |
| Purchases | trading.view |
| Stock on hand, Stock movements | inventory.view |
| Employees | hr.view |
| Payroll by month | payroll.process or payroll.approve |
| School fee vouchers and collections | school.fees or school.manage |
| Hotel stays, Hotel occupancy | hotel.reports or hotel.manage |
| Hospital bills | hms.billing or hms.manage |
| Fuel sales, Fuel shifts | fuel.view |
| Donations | charity.view |
| Online store orders / Hayat Bazaar orders | store.view / bazaar.view |
| CRM leads and opportunities / Helpdesk tickets | crm.manage / tickets.manage |
| Emissions (ESG activities) | esg.view |
Branch and company limits always apply: every query is limited to the business, the active company and the user's allowed branches (rows without a branch stay visible, like the ERP screens); HR datasets also to the user's departments. Nobody can widen this from a report or dashboard.
Public links switch
Public links are off for every business. A BI manager switches them on in Shared links (left rail):
- Tick Allow public links.
- Set Longest a link may last (days, 0 = no limit) — 90 by default, up to 3,650. With a maximum, every new link must expire within it.
Unticking Allow public links stops every existing link at once (they show Link not found); switching it back on brings the unexpired, unrevoked ones back. The page also lists every public link of the dashboards you may share — dashboard, label, made by, expiry, views, status — with Copy and Revoke. A link carries the access and branches of the person who made it, frozen at that moment; to refresh it, revoke it and make a new one. Module switches and dataset permissions are checked again on every view.
Schedules and email
- Email schedules (see Email schedules) need bi.share. The background job bi-schedules looks every 15 minutes and sends what is due in the company's local time.
- Each run uses the owner's permissions and branches. If the owner is deactivated or loses bi.share, the run fails and the reason is in the schedule's history (Schedules → Edit / history, Last run shows Failed).
- Emails go out through the business's email channel (Settings → Messaging, see Messaging and integrations), like the scheduled reports of the ERP. 1 to 50 recipients; the last 100 runs of each schedule are kept.
- BI managers see and change every schedule of the company on the Schedules page.
Limits
| What | Limit |
|---|---|
| Rows in a report | 5,000 by default (Row limit), 50,000 at most |
| Time for one query | 15 seconds — then The query took too long. Add filters or a shorter date range. |
| Queries per user | 120 a minute (running, exporting, dashboard data, value lists, Send now) — then Too many queries at once — wait a moment. |
| Public link views | 60 requests a minute per visitor |
| Results kept | 60 seconds: the same question by the same user scope within a minute is answered from the cache (cached); ⟳ on a dashboard asks again. Public links always use the cache; schedules never do. |
| Fields | 8 in rows and columns together, 30 values; 100 pivot columns; 500 values in an is any of filter |
| Dashboards | 40 tiles; 20 active public links |
| Versions | The last 20 saves of each report and dashboard |
| Formulas | 500 characters |
Known data notes
- Fuel sales by nozzle reads each closed shift's nozzle lines with SQL Server's OPENJSON: the database must be SQL Server 2016 or later with compatibility level 130 or higher (Hayat itself needs SQL Server 2019 or later).
- Hotel occupancy: Rooms available counts all active rooms of the business (rooms have no branch yet), so for a business with several hotels, occupancy per branch is approximate.
- Sales invoice lines → Salesperson comes from the sales order the invoice was delivered against; an invoice made directly, without an order, shows (none). The till's salesperson is in POS receipt lines.
- Receivables lists open invoices only: unapplied credit notes and receipts on account are not netted off (the same as the ERP's receivables ageing report).
- Dates of online-store orders, CRM and helpdesk records are turned into the company's local date with its time-zone offset of today (no daylight saving in Pakistan or the Gulf).
- Helpdesk tickets: an open ticket's SLA Breached uses the database server's clock.
For the host
Whoever runs the Hayat server: the site reports.hayaterp.com is its own website (IIS site, DNS record, certificate) built from the web app; the API needs the origin in Cors:Origins and Bi:PublicBaseUrl = https://reports.hayaterp.com (links in schedule emails and public links); the web config needs reportsBase for the ERP's BI reports menu item. Data lives in the database schema bi.
Where the money goes
Nowhere: nothing in Hayat Reports posts to the ledger or changes a document.