Skip to content

Public (resident) reporting page

The Reporter add-in has two tiers. The internal tier is the QR label or link for staff, contractors and visitors — see Field report by QR label. The public (resident) tier is its public counterpart: one public page per site where people living nearby — anyone, without signing in and without cookies — can report odour, noise, smoke, flaring or dust. The report does not go straight into the shift diary: it lands in the inbox of the Reports → Events table with the status New and a Public badge, from where the event handler takes it on.

What has to be true for the page to be live

Section titled “What has to be true for the page to be live”

Two conditions must hold at the same time — if either is missing, the public address answers “not found” and no new page can be issued:

  1. The Reporter add-in is on for your organisation (see Field report by QR label). OPEREX switches the add-in on — that is the paid gate.
  2. The public tier is switched on. You, the organisation administrator, switch it on (see below); OPEREX does not need to give a separate sign-off.

When the conditions are not met, the Master data → Field reports tab shows a “Public reporting page” card that says so and offers no creation. You can ask your contact to switch the add-in on, or use the Control panel → Add-ins tab.

  • Permission: “Manage field reports” — field_report:manage, the same as for internal channels. The card lists only the sites you have access to.
  1. Open Master data → Field reports and find the Public reporting page card. At the top it shows the state (Public tier: OFF / ON).
  2. Click Switch the public tier on (to turn it off: Switch the public tier off). You can switch it on only while the Reporter add-in is on; otherwise the card says so.

After switching off, existing public pages answer “not found” (see below). Switching on and off is audited.

The notice is yours: you are the controller, so you set the text shown on the public page.

  1. On Master data → Field reports, in the Public page settings card, find the Privacy notice on the public page section. There is one text box for the Hungarian page and one for the English page.
  2. The boxes are pre-filled with the OPEREX suggestion; until you save your own, the public page shows the suggestion. Rewrite it for your organisation, per language.
  3. Click Save notice. From then on the resident sees your own text. It can be at most 8000 characters per language.
  4. Back to the OPEREX suggestion restores the suggestion at any time.
  • Formatting: the page shows the text as plain text (HTML does not work). A blank line starts a new paragraph; lines starting with “- “, “ “ or “• “* appear as a bullet list.
  • Audit: every change is audited, including the full text.
  • The “DRAFT” marking would appear only if the OPEREX suggestion got a future, not yet approved version; it does not apply to your own text.
  • Whether the text complies with the law is your organisation’s responsibility.
  1. Open the Master data → Field reports tab and find the Public reporting page card. You see one row per site.
  2. Where there is no page yet (“No public page”), click Create public page. A site has one page; if it already has one, you see its addresses instead of the button.
  3. The page’s row shows two addresses: the Hungarian and the English one (…/hu/bejelentes/… and …/en/bejelentes/…). It is the same page in two languages; the identifier at the end of the address is the secret, the language comes from the prefix. Put the address on your website or print it.
  4. Open the page in a signed-out browser before you publish it.

The page appears at your organisation’s own address and shows the site’s name. It is unlisted and not indexed (search engines do not pick it up) — anyone who knows the address can reach it.

The “not an emergency line — 112” band

Section titled “The “not an emergency line — 112” band”

By default the top of the page carries a band: this page is not an emergency line; in case of immediate danger, fire, explosion or illness call 112. The card shows the band’s state (Shown / Not shown) and the Hide band / Show band button changes it.

  • Whether the band is shown is your decision. It is shown by default on a new page, and you can hide or show it again at any time; no site marking locks it. Think before hiding it: the band points the resident to 112.

The page’s row has the same actions as internal channels:

  • Pause / Resume: a paused page’s address answers “not found”; reports already received stay. Resuming works only while the public tier is live.
  • New token: issues a new address and invalidates the old one at once — use it if the address has spread or been abused. After the confirmation the old address is “not found”; you have to publish the new one. This too works only while the public tier is live.
  • Archive: final — the page ends and cannot be restored; reports already received stay. A new page can then be created for the site.

If you switch the public tier off (or OPEREX switches the Reporter add-in off), the pages answer “not found” but remain on the card and among the reports: you can still pause or archive an existing page, but resuming, issuing a new token and creating new pages only works once the tier is activated again (the button is disabled, with the reason).

The resident gets a step-by-step, mobile-first form on the page (no sign-in, no cookie, in Hungarian or English): the category is picked from icon tiles, the intensity on a 1–5 scale, the duration and the zone from buttons. The page works in light and dark mode — by default it follows the device setting, and it can be switched in the header (only the resident’s browser remembers the choice, no cookie). If your organisation has set a logo and brand colour, the page header shows them.

