Documentation  ·  Revolutionary Ticketing 0.4.6

Revolutionary Ticketing, set up and running your helpdesk.

How to add the customer portal to your site, work tickets with your team, tune notifications, and extend the helpdesk with custom fields, SLAs, the REST API and webhooks.

Released version 0.4.4

Current release setup and checks

Let customers open support tickets while your team manages the conversation in WordPress.

  • Ticket attachments use protected storage and an unguessable path. The released interface does not yet display or download ticket attachments.
  • The released Chat Bot integration carries the Security CAPTCHA challenge when it offers the inline ticket form.
  • The ticket list has bulk status, priority and assignment actions and saved views for My open, Unassigned urgent and Breaching SLA tickets. Auto-close of resolved tickets is off until a number of days is set through the revticket_auto_close option or filter. There is no settings screen for it.

Check your setup

  • Place the ticket form and customer ticket views using the documented widgets or shortcodes.
  • Test as the ticket owner and as a different signed-in test user to check access isolation.

Quick start

Up and running in minutes

Step 1

Install and activate

Upload the plugin zip under Plugins, Add New, Upload Plugin, and activate. The agent and requester roles, default statuses and priorities are created.

Step 2

Create three pages

Submit a ticket, My tickets and View ticket, each with its shortcode or block.

Step 3

Set who hears about it

Ticketing, Settings. Enter notification recipients and choose who can submit.

Step 4

Open a test ticket

Submit a ticket from your site, then reply to it and watch the emails go both ways.

Start here

Getting started

Ticketing lives under Revolutionary Plugins, Ticketing, with three tabs: Dashboard, Tickets and Settings.

yoursite.com/wp-admin/admin.php?page=revticket-settings&tab=dash
Ticketing dashboard

Requirements

  • WordPress 5.9 or later
  • PHP 7.4 or later

License and updates

Updates come from the Revolutionary update server under your Revolutionary license. Enter the license key once in Multipurpose Dashboard, Welcome.

What activation sets up

  • The Ticket Agent and Ticket Requester roles
  • Five statuses: Open, In Progress, On Hold, Resolved and Closed
  • Four priorities: Low, Medium, High and Urgent

The dashboard

Counts of total, open, closed and unassigned tickets, tickets by status, the most recent tickets, and quick links to create a ticket, view all tickets and open settings.

Your site

Set up the customer portal

Customers use three pages. Build each with a shortcode or the matching block.

PageShortcode
Submit a ticket[revticket_submit]
My tickets[revticket_my_tickets view_url="/ticket/"]
View ticket[revticket_view]

Shortcode options

  • [revticket_submit require_login="yes"] shows the form only to signed-in visitors. The default is no.
  • [revticket_my_tickets limit="25" view_url="/ticket/"] sets how many tickets to list and which page opens a ticket.
  • [revticket_view id="0"] shows the ticket named in the link. Pass an ID to pin one ticket.

Attachments

Customers can attach up to 5 files per submission, up to 10 MB each. Images, PDF, text and CSV files are accepted.

Your team

Working tickets

Ticketing, Tickets opens the ticket list. Sort by any column and filter by status, priority or tag.

yoursite.com/wp-admin/edit.php?post_type=revticket
Ticket list with filters

The Ticket Details box

On each ticket, set the requester's email, the assigned agent and a due date. Choose the status, priority and tags in the side boxes, the same way as categories on a post.

yoursite.com/wp-admin/post-new.php?post_type=revticket
New ticket with the Ticket Details box

Replies and internal notes

Replies are stored as comments on the ticket. When an agent replies from the ticket page on your site, an Internal note box keeps that reply staff-only. Internal notes are never emailed and do not count as a first response.

Statuses and priorities

Rename, add or remove statuses just like categories, on the Statuses screen, a standard WordPress terms screen for the ticket status list. It is not in the menu, so bookmark it: wp-admin/edit-tags.php? with taxonomy=revticket_status and post_type=revticket.

