Title: Guru Support Desk
Author: Guru Plugins
Published: <strong>ستمبر 4, 2026</strong>
Last modified: ستمبر 23, 2026

---

Search plugins

![](https://ps.w.org/guru-support-desk/assets/banner-772x250.png?rev=3690281)

![](https://ps.w.org/guru-support-desk/assets/icon-256x256.png?rev=3690281)

# Guru Support Desk

 By [Guru Plugins](https://profiles.wordpress.org/guruplugins/)

[Download](https://downloads.wordpress.org/plugin/guru-support-desk.2.2.zip)

 * [Details](https://bcc.wordpress.org/plugins/guru-support-desk/#description)
 * [Reviews](https://bcc.wordpress.org/plugins/guru-support-desk/#reviews)
 *  [Installation](https://bcc.wordpress.org/plugins/guru-support-desk/#installation)
 * [Development](https://bcc.wordpress.org/plugins/guru-support-desk/#developers)

 [Support](https://wordpress.org/support/plugin/guru-support-desk/)

## Description

Guru Support Desk is a self-hosted customer support system for WordPress. Customers
can create and manage tickets from a signed-in Support page, while enabled Support
Agents can work from wp-admin or a front-end Agent Tickets desk.

Key features:

 * Create tickets from the customer Support page, inbound email, or the staff Add
   New workflow.
 * Use Main Agent, Manager, and Support Agent roles without changing the user’s 
   existing WordPress role.
 * Restrict regular Support Agents to Only Assigned Tickets or allow All Tickets.
   Main Agent and Manager always see all tickets.
 * Reassign tickets instantly by AJAX from the front-end Agent desk for Main Agents/
   Managers and from wp-admin for administrators.
 * Merge two eligible tickets from the same customer/email, choose which ticket 
   remains as the main ticket, preserve chronological conversation history, and 
   retain clear merge-history notes.
 * Keep merged ticket history together when the surviving ticket is moved to Trash,
   restored, or permanently deleted.
 * Review a backend Activity log for ticket and agent actions, with agent, event,
   ticket/customer, date, search, and pagination controls.
 * Protect unsaved Replies and Internal Notes when an agent tries to leave a ticket.
 * Rename a ticket subject directly from the single-ticket screen with an inline
   AJAX editor. Subject changes are recorded in Activity and do not send customer
   email.
 * Process IMAP mail with automatic polling, cron health repair, resumable catch-
   up batches, failed-message retries, and continuous mailbox/database reconciliation.
 * Keep one malformed email or unsupported charset from blocking newer mail.
 * Use persistent ticket CC participants with per-reply CC selection and secure 
   inbound CC reply threading.
 * Reply with rich text, searchable emojis, attachments, and pasted/dragged inline
   images. Add private Internal Notes that customers never see.
 * Manage New, Open, Pending, Awaiting Reply, Closed, and Trash workflows with response-
   aging indicators, customer-response indicators, search, pagination, bulk actions,
   and permanent ticket-number continuity.
 * View customer ticket counts from ticket lists and jump directly to the related
   customer record.
 * Store attachments privately and enforce customer/agent access server-side.
 * Optionally show WooCommerce customer/order context and add Support to WooCommerce
   My Account.
 * Use WordPress mail or optional dedicated SMTP, plus configurable customer email
   header/footer, Reply-To routing, and design controls.
 * Use private diagnostic logging, enabled by default with 10-day retention and 
   a Download Logs button.
 * Use AJAX throughout the agent workflows for ticket loading, reassignment, status
   changes, replies, notes, merging, Trash/Restore actions, filtering, and other
   supported interactions.

Guru Support Desk keeps ticket data inside the WordPress installation and does not
send ticket data or telemetry to Guru Plugins. The bundled PDF documentation covers
setup, permissions, ticket workflows, mailbox processing, security, logging, and
troubleshooting in detail.

### More from Guru Plugins

Discover more WordPress plugins from [Guru Plugins](https://plugins.guru-is.com).

## Installation

 1.  Upload and activate Guru Support Desk.
 2.  If required setup is incomplete, activation sends the activating administrator
     to Guru Support Desk > Settings > General once.
 3.  Create or select a published Support page and place `[guru_support_desk]` or `[
     guru_support]` on it.
 4.  Open Support Agents, confirm the Main Agent, and set each enabled agent’s Agent
     View and Role.
 5.  Configure response-aging thresholds, Button Design, and alert colors as desired.
 6.  Configure and test IMAP only if inbound email is needed.
 7.  Enable automatic mailbox processing only after IMAP is working.
 8.  Configure SMTP only if Guru Support Desk should use its own SMTP transport. From
     Email starts blank.
 9.  Enter a Send Test To address manually and send a test email.
 10. Review Settings > Logs. Diagnostic logging is enabled by default and retained 
     for 10 days.
 11. Optionally enable the WooCommerce My Account Support endpoint.
 12. Test customer web tickets, staff-created tickets, agent roles/views, ticket reassignment,
     inbound mail, CCs, attachments, inline images, replies, notes, closing, Trash,
     Restore, and any permanent-delete workflow your site will use.

While required setup remains incomplete, opening the bare Guru Support Desk dashboard
menu returns to Settings > General. Other WordPress admin pages are not redirected.

PHP IMAP is required only for inbound mail processing and server mailbox cleanup.

## FAQ

### Is WooCommerce required?

No. WooCommerce is optional.

### Do customers need WordPress accounts?

Only for the front-end Support page. Email-created tickets can belong to email-only
contacts.

### Can any WordPress user become a Support Agent?

Yes. Any WordPress user can be enabled as a Guru Support Desk Support Agent. Their
existing WordPress role is not changed. Guru Support Desk adds its own agent capabilities
to that user.

### What are the Guru Support Desk agent roles?

Main Agent is the unique fallback/default agent and always sees all tickets. Manager
also always sees all tickets and can reassign tickets from the front-end Agent desk.
Support Agent is the regular role and can be configured for Only Assigned Tickets
or All Tickets.

### What happens when I choose a new Main Agent?

There can be only one Main Agent. Promoting another enabled agent to Main Agent 
automatically changes the previous Main Agent to Manager.

### What does Agent View control?

Agent View controls front-end ticket visibility for regular Support Agents. Only
Assigned Tickets restricts the agent to tickets assigned to that user. All Tickets
gives the agent access to all tickets. Main Agent and Manager are always All Tickets.

### Is Only Assigned Tickets just a visual filter?

No. The restriction is enforced server-side across front-end lists, counts, search,
direct ticket access, replies, notes, status changes, CC actions, private attachments,
and other ticket actions.

### Who can reassign tickets?

On the front-end Agent desk, Main Agent and Manager see an Agent dropdown and can
reassign tickets by AJAX. In wp-admin, WordPress administrators can reassign tickets.
Regular Support Agents do not get reassignment authority.

### Who receives a ticket created manually by an agent?

A ticket created with Add New by an enabled Support Agent is assigned to the agent
who created it.

### What happens when a Support Agent is disabled?

The current Main Agent cannot be disabled until another enabled agent becomes Main
Agent. When a non-Main Agent with assigned tickets is disabled, Guru Support Desk
asks which enabled agent should receive those tickets and defaults the destination
to the Main Agent.

### Can Support Agents work from the front end?

Yes. When a logged-in user is enabled as a Guru Support Desk Support Agent, the 
Support shortcode displays the Tickets desk instead of the normal customer portal.

### Are the backend and front-end Agent ticket desks different systems?

No. They share the same ticket data and core AJAX actions. The front-end Agent desk
uses the active site’s front-end presentation instead of the full wp-admin visual
layer.

### Can I merge duplicate tickets?

Yes. An agent can merge two eligible tickets that belong to the same customer/email.
The merge selector lists the customer’s eligible tickets by most recent activity
and lets the agent search the list.

### Can I choose which ticket remains after a merge?

Yes. After selecting the second ticket, Guru Support Desk asks which of the two 
tickets should remain as the main ticket. The selected destination keeps its ticket
number and ticket-level settings, while the source conversation is merged into the
destination in chronological order.

### What happens to a ticket after it is merged?

The source ticket is retained as merged history instead of being treated as a normal
active ticket. Merge notes identify the source ticket and the destination ticket
number at the time of the merge, making multi-step merge history easier to follow.

### What happens if I Trash or permanently delete a ticket with merged history?

The merged chain is treated as one lifecycle unit. Moving the surviving ticket to
Trash also trashes tickets previously merged into it. Restoring it restores that
merged history, and permanent deletion removes the full merged chain. This follows
multi-step merge lineage recursively.

### Does merging tickets send email?

No. The merge itself does not send a customer or CC email.

### What is the Activity tab?

Activity is a backend-only audit view for authorized administrators. It records 
supported ticket and agent events such as ticket creation, replies, notes, assignment,
status and priority changes, Trash/Restore/delete actions, merges, agent changes,
and customer default-agent changes. The view can be filtered and searched with pagination.

### What happens if I start a Reply or Internal Note and try to leave the ticket?

Guru Support Desk detects unsaved composer content or attachments and warns the 
agent before navigating away. The warning identifies whether the unsaved work is
a Reply or an Internal Note.

### How do CC participants work?

CC participants are persistent people associated with a ticket. They are checked
by default in the Agent Reply composer, but the Agent can include all, some, or 
none on an individual reply. Agents can also add a new persistent CC participant
while composing.

### What happens when a CC participant replies by email?

A sender already stored as a CC participant can reply into the existing ticket and
is labeled as CC. An unknown sender cannot inject a message into an existing ticket.

### Does being CCed grant Support page access?

No. The primary customer remains the ticket owner. CC participation is email-based
and does not grant customer portal ownership.

### Are Internal Notes private?

Yes. Notes are excluded server-side from customer-facing output and are never emailed
to the primary customer or CC participants.

### Can replies include pasted images and emojis?

Yes. Supported TinyMCE reply/note editors include a searchable emoji picker and 
support pasted or dragged PNG, JPEG, GIF, and WebP inline images. The front-end 
agent sender waits for pending inline-image uploads before submitting the reply.

### What attachment file types are accepted?

Guru Support Desk accepts JPEG, PNG, GIF, WebP, PDF, TXT, CSV, RTF, ICS, DOCX, XLSX,
and PPTX attachments. Executable files, scripts, SVG files, ZIP files, and other
archive formats are not accepted or copied into private uploads storage.

### Is IMAP required?

Only for inbound email and server mailbox cleanup.

### How does automatic mailbox processing protect against missed mail?

The Inbox is continuously reconciled against the Support Desk database. Guru Support
Desk validates UID/Message-ID mappings against real tickets, repairs stale mappings,
retries failed UIDs, processes large backlogs in resumable batches, and isolates
individual message failures so one bad email cannot block newer mail.

### What happens if an email declares a strange charset?

Guru Support Desk attempts safe charset aliases and conversion fallbacks. Unsupported
or invalid MIME charset declarations are logged and cannot crash the entire polling
run.

### What happens if WordPress cron stops running?

The plugin monitors polling heartbeat health, detects missing/overdue/stalled cron
events, recreates the mail schedule when possible, and can queue a protected request-
side polling fallback. Production sites can still use a real server scheduler for
predictable WordPress cron execution.

### Where can I see polling and schema health?

Settings > General > System Status shows WP-Cron health, WP-Cron mode, PHP IMAP,
database schema health, logging status, private storage, last/next mail activity,
worker/recovery state, mailbox reconciliation, pending IMAP retries, and the last
error when present.

### How does diagnostic logging work?

Logging is enabled by default. Operational events and errors are kept for 10 days,
then automatically removed. Settings > Logs has an on/off toggle and Download Logs
button. Log contents are not rendered in the WordPress admin page.

### Where are private attachments and diagnostic logs stored?

Guru Support Desk resolves the current site’s uploads directory at runtime with `
wp_upload_dir()` and stores private files below `uploads/guru-support-desk/private`.
The private directory includes server access-denial files, and attachments are delivered
through permission-checked WordPress handlers rather than public file URLs. Legacy
attachment paths from earlier builds are read only for compatibility and are copied
into the uploads-based storage when accessed.

### Is SMTP required?

No. When dedicated SMTP is configured under Guru Support Desk > Settings > Email,
all Guru Support Desk generated email uses that SMTP connection directly. If dedicated
SMTP is not configured, the plugin falls back to the site’s normal `wp_mail()` configuration.

### Where do customer email replies go?

Customer-facing mail explicitly uses the configured support mailbox as Reply-To,
preferring From Email, then IMAP Username, then SMTP Username.

### Does the plugin delete email from the support mailbox?

Only for Closed or Trashed tickets. Active New, Open, Pending, and Awaiting Reply
tickets are protected from server-mail cleanup.

### What happens when a customer replies to Pending?

It stays Pending and shows Customer Replied. Pending does not use Needs Reply or
Urgent aging.

### What is Customer Responded?

Customer Responded is based on the latest public message sender. It appears when
the latest relevant message is inbound from the primary customer or a saved ticket
CC. An agent reply does not create that indicator.

### How does Needs Reply work?

Eligible New/Open tickets with a waiting timestamp age into Needs Reply and then
Urgent using the thresholds in Settings > General. Pending, Awaiting Reply, Closed,
and Trash are excluded.

### Can customers reopen closed tickets?

Yes. A customer can reply from the Support page, or by email when inbound processing
is enabled.

### Can any Working ticket be moved to Trash?

Yes. Any ticket that is not already in Trash can be moved to Trash when the current
user has access to it. Working and Closed queues also support bulk Move to Trash
actions.

### Where is the full documentation?

Click Documentation under Guru Support Desk on the Plugins screen, or View Documentation
in the Guru Support Desk dashboard.

### Does deactivation delete data?

No. It clears the scheduled mailbox event and refreshes rewrite rules, but support
data remains.

### Can I upgrade from the previous Guru Support plugin?

Yes. Guru Support Desk retains supported legacy tables/options, shortcodes, credential
constants, cron/checkpoints, and endpoint compatibility where implemented.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Guru Support Desk” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Guru Plugins ](https://profiles.wordpress.org/guruplugins/)

[Translate “Guru Support Desk” into your language.](https://translate.wordpress.org/projects/wp-plugins/guru-support-desk)

### Interested in development?

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

## Changelog

#### 2.2

 * Added a Reopen button as the first action in the single-ticket composer for closed
   tickets.
 * Added Reopen Selected to the Closed Tickets bulk actions, immediately before 
   Move Selected to Trash, with AJAX reopening to Open status.
 * Reopen actions preserve ticket data and record the Closed to Open status change
   in ticket activity.
 * Improved inbound HTML email cleanup so Outlook and Microsoft Office VML/CSS metadata
   does not appear as visible ticket text.
 * Cleaned HTML before plain-text fallback extraction so style and document metadata
   cannot leak into stored email text.
 * Changed customer conversation rendering to collapse detected quoted email history
   instead of removing it, reducing the risk of legitimate client reply text being
   hidden by aggressive quote detection.
 * Settings Save requests now use standard AJAX form encoding for reliable repeated
   saves and clearer 403 diagnostics.
 * Color pickers now open only from the color square; HEX fields remain fully editable
   text inputs and never open or close a picker.
 * Added inline AJAX save feedback beside the General Settings and Email Settings
   Save buttons, with a spinner while saving and Saved confirmation on success.
 * Moved IMAP and SMTP connection-test results beside their respective buttons instead
   of using the dashboard-wide notice.
 * Moved Send Test Email and Check Mail Now AJAX feedback beside the action that
   triggered it for more consistent, visible status reporting.
 * Added inline success and error status styling with accessible live-region feedback
   for AJAX actions.

#### 2.1

 * Moved the front-end Support Agent heading avatar to the right of the agent name.
 * Increased the heading-only agent avatar to 48px without changing avatar sizing
   elsewhere in the support desk.
 * Made the heading avatar decorative for assistive technology because the agent
   name is already visible in the heading.
 * Tightened the front-end Agent ticket search spacing and normalized the search
   control height.
 * Aligned the Working queue Status, Priority, date, Filter, and Clear Filters controls
   to a consistent 30px height.
 * Normalized the front-end Agent header action button heights for a cleaner toolbar.
 * Improved tablet and narrow-screen wrapping for the ticket header, queue filters,
   refresh status, and search controls.
 * Retained file-modification timestamp asset versioning so updated CSS and JavaScript
   continue to cache-bust automatically.
 * Added a bulk Close action immediately left of Move to Trash so agents can close
   multiple selected Working tickets at once, with the normal customer closure notification
   sent for each ticket.

#### 2.0

 * Added manual same-customer ticket merging with searchable candidate selection.
 * Added two-way merge direction so agents can choose which of the two tickets remains
   as the main ticket.
 * Added chronological merged conversation history, destination-number merge notes,
   merged-ticket redirects, CC carryover, and inbound email routing to the surviving
   ticket.
 * Added recursive merged-chain lifecycle handling for Trash, Restore, permanent
   deletion, bulk deletion, and Empty Trash.
 * Added a backend-only Activity audit log with filters, search, pagination, ticket/
   customer context, and supported ticket/agent event logging.
 * Added unsaved Reply/Internal Note protection with mode-specific confirmation 
   messaging.
 * Added customer ticket counts to front-end and backend agent ticket views with
   direct Customer-page navigation.
 * Added a Back to Tickets control to individual backend ticket views.
 * Added a Trash action beside the single-ticket reply and close controls in both
   wp-admin and the front-end Agent desk.
 * Improved front-end modal layering so Agent Desk modals remain above site headers,
   footers, admin bars, and other high stacking layers while retaining scoped modal
   styling.
 * Tightened Merge Ticket modal results into compact, scrollable ticket lists on
   both front-end and backend views.
 * Improved WordPress admin button styling for backend confirmation modals.
 * Improved Plugin Check compatibility for translation placeholder comments and 
   prepared Activity queries.

#### 1.1

 * Added support agent WordPress profile pictures throughout the agent-facing and
   admin interfaces.
 * Agent avatars display to the left of agent selectors and reflect the currently
   selected agent.
 * Agent avatars display to the left of agent names where no selector is shown.
 * Agent avatars stay synchronized during AJAX agent reassignment, including rollback
   when a reassignment fails.

#### 1.0

 * Initial public release.
 * Includes customer web tickets, inbound email tickets, staff-created tickets, 
   internal agent roles/views, front-end and backend Agent ticket desks, live ticket
   reassignment, persistent CC participants, private attachments, inline images,
   emojis, Internal Notes, response aging, permanent ticket numbers, optional WooCommerce
   context, IMAP/SMTP, mailbox reconciliation, cron self-repair, private 10-day 
   diagnostic logging, customer email branding, and AJAX-powered ticket management.

## Meta

 *  Version **2.2**
 *  Last updated **6 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/guru-support-desk/)
 * Tags
 * [customer support](https://bcc.wordpress.org/plugins/tags/customer-support/)[helpdesk](https://bcc.wordpress.org/plugins/tags/helpdesk/)
   [support](https://bcc.wordpress.org/plugins/tags/support/)[ticket system](https://bcc.wordpress.org/plugins/tags/ticket-system/)
   [woocommerce](https://bcc.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://bcc.wordpress.org/plugins/guru-support-desk/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/guru-support-desk/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/guru-support-desk/reviews/)

## Contributors

 *   [ Guru Plugins ](https://profiles.wordpress.org/guruplugins/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/guru-support-desk/)