Field Required?
What did you notice? — odour · noise · smoke · flare · dust · other yes
Intensity — 1 (barely noticeable) … 5 (very strong, disturbing) yes
Where did you notice it? — an area from the button row your organisation set up, or free text (street, district, area); if no area is set up, the text is required. No map is used yes (area or text)
How long did it last? — a moment · under 30 minutes · 30 minutes – 2 hours · over 2 hours · still going on no
When did you notice it? — at most a few days ago, not in the future; left empty, the submission time counts no
Description (up to 2000 characters) no
Name and Contact — only with the consent box ticked no
  • To give a name or contact the resident has to tick a separate consent; they can also report anonymously.
  • At the bottom of the form a bot check runs in the browser (a short computation, a few seconds) — with no third-party service and no cookie. The form can be submitted only a few seconds after it is opened, and stays valid for a couple of hours; after that it has to be reloaded.
  • The page shows the privacy notice (your own text, or the OPEREX suggestion until you edit it), including the retention period you set on the Field reports tab (see below).
  • After Send report the resident gets a receipt with a reference code (L-XXXXX-XXXXX), the time and a secret status link to follow the report (see below).
  • Against abuse the page limits submissions arriving from the same address in a short time; the resident then sees “too many reports from here”. The limit is durable in the database (a restart does not reset it), and the resident’s IP address is not stored: the limit only needs a one-way fingerprint made with a key that changes daily.
Section titled “The reporter can follow the report: a secret status link”

After Send report the receipt shows the resident a secret status link (highlighted, with a copy button). The link is shown only this once — OPEREX does not store the link itself, only a fingerprint of it — so the resident has to save it. On the link, without signing in or cookies, the resident can:

  • see the report’s status as one of three public values: Received → Under review → Closed. It is a public picture projected from the internal event status: the internal statuses (acknowledged, in progress, under investigation) all appear as “Under review”; the closing reason and internal notes are never shown.
  • see the operator’s reply, if the handler wrote one (see below).
  • ask for e-mail notifications (see below).

The link is a secret: whoever knows it can see the report’s status — the page says so, and the resident should not share it. Reports submitted before this feature have no status link, and none can be added later; the panel of such a report says so.

On the status page the resident can enter an e-mail address and ask for notifications. It uses double confirmation:

  1. The resident enters the address on the status page → OPEREX sends a confirmation e-mail (the link is valid for 24 hours and can be used once).
  2. The e-mail’s link opens a confirmation page where one button turns the notification on. Without confirmation nothing further is sent.

After that the system writes only when the report’s public status changes (Received → Under review → Closed) — not right at confirmation and not at every internal step; the sending runs every few minutes. The e-mail is minimal: the reference code, the new status and an unsubscribe link; the report’s text, place and closing reason are not in it. The resident can unsubscribe at any time with the e-mail’s link or on the status page — the address is then erased. The unsubscribe link is new in every e-mail: an older e-mail’s link goes stale; use the latest e-mail’s link or the status page. If sending an e-mail fails, the link of the last delivered e-mail stays valid.

  • An unconfirmed request is deleted together with the address when its link expires (24 hours) — notification can then be requested again on the status page.

  • The address is personal data: stored separately next to the name and contact, and removed by Erase reporter details and by the retention period. After the reporter’s data is erased no notification can be requested.

  • Against e-mail bombing requests are limited (per report, per recipient, per IP and per network, and for the whole organisation) — the resident sees “too many requests” when over the limit. For the recipient limit, name+anything@… and name@… count as the same mailbox.

  • If e-mail sending is not configured, the page says so and does not offer notifications.

Areas (zones): residents pick from the neighbourhood

Section titled “Areas (zones): residents pick from the neighbourhood”

On the Master data → Field reports tab, in the “Public page — embedding, areas, alert” card, the “Public areas” part lets you add areas (zones) per site — parts of the neighbourhood reports may come from (e.g. “Upper Town”). On the form the resident picks an area from a button row (or types an address into More precise location); they must give an area or an address. If no area is added, the address is required.

  • The area’s name is public text: residents see it, so do not enter an internal plant location. It can be renamed and archived (and restored); an archived area can no longer be picked but stays on old reports.
  • There is no map. An area is a named button — the public page will not get a schematic plant map either (an outside reporter does not know the inside of the plant).
  • Permission: field_report:manage.