yoursite.com/wp-admin/edit-tags.php?taxonomy=revticket_status&po
Ticket statuses

Priorities work the same way, on the matching Priorities screen (the same address with taxonomy=revticket_priority). Keep the low, medium, high and urgent slugs if you use SLA targets, which are keyed by priority slug.

yoursite.com/wp-admin/edit-tags.php?taxonomy=revticket_priority&
Ticket priorities

Access

Roles and permissions

RoleCan do
AdministratorEverything, including settings
Ticket AgentSee, edit, assign and reply to every ticket, and write internal notes
Ticket RequesterOpen tickets and see and reply to their own

Settings

Settings and email templates

Ticketing, Settings has two sections: General and Email Templates.

yoursite.com/wp-admin/admin.php?page=revticket-settings&tab=sett
General settings and email templates

General

SettingDefaultWhat it does
Notification recipientsThe site admin emailStaff addresses told about new tickets and customer replies
Default priorityMediumPriority for tickets that do not set one
Who can submitEveryone (guests included)Everyone, Logged-in users, or Customers with an active subscription

Email templates

Edit the subject and body of four emails: new ticket, status change, reply, and assignment. Placeholders include {site}, {title}, {content}, {requester}, {status}, {reply}, {assignee} and {edit_url}.

Developers

Custom and conditional fields

Add fields to the submit form with the revticket_custom_fields filter. Fields are declared in code so they live in version control.

Supported types are text, textarea, email, url, number, select and checkbox. Each field needs a key, a label and a type, and can be required. Values are saved on the ticket and returned in the REST API under custom_fields.

Show a field only when it applies

Give a field show_if with a field (priority or another custom field key) and the value or values that reveal it. A hidden field is never required and stores nothing, and without JavaScript every field stays visible.

Developers

SLA targets and business hours

Set targets with the revticket_sla_policies filter and working hours with revticket_business_hours. There is no settings screen for them yet.

  • Targets are per priority, in minutes, for first response and for resolution. A target of 0 means that clock is not tracked.
  • Deadlines are measured from when the ticket arrived, so raising a week-old ticket to Urgent shows it as already late.
  • An hourly check flags breaches once per ticket and fires revticket_sla_breached.
  • Business hours allow several windows per day (for a lunch break, say) and a list of holiday dates. All times use your site's time zone.

Developers

REST API and webhooks

Connect Ticketing to other systems.

Endpoints

Method and pathDoes
GET /ticketsList tickets, with paging and filters for status, priority, tag, assignee and search
POST /ticketsOpen a ticket
GET /tickets/{id}Read one ticket
PATCH /tickets/{id}Update status, priority, assignee, tags and due date (agents) or custom fields
GET /tickets/{id}/repliesRead the conversation
POST /tickets/{id}/repliesAdd a reply

All paths are under /wp-json/revticket/v1/. Authenticate with a WordPress application password. Each user sees only the tickets they are allowed to see.

Webhooks

Register endpoints with the revticket_webhook_endpoints filter, each with a url, a secret and an optional list of events. Deliveries are queued in the background and signed in the X-RevTicket-Signature header as an HMAC SHA-256 of the raw body.

Retries

A failed delivery is retried after 1, 5 and 30 minutes. A 4xx response is not retried, except 408 and 429. After the last attempt, revticket_webhook_failed fires. Use the X-RevTicket-Delivery header to ignore duplicates.

Troubleshooting

Common questions

Check that the reply template is not empty and that your site can send mail. Revolutionary SMTP sends through a real mail service and logs every message.

Check Who can submit in Settings. If it is set to Customers with an active subscription and your site has no license server, only staff can submit.

No. Use wp-admin or the REST API.

Yes. Return an empty body from the revticket_notification_body filter for that event and audience, and only that message is skipped.

Compute the HMAC over the raw request body, not over re-encoded JSON, and compare with hash_equals.

Stuck on something?

Search the forums, open a ticket, or write to us. A real person reads every message.