hayat help
Help › Hayat ERP

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 are off for every business. A BI manager switches them on in Shared links (left rail):

  1. Tick Allow public links.
  2. 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.