You can embed the public form in your organisation’s website. By default it cannot be embedded; in the “Embedding in your own website” part you name the websites allowed to embed it:

  • one entry per line; at most 10. Where you allow embedding is your decision (the page is anonymous — no sign-in, cookie or session — so embedding takes nothing away from the reporter). Allowed forms:
    • * — embeddable anywhere (only this covers http:// sites);
    • https://www.example.com (or https://host:port; an IP address or a single-label host name is fine too);
    • https://*.example.com — for subdomains; the * may stand before any base, including a top-level domain (https://*.hu) or a public suffix (https://*.co.uk, https://*.github.io).
  • Not allowed (form, not policy): an entry without a scheme (except the bare *), http:// (in production; http://localhost only in development builds), a path, query, # or user name after the address, characters that would break the header value. On a bad line the save tells you which line is wrong.
  • The card gives ready-to-paste code (an iframe plus a small script that adjusts the height). The page sends its height only to the exact address of the embedding page (even with * it is not sent to “anyone”).
  • Embedding applies only to the reporting form (and only while the public page is live). The status, confirmation and unsubscribe pages cannot be embedded, and neither can the rest of the application.
  • The setting can be prepared while the public tier is off (the card says so) — the public page is still not live because of it.

Cluster alert: when many reports arrive from one area

Section titled “Cluster alert: when many reports arrive from one area”

On the same card, in the “Cluster alert (convergence)” part, you can set a threshold: N reports from the same area within T minutes (N: 2–100, T: 5–1440). It is off by default; leave both fields empty to turn it off.

  • When an area reaches the threshold, handlers get one alert (not a new one per report): on the Home → My to-dos list and in a band at the top of Reports → Events. It can be acknowledged with Acknowledge. Reports without an area count in the site’s “no area” group.
  • ⚠️ The system counts reports, not how many different people sent them. A single resident submitting several times can reach the threshold — the alert is a prompt to look, not evidence.
  • The alert is internal: residents never see it.
  • Acknowledging it needs event:handle.

Replying to the resident and merging duplicates (event side panel)

Section titled “Replying to the resident and merging duplicates (event side panel)”

In the Reports → Events table, a public event’s side panel has a “Feedback to the resident” part showing what the resident sees (public status, whether there is a status link, the e-mail notification state — not the address) and two actions. Both need event:handle and both are audited.

  • Public reply to the resident: free text (up to 1000 characters) that appears word for word on the resident’s status page. Do not put personal data or internal detail in it. Saved empty, the reply is removed. If the report has no status link, the panel tells you the resident cannot see the reply.
  • Merge with an existing event (duplicate): if several residents reported the same thing, you can link the report to a main event by entering the event’s identifier. The resident’s status link then shows the main event’s status.
    • No data is lost: the report, its facts and personal data stay where they are; the merge can be undone (Undo merge).
    • It does not close anything automatically. The panel only suggests closing the merged report with the “False / duplicate” reason (Prepare closing) — you do the closing.
    • No chains: a report cannot be merged into a merged report, and a report that others were merged into cannot itself be merged; the panel says what to sort out first.

A public report is always a site-level event outside the diary: it goes into the Reports → Events table with the status New.

  • Under the title there is the Public badge (next to Field report and Recorded outside the diary); hover it to see that it came from the public page, without sign-in — an unverified reporter.

  • The Public badge is shown only in the Reports → Events table and the event side panel. In the shift diary and the shift PDF a public report never appears — it can never enter a diary (the database enforces this too).

  • The event’s title is the first line of the description, or — with no description — the category name (e.g. “Odour”). The observation time and the description are on the event.

  • From there you handle it as usual: comment, supplement, close — see Handling events from the table. A mistaken or spam report can also be dealt with by closing the event.

  • The side panel also shows the public facts: reference code (L-XXXXX-XXXXX), the area chosen by the resident (its name at submission — renaming the area later does not change it), public category, intensity (1–5) and duration band. The area also shows in the table row (“Area: …”), is searchable, and is a separate export column. If a resident quotes their code, type it into the Events table search box — the code finds the event. The export carries it in the “Reference code (public)” column.

  • These facts appear ONLY in the Events table, the side panel and the export — never in the diary or the shift PDF.

Personal data: name, contact, the place description

Section titled “Personal data: name, contact, the place description”
  • The name, contact and the “where did you notice it” text (it may be a street or an address — personal data) are stored separately and shown in the side panel only with the “Manage field reports” right. They are not shown to anyone else, and do not go into the shift PDF or the audit log.
  • Erasure: the Erase reporter details button on the event’s side panel (mandatory reason, one-shot; the audit log records the reason, not the erased value) erases the name, the contact and the place description. The rest of the report (category, intensity, description, time) stays.
  • Retention period: the retention setting on the Master data → Field reports tab applies to public reports’ name, contact and place description too; expired data is erased daily. Left empty, there is no automatic erasure. The actual period is the controller’s decision.
  • It uses no map and no photo; an area is a named button.
  • Reports submitted before this feature have no status link, and none can be added later.
  • The status page shows only three public values; not the internal status, the closing reason or notes.
  • The cluster alert counts reports, not independent sources.
  • Merging does not close anything automatically.
  • The notification e-mail is not instant: it goes out at the next scheduled run after the public status changes, and only on a change.

Last updated: