Title: PSBDx Smart Report Management
Author: PSBDx
Published: <strong>3.5.2026</strong>
Last modified: 11.10.2026

---

Hae lisäosia

![](https://ps.w.org/psbdx-smart-report-management/assets/banner-772x250.png?rev
=3521480)

![](https://ps.w.org/psbdx-smart-report-management/assets/icon-256x256.png?rev=3521480)

# PSBDx Smart Report Management

 [PSBDx](https://profiles.wordpress.org/psbdx/)

[Lataa](https://downloads.wordpress.org/plugin/psbdx-smart-report-management.2.0.0.zip)

[Live Preview](https://fi.wordpress.org/plugins/psbdx-smart-report-management/?preview=1)

 * [Tiedot](https://fi.wordpress.org/plugins/psbdx-smart-report-management/#description)
 * [Arvostelut](https://fi.wordpress.org/plugins/psbdx-smart-report-management/#reviews)
 *  [Asennus](https://fi.wordpress.org/plugins/psbdx-smart-report-management/#installation)
 * [Kehitys](https://fi.wordpress.org/plugins/psbdx-smart-report-management/#developers)

 [Tuki](https://wordpress.org/support/plugin/psbdx-smart-report-management/)

## Kuvaus

**PSBDx Smart Report Management** turns any WordPress site into a lightweight support
desk. Customers report a problem — with an order, a product, a course, or anything
else — through a fast AJAX modal that never reloads the page, and every submission
lands in a clean, organized admin inbox your team actually enjoys working from.

No support-ticket plugin bloat, no separate helpdesk to learn, no per-agent pricing.
Just a focused, fast, genuinely useful report and complaint management system that
plugs straight into WooCommerce and LearnPress — and, when you want it, hands the
busywork of sorting and prioritizing incoming reports to AI.

**Why site owners choose it**

 * **It’s instant.** Reports submit over AJAX with no page reload, so customers 
   actually finish the form instead of abandoning it.
 * **It sorts itself.** Turn on AI-assisted classification and every new report 
   gets a suggested category and priority (Low / Medium / High) automatically — 
   you triage a full inbox in minutes, not hours.
 * **It gives customers a reference.** Every report gets its own unique, human-readable
   Ticket ID, so a customer can follow up by email or phone and your team can find
   the exact report instantly.
 * **It already knows your store.** Reports from a WooCommerce order page auto-link
   to that order; reports from LearnPress courses, lessons, and quizzes are just
   as seamless.
 * **It fits your workflow, not the other way around.** Custom statuses, custom 
   categories, per-form rate limiting, captcha, and a drag-and-drop form builder
   mean the plugin adapts to how you already work.

**Key Features**

 * AJAX-powered modal report form — no page reload, works anywhere via shortcode
 * Optional AI-assisted triage (WordPress 7.0+): automatically suggests a category
   and priority for every new report using the built-in WordPress AI Client — gracefully
   disabled with no impact on the rest of the plugin if you’re on an older WordPress
   version or haven’t connected a provider
 * ”Summarize with AI” on the report edit screen — a plain-language explanation 
   of what the customer is actually reporting, for reports that are long or vaguely
   worded
 * AI Response Log: a rolling 3-hour audit trail of every AI request and response,
   so you can see exactly what the AI decided and why
 * Unique, human-readable Ticket ID on every report — the customer’s reference for
   following up, shown in their confirmation and report history
 * Admin-defined report Categories and Low/Medium/High Priority, settable manually
   or by AI, editable any time from the report edit screen
 * Drag-and-drop Form Builder: ten field types (name, email, phone, text, paragraph,
   number, select, radio, checkboxes, captcha), fully reorderable, mobile-friendly
 * Five built-in report statuses with colour-coded badges (Processing, Contacting,
   Waiting, Solved, Failed), plus unlimited custom statuses
 * E-commerce order auto-link — reports from an order page are automatically linked
   to that order in the admin, HPOS-compatible
 * Per-form cooldown / rate limiting enforced on both the frontend and the server,
   so the same user can’t spam a form
 * Captcha support: Google reCAPTCHA, hCaptcha, and Cloudflare Turnstile
 * Admin dashboard widget and admin-bar shortcut with live, at-a-glance unsolved-
   report counts
 * Built-in FAQ builder with a `[psbdx_faq]` accordion shortcode for your own site’s
   visitors
 * Mobile-first responsive design throughout, including iOS safe-area support and
   a touch-friendly admin experience
 * LearnPress course, lesson, and quiz page support, alongside WooCommerce
 * Reporter identity (name and email) collected server-side from the WordPress session—
   never editable by the user, so it can’t be spoofed
 * Shortcodes: `[psbdx_report id="X"]`, `[psbdx_user_reports]`, and `[psbdx_faq]`

**Also configurable, per form**

 * Fully custom report reasons (comma-separated, ”Other” always appended)
 * Optional extra fields (e.g. Transaction ID, Coupon Code)
 * Contact field with a required/optional toggle
 * Show or hide the reporter identity card in the form
 * Auto-display on all products/orders/courses, or assign a form per item

**Perfect for**

 * WooCommerce stores that need a fast, structured way for customers to report an
   order or product problem
 * Online course sites (LearnPress) fielding student questions about a specific 
   course, lesson, or quiz
 * Any WordPress site that wants a lightweight complaint/report/support-ticket system
   without a heavyweight external helpdesk

**Shortcodes**

    ```
    [psbdx_report id="X"]
    ```

Display a report button and modal form. Replace X with the Report Form post ID shown
in the Shortcode box.

    ```
    [psbdx_user_reports]
    ```

Display a paginated table of the currently logged-in user’s report history, including
their ticket IDs.

    ```
    [psbdx_faq]
    ```

Display your admin-managed FAQ as a clean accordion, anywhere on your site.

### Developer Hooks

For developers building integrations or extensions on top of this plugin.

**Report status changes**

Instead of polling the database, listen for these action hooks — they fire from 
the one place in the plugin that ever writes a report’s status, so they’re guaranteed
to fire exactly once per real change:

    ```
    psbdx_srm_report_status_changed( $report_id, $old_status, $new_status, $context )
    ```

Fires for every status change, whatever the new status is.

    ```
    psbdx_srm_report_status_changed_to_{$new_status}( $report_id, $old_status, $context )
    ```

Fires only for one specific new status (status run through `sanitize_key()`), e.
g. `psbdx_srm_report_status_changed_to_solved`. Use this instead of the generic 
hook if you only care about one transition.

    ```
    $context is an associative array:
    ```

 * `report_id` (int) — same as the first hook argument, included for convenience.
 * `ticket_id` (string) — the report’s human-readable ticket ID.
 * `submitter_id` (int) — numeric WP user ID of whoever filed the report, or `0`
   for a guest.
 * `submitter_email` (string) — the reporter’s email address, if one was collected.
 * `old_status` (string|null) — the previous status key, or `null` if this report
   never had one before (i.e. this is the very first status it’s ever had, from 
   a brand-new submission).
 * `new_status` (string) — the new status key.
 * `changed_by` (int) — numeric WP user ID of whoever triggered the change (typically
   the logged-in admin editing the report), or `0` for a guest’s own submission 
   or an automated process.
 * `updated_at` (string) — MySQL datetime in GMT/UTC.
 * `updated_at_local` (string) — MySQL datetime in the site’s local timezone.
 * `source` (string) — where the change came from: `submission` (a brand-new report),`
   admin` (the report edit screen), or another value a specific integration may 
   pass.

Example:

    ```
    add_action( 'psbdx_srm_report_status_changed', function( $report_id, $old_status, $new_status, $context ) {
        error_log( sprintf(
            'Ticket %s (user #%d): %s -> %s',
            $context['ticket_id'],
            $context['submitter_id'],
            $context['old_status'] ?? '(new)',
            $new_status
        ) );
    }, 10, 4 );
    ```

Note: bulk/maintenance operations that write status directly to the database (CSV
import, and the Repair & Reset page’s ”fix invalid status values” tool) intentionally
do not fire these hooks, since they’re bulk restores rather than individual live
status changes.

### Upcoming Features

The following features are planned for future releases:

 * **Email Notifications** — Notify the admin on new submissions, and send a confirmation
   email to the reporter.
 * **Status Change Emails** — Email the reporter automatically when their report
   status is updated.
 * **CSV Export** — Export all report logs as a CSV file from the admin screen.
 * **File / Screenshot Attachment** — Let users attach a screenshot or file to their
   report. (Added ✅)
 * **Internal Admin Notes** — Private notes on each report log, visible only to 
   admins.
 * **Report Categories / Tags** — Organise reports with admin-defined categories
   for easier filtering. (Added ✅)
 * **Guest Email Verification** — Allow non-logged-in users to submit with email
   verification before saving. (Added ✅)
 * **Duplicate Detection** — Alert admins when a new report closely matches an existing
   open one. (Added ✅)
 * **Report Priority Levels** — Assign Low / Medium / High priority to reports, 
   manually or via AI. (Added ✅)
 * **REST API Endpoints** — Query and manage reports programmatically via the WordPress
   REST API.
 * **AI Knowledgebase Suggestions** — Recommend existing help-article answers to
   reporters based on their report content. (Settings  AI  Knowledgebase — coming
   soon)

## Kuvankaappaukset

[⌊Frontend report button and modal form on a product page.⌉⌊Frontend report button
and modal form on a product page.⌉[

Frontend report button and modal form on a product page.

[⌊Admin dashboard showing Report Form Management Screen.⌉⌊Admin dashboard showing
Report Form Management Screen.⌉[

Admin dashboard showing Report Form Management Screen.

[⌊Admin Report Logs list table with status badges, reporter, and order link columns.⌉⌊
Admin Report Logs list table with status badges, reporter, and order link columns
.⌉[

Admin Report Logs list table with status badges, reporter, and order link columns.

[⌊Admin Report Form configuration screen.⌉⌊Admin Report Form configuration screen
.⌉[

Admin Report Form configuration screen.

[⌊Admin dashboard widget showing report customization screen.⌉⌊Admin dashboard widget
showing report customization screen.⌉[

Admin dashboard widget showing report customization screen.

[[

## Asennus

 1. Upload the `psbdx-smart-report-management` folder to `/wp-content/plugins/`.
 2. Activate the plugin through **Plugins > Installed Plugins**.
 3. Go to **Report Forms** in the admin sidebar and click **Add New Form**.
 4. Configure the form, then copy the shortcode from the **Shortcode** meta box.
 5. Paste the shortcode on any page, post, or widget area.

Alternatively, enable global auto-display in the form settings to show the report
button on all product or order pages automatically.

## UKK

### Does this plugin use AI?

Optionally, yes. If you’re on WordPress 7.0+ and have an AI provider connected under
Settings  Connectors, you can turn on AI-assisted classification (Settings  AI) 
so every new report automatically gets a suggested category and priority, and you
can click ”Summarize with AI” on any report for a plain-language explanation of 
the issue. It’s entirely opt-in — the plugin works fully without it.

### What happens if I’m on an older WordPress version or don’t have AI set up?

Nothing breaks. The AI controls are automatically greyed out and disabled if your
WordPress version is below 7.0 or no AI provider is connected. You (and your admins)
can still set a Category and Priority manually on every report, exactly as if AI
were never part of the plugin.

### What is the Ticket ID, and who sees it?

Every submitted report gets a unique, human-readable Ticket ID (e.g. ”PSRM-20260714-
8K3F2A”). The reporting user sees it in their submission confirmation and their 
report history, so they have something concrete to reference if they follow up by
email or phone. Admins can search for a ticket ID an user gives them to jump straight
to that report.

### Can I set my own report categories?

Yes. Add your own categories under Settings  Categories. They’ll appear in the manual
Category dropdown on every report, and — if AI is enabled — the AI will be constrained
to pick from that exact list instead of inventing its own.

### Can I add a FAQ section for my own site’s visitors?

Yes. Go to the FAQ admin page, add your questions and answers, and drop the `[psbdx_faq]`
shortcode anywhere on your site to display them as a clean accordion.

### Can guests submit reports?

Yes. Guest reports are logged without a user association. The reporter name defaults
to ”Guest”.

### Can I disable the reporter identity card shown in the form?

Yes. Each form has an ”User Identity Display” toggle in its configuration. When 
turned off, the read-only name and email card is hidden from the form — but identity
is still collected server-side for the admin log.

### How does rate limiting work?

Each form has a configurable cooldown (in minutes, default 30). Once a logged-in
user submits a report via a form, they cannot submit again through that same form
until the cooldown expires. The cooldown is enforced both on the frontend (form 
is hidden) and in the AJAX handler (server rejects the request even if the UI is
bypassed).

### Does the plugin require any other plugins?

No. PSBDx Smart Report Management works as a standalone plugin. E-commerce and LearnPress
integrations activate automatically when those plugins are present.

### What is the order auto-link feature?

When a user submits a report from an order page (e.g. My Account > Orders > View
Order), the plugin automatically detects and stores the order ID. The admin Report
Log shows a direct link to the order, and the user’s report history table shows 
the order number instead of a URL.

### Is it compatible with High-Performance Order Storage (HPOS)?

Yes. The plugin declares HPOS compatibility and uses `wc_get_order()` with `get_edit_order_url()`
for all order links.

### Is it mobile-friendly, for both visitors and admins?

Yes. The report form and modal are mobile-first with iOS safe-area support, and 
the admin screens (report list, response view, AI Response Log, settings) are all
built with responsive breakpoints so you can manage reports comfortably from a phone.

### From where I can read all the documentations?

We are happy to see that you are interested to read the documentations. Please visit
https://dev.psbdx.xyz/documentations/psbdx-smart-report-managment/

## Arvostelut

There are no reviews for this plugin.

## Avustajat & Kehittäjät

“PSBDx Smart Report Management” perustuu avoimeen lähdekoodiin. Seuraavat henkilöt
ovat osallistuneet tämän lisäosan kehittämiseen.

Avustajat

 *   [ PSBDx ](https://profiles.wordpress.org/psbdx/)
 *   [ atwfarhan ](https://profiles.wordpress.org/atwfarhan/)
 *   [ M Farhan Hamim ](https://profiles.wordpress.org/mfhamim/)

“PSBDx Smart Report Management” has been translated into 3 locales. Kiitoksia [kääntäjille](https://translate.wordpress.org/projects/wp-plugins/psbdx-smart-report-management/contributors)
heidän työstään.

[Käännä “PSBDx Smart Report Management” omalle kielellesi.](https://translate.wordpress.org/projects/wp-plugins/psbdx-smart-report-management)

### Oletko kiinnostunut kehitystyöstä?

[Browse the code](https://plugins.trac.wordpress.org/browser/psbdx-smart-report-management/),
check out the [SVN repository](https://plugins.svn.wordpress.org/psbdx-smart-report-management/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/psbdx-smart-report-management/)
by [RSS](https://plugins.trac.wordpress.org/log/psbdx-smart-report-management/?limit=100&mode=stop_on_copy&format=rss).

## Muutosloki

#### 2.0.0

 * New: Copy/Duplicate button on every field card in the Form Builder canvas — inserts
   an independent copy (new ID, re-derived handle) directly after the original.
 * New: Multi-select in the Form Builder canvas — Ctrl/Cmd-click to toggle a field
   in or out of selection, Shift-click to select a range, then Duplicate or Delete
   the whole selection at once from the bulk toolbar that appears.
 * Fix: with Conditional Section jumps, the Back button now retraces the visitor’s
   actual path (e.g. Section 4 back to Section 1 directly) instead of always stepping
   back one page at a time. A per-form navigation history stack records where each
   Next click came from, and Back pops it.
 * New: REST API (psbdx-srm/v1/forms, /forms/{id}, /forms/{id}/fields, /forms/{id}/
   responses, /responses/{id}, /responses/{id}/status, /responses/{id}/replies) 
   for the companion PSRM Forms Android app — authenticates via WordPress Application
   Passwords like any other REST request. Reply/status-change endpoints enforce 
   the same Support Agent assignment rule (assigned agent, or an admin) as the classic
   admin’s own agent actions.
 * New: reports now save a real structured answers map (and the reporter’s name)
   as their own meta at submission time, alongside the existing human-readable summary—
   used by the REST API above instead of reverse-parsing HTML, and available to 
   any future export/integration work too.
 * New: sending a reply can now opt out of the automatic notification email per-
   reply (`PSBDX_SRM_Replies::add_reply()` gained a $notify parameter) — wired up
   for the Android app’s own notify toggle.
 * Fix: the REST API’s field data didn’t include a select/radio/checkbox field’s
   choices, so any field save made through it (add, edit, or duplicate a field from
   the Android app) would silently wipe that field’s choices. Choices now round-
   trip correctly.
 * New: the Android app can now add and edit fields (not just duplicate them), and
   create new forms — both use the REST API above.
 * New: every form now always starts with a Section Break field — it’s the form’s
   first page, and it can’t be removed (same protected-field pattern the Rate Your
   Agent form’s Review field already used). An existing form missing one gets it
   restored automatically on its next save.
 * New: a Section field’s ”After this section” setting can now jump straight to 
   a specific other section, not just ”continue to next” or ”submit” — same idea
   as the existing Conditional Section rules, just applied to a section’s own fall-
   through instead of to an answer. Available in both the PC Form Builder and the
   Android app.
 * Fix: the REST API’s field data didn’t include a Select/Radio field’s conditional
   logic (`conditional_enabled`/`conditional_mode`/`conditional_rules`), so it never
   appeared in the Android app and a save made there would silently strip it. Now
   round-trips correctly, and the Android app’s field editor can view and edit it.
 * Fix: the Android app’s Add/Edit field dialog showed a ”Required” toggle for Title
   and Section fields, even though both are read-only structural fields where it’s
   meaningless (and already force-cleared server-side). The dialog now hides it 
   for those two types, matching the PC Form Builder.
 * Fix: a paginated form whose very first field is a Section (now the default for
   every form, see above) rendered an extra blank page before the real first section—
   a pre-existing edge case in the page-splitting logic that the new default leading
   section would otherwise have hit on every single form. Fixed so the first real
   section always opens page one.
 * New: the Android app’s field list can now remove a field, not just add/edit/duplicate
   one — a lock icon and a disabled control mark the form’s protected leading Section
   Break (and, on the rating form, its protected Review field) as non-removable,
   matching the PC Form Builder’s own locked delete button for these fields.
 * Fix: several ”Sending…”/”Testing…” loading-state labels were a literal `…` typed
   inside a single-quoted PHP string, which PHP never converts to an ellipsis — 
   visitors and admins were seeing the literal text ”Sending…” on buttons instead
   of ”Sending…”. Replaced with the real character in every affected string.

#### 1.5.1

 * Fix: the auto-inserted Report button could fail to appear at all on a WooCommerce
   product page using the newer block-based Single Product template — WooCommerce
   doesn’t reliably fire `woocommerce_single_product_summary` (or populate the current
   product) on those templates unless a specific block is present, which a customised
   template may not include. Added a fallback hook and a more defensive way of resolving
   the current product so the button shows up either way.

#### 1.5.0

 * New: a ”Customer Rating Link” for support agents — when a report is marked Solved,
   a one-time link inviting the reporter to rate the agent is generated automatically(
   once per report, never regenerated) and emailed to them if an address was collected;
   their star rating is applied directly to that agent’s rating. The rating question
   lives in its own protected form — fully editable (wording, extra fields, star
   count) but the rating field itself, and the form as a whole, can’t be deleted,
   only turned off entirely under Support Agents  Settings.
 * New: Conditional logic on Select and Radio fields (Form Builder  field settings”
   Enable conditional logic”). Two modes:
    - Conditional Sections — pick, per answer, which section the Next button jumps
      to (or whether it submits the form immediately), overriding that page’s own
      default next-section behavior. If more than one field on a page has this enabled,
      the first one (in field order) whose answer has a rule wins.
    - Conditional Fields — instantly show another field the moment a specific answer
      is chosen, with no Next click needed — the same idea as Google Forms’ show/
      hide-based-on-answer. Fully enforced server-side too, not just hidden by CSS:
      a field that was never actually revealed is never treated as required on submit,
      no matter what its own settings say.
 * New field types: Website / URL (validated), Hidden Field (a fixed value, the 
   page URL, or today’s date — invisible to visitors, useful for tracking context),
   and Agreement / Consent (a single checkbox with its own label text and an optional
   link, e.g. to a Terms of Service page).
 * Fix: when a Conditional Section rule pointed at ”Submit the form” on a page that
   still had sections after it, the button correctly submitted when clicked but 
   kept showing ”Next” right up until then — misleading. The button now updates 
   live to say the right thing (Next vs Submit) as soon as an answer changes, not
   just at click time.
 * New: a customizable Success Message (Form Builder  Settings  Success Message),
   shown to the visitor right after they submit. Uses the same rich-text editor 
   as a normal post, so formatting (bold, links, lists, line breaks) is fully supported
   and survives saving intact — WordPress’s sanitization on save is deliberately
   the same permissive, safe rule set it trusts for post content itself (`wp_kses_post()`),
   not the stricter plain-text rule that would otherwise strip it. Comes with a 
   sensible default; supports a `{ticket_id}` placeholder to show the ticket ID 
   inline instead of (or in addition to) the automatic line underneath.
 * Fix: a duplicate array key in the email settings meant the ”Report Assigned” 
   email template’s description was silently overridden by a near-identical second
   copy — harmless in practice (the second copy was the more complete one) but cleaned
   up while working nearby.

#### 1.4.9

 * Fix: the ”Next” button on multi-section forms could silently do nothing on some
   mobile browsers (iOS Safari in particular) when a required field on that page
   was empty — it was relying entirely on the browser’s own native validation popup,
   which those browsers can fail to show inside a scrolling modal. It now shows 
   its own clear, always-visible error message and highlights the field instead.
   While fixing this we also found and fixed a related gap: a required Checkboxes
   field could never actually be enforced (no supported way existed to require ”
   at least one checked” via plain HTML) — it now blocks the same way as every other
   required field.
 * New: the ”Reporting: {page title}” bar shown at the top of popup forms can now
   be hidden per-form (Form Builder  Settings  Button Settings).
 * New: five more field types, matching everything Google Forms offers — Date, Time,
   Linear Scale, Multiple Choice Grid, and Checkbox Grid. All fully validated server-
   side (dates/times must be real, scale answers must be within the configured range,
   grid answers must be one of that field’s own defined columns).
 * New: Date fields can be limited to a selectable range (earliest/latest date) 
   with specific blocked dates within that range (e.g. holidays or fully-booked 
   days). Time fields get the same range + blocked-times controls, plus a 12-hour
   or 24-hour display format setting — all enforced server-side, not just in the
   picker.
 * Fix: Date and Time fields now use fully custom popups (a real calendar for Date,
   a scroll-wheel picker for Time) instead of the native browser inputs. This fixes
   blocked-date/time range filtering not actually being enforced in the picker itself,
   and fixes a native-date-picker quirk where a blocked date in the middle of an
   allowed range could make an unrelated, perfectly valid day next to it behave 
   oddly. The Time picker also gained a time zone selector, defaulting to the visitor’s
   own device time zone.
 * Fix: scrolling inside the Time picker’s hour/minute wheel could get mistaken 
   for scrolling the page and close the picker — fixed so only scrolling outside
   it closes it. Also fixed the Date picker’s Prev/Next month buttons appearing 
   to do nothing (they were navigating correctly, then immediately closing) and 
   a case where picking a hour could leave an already-blocked minute looking selected.
 * New: the calendar popup’s month/year heading is now clickable and opens a year
   picker, for quickly jumping to a specific year instead of clicking through months
   one at a time. The year range now defaults to 120 years back (enough for a date-
   of-birth field) instead of a narrow ±10 years, and a ”type a year” box lets you
   jump straight there instead of scrolling.
 * Fix: tapping that ”type a year” box on mobile opened the keyboard and immediately
   closed it again — the popup was set to close on `resize`, and opening the on-
   screen keyboard shrinks the visible viewport, which triggers a resize the instant
   you tap in. It now stays open while you’re actually typing in it.
 * New: Time zone restriction for Time fields — allow only specific zones, or block
   specific zones. If a visitor’s own time zone isn’t in the allowed list, the form
   tries the site’s own default time zone first, then an admin-set fallback zone,
   and shows a small note next to the field explaining that a default was auto-selected.
 * New: every report form now shows a small ”Powered by PSBDx” line underneath it.

#### 1.4.8

 * New: Title / Heading and Section Break field types in the Form Builder. Title
   is a read-only heading (with optional subtext) you can drop anywhere in a form.
   Section splits the form into pages — same idea as a Google Forms section: everything
   after a Section field becomes a new page shown after a ”Next” button, each section
   has its own optional title/description, and a per-section ”After this section”
   setting controls whether it continues to the next section or submits the form
   immediately. A thin progress line appears below the button on multi-section forms.
 * New: every field type (not just Title/Section) can now have optional help text
   shown underneath it, set from the field’s settings panel in the Form Builder.
 * New: the popup form’s icon can now be replaced with any image from the Media 
   Library (Form Builder  Settings  Button Settings  Modal Icon). Leave it empty
   to keep the default warning icon.
 * Fix: the ”Reporting: {page title}” context bar was showing on inline-embedded
   forms (`mode="inline"`), which reads oddly when the form is already sitting on
   that page’s own content. Popup and popup-link forms still show it.
 * Fix: the captcha script (reCAPTCHA/hCaptcha/Turnstile) now loads with the `async`
   strategy, matching every provider’s own recommended embed snippet — browsers 
   increasingly block or delay third-party-cookie-dependent scripts that aren’t 
   loaded this way, which could leave the widget stuck blank.
 * Improved: server-side validation for v2 form submissions is significantly stricter—
   Email fields must be a valid address, Number fields must be numeric, Mobile fields
   must look like a phone number, and Select/Radio/Checkbox submissions are now 
   checked against that field’s own defined choices (and its ”Other” setting) instead
   of accepting any posted value. Also fixed a related edge case where a crafted
   value could trigger ”Other” handling on field types that don’t support it.
 * Removed: the old v1 flat-settings Form Builder and its ”legacy form” migration
   prompt are gone — every form now uses the v2 builder exclusively. Any form still
   on v1 is converted to an equivalent v2 field list automatically the moment its
   edit screen is opened; nothing is lost, there’s just no more manual ”migrate”
   step or admin nag about it.

#### 1.4.7

 * New: Form themes now live in their own ”Themes” tab in the Form Builder (moved
   out of Settings) with a Light (default) and Dark theme built in — pick a different
   look, including field styling and the ticket response/view page, per form.
 * New: per-form ”Disable theme animations” toggle in the Themes tab, for accessibility,
   slower devices, or a calmer look — a theme’s colours/layout still apply, only
   motion is turned off.
 * New: ”Add More Themes” button opens the PSBDx theme marketplace; installing the
   free ”PSRM Themes by PSBDx” addon adds one-click premium themes to the same picker.
 * New: `psbdx_srm_theme_sources` filter lets addons/integrations register their
   own theme folders without ever touching this plugin’s files.

#### 1.4.6

 * New: Support Agents system — add users as support agents from a dedicated admin
   submenu, set their work hours, and let the plugin auto-assign new reports to 
   a free agent (notifying only that agent) when replies are enabled. An abandoned
   report is automatically handed to another free agent instead of sitting unassigned.
 * New: Administrators are added as agents automatically; a plugin-level Super Administrator
   designation is the only one that can manage/edit/remove other administrators 
   from the agent list.
 * New: `[psbdx_user_reports]` now shows a full agent portal (My Reports, Assigned
   Reports, Search Ticket, and Manage Agents for admins) to any support agent or
   administrator, with per-report reply/status/abandon/handover tools and an admin-
   only activity log.
 * New: Agent Rating — a 2.5-star starting score per agent, shown in Agent Management,
   that rises with completed tickets and falls when a report is abandoned or left
   for an admin to reassign.
 * New: once a report is marked Solved, neither the reporter nor any agent can send
   another message until someone reopens it (a ”Reopen This Report” button for the
   reporter; agents just change the status). Reports from a form with replies disabled
   are marked Solved automatically.
 * Fix: mobile layout of the report view & reply page — agent tools and reply buttons
   had no dedicated styling (inherited unstyled wp-admin button classes on the frontend),
   causing cramped padding and unreliable taps on small screens; now use the plugin’s
   own responsive button/row styles.

#### 1.4.5

 * New: Setup Wizard for first-time installs (mailing setup, starter form, reopenable
   anytime via the ”Setup Wizard” action link or Repair & Reset).
 * New: inline form embedding (`mode="inline"`) and URL popup links (append `?<form
   id>` to any page).
 * New: Attachment field (admin-configurable file types/size limits) and Review (
   star rating) field types.
 * New: file attachments in reply threads, a full ”Attachments” management box (
   manual delete anytime), and optional auto-delete on Solved per field.
 * New: optional real email attachments for reply notifications (Settings  Email),
   off by default.
 * Fix: popup links now work on hosts that inject extra query parameters (e.g. some
   free hosts).
 * Fix: asset cache-busting no longer depends on the plugin version number, so CSS/
   JS fixes reach browsers immediately.
 * Improved: mobile touch targets and layout across PSBDx’s own admin screens.

#### 1.4.4

 * New: ”Always require a verified email” option for API submissions.
 * Security: API brute-force lockout, peppered secret hashing, OTP send throttling.

#### 1.4.3

 * New: External API for programmatic report submission — API keys, domain/IP whitelisting,
   OTP-verified email, session-based `/start`  `/field`  `/verify-otp`  `/submit`
   flow.
 * Critical fix: report/reply submission could fatal on hosts with short execution-
   time limits; AI classification/auto-reply/notifications now run after the response
   is sent.
 * New: Sender name & email under Settings  Email.
 * Fix: email template saving no longer strips literal backslashes.
 * New: automatic detection of hosts that block the API (e.g. the InfinityFree family),
   with a self-test and clear admin notice.
 * Fix: CSV form import no longer uses a deprecated WordPress function.

#### 1.4.2

 * New: reply threads on reports (frontend + admin), with an optional automatic 
   AI reply.
 * New: ”Improve with AI” / ”Generate AI Reply” tools for admins.
 * New: email notifications (5 events, fully editable), CSV import/export, dedicated
   report detail page.
 * New: report status change hooks (`psbdx_srm_report_status_changed`) for developers.
 * Improved: redesigned FAQ with live search.

#### 1.4.1

 * New: unique ticket IDs, AI-assisted report classification (WordPress 7.0+), AI
   Response Log.
 * New: Report Categories, manual Category & Priority override, Summarize with AI.
 * Improved: ”Report Logs” renamed to ”Responses”; redesigned response view; mobile-
   responsive admin.

#### 1.4.0

 * New: Field Settings is now a popup (drawer on desktop, bottom sheet on mobile)
   at every viewport.
 * New: fully functional mobile Form Builder.
 * Fixed: several Form Builder layout/overflow/touch bugs on mobile and in-between
   viewport widths.

#### 1.3.1

 * Improved: security scan system, Repair & Reset status banner, admin bar reports
   shortcut, Support submenu page.

#### 1.3.0

 * New: v2 drag-and-drop Form Builder with a 10-field Field Library, legacy form
   migration, and a v2-aware submission handler — fully backward compatible with
   v1 forms.

#### 1.2.0

 * New: Captcha support (reCAPTCHA, hCaptcha, Turnstile). Bug fixes.

#### 1.1.0

 * New: PSBDx Reports admin menu, custom statuses, per-form/global rate limiting,
   Repair & Reset diagnostics, conflict guard, multisite support.

#### 1.0.1

 * New: admin review-notice prompt, Documentation link, improved multisite activation
   handling.

#### 1.0.0

 * Initial release: AJAX report modal, per-form rate limiting, WooCommerce/LearnPress
   integration, admin dashboard widget, `[psbdx_report]` / `[psbdx_user_reports]`
   shortcodes.

Full release notes for every version: https://dev.psbdx.xyz/

## Metatiedot

 *  Version **2.0.0**
 *  Last updated **5 päivää sitten**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Bengali (Bangladesh)](https://bn.wordpress.org/plugins/psbdx-smart-report-management/),
   [Bengali (India)](https://bn-in.wordpress.org/plugins/psbdx-smart-report-management/),
   [English (US)](https://wordpress.org/plugins/psbdx-smart-report-management/) 
   ja [Hindi](https://hi.wordpress.org/plugins/psbdx-smart-report-management/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/psbdx-smart-report-management)
 * Tags
 * [AI](https://fi.wordpress.org/plugins/tags/ai/)[complaint](https://fi.wordpress.org/plugins/tags/complaint/)
   [helpdesk](https://fi.wordpress.org/plugins/tags/helpdesk/)[Support Ticket](https://fi.wordpress.org/plugins/tags/support-ticket/)
   [woocommerce](https://fi.wordpress.org/plugins/tags/woocommerce/)
 *  [Edistynyt näkymä](https://fi.wordpress.org/plugins/psbdx-smart-report-management/advanced/)

## Arvosanat

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/psbdx-smart-report-management/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/psbdx-smart-report-management/reviews/)

## Avustajat

 *   [ PSBDx ](https://profiles.wordpress.org/psbdx/)
 *   [ atwfarhan ](https://profiles.wordpress.org/atwfarhan/)
 *   [ M Farhan Hamim ](https://profiles.wordpress.org/mfhamim/)

## Tuki

Onko sinulla jotain sanottavaa? Tarvitsetko apua?

 [Tukifoorumi](https://wordpress.org/support/plugin/psbdx-smart-report-management/)