CSR for Craft CMS

Lite free · Pro $99 · Craft CMS 5

The cheapest support ticket is the one nobody raises

CSR is a help centre and a support desk that live inside Craft. Articles are real pages that Google can find. The search box keeps a list of what it could not answer, so you know what to write next. The support form shows the likely answer before it will take a message, and counts how often that worked. The tickets that still arrive come with a clock on them.

CSR

Craft-native all the way down

Articles and tickets are elements. Field layouts, per-site URLs, search, relations, permissions, the trash, element indexes and the exporter are Craft's own, not a second copy of each. The help centre works as soon as it is installed, and any single page can be taken over by copying its template into your own.

twig
{# Only what this visitor may read — the gate is in the query #}
{% set articles = craft.csr.articles({ category: 'billing', limit: 10 }).all() %}

{# The same search the help centre, the live dropdown and the support form use #}
{% set results = craft.csr.search(craft.app.request.getParam('q')) %}

{# Likely answers for a half-typed subject, before a ticket exists #}
{% set suggestions = craft.csr.suggest(subject, categoryId) %}

{% for category in craft.csr.categories() %}
    <a href="{{ category.url }}">{{ category.name }}</a>
{% endfor %}

Features

Everything in a support desk exists to answer one question sooner. Most of CSR is about answering it before anybody has to ask.

One taxonomy, read from both ends

An article filed under Billing is what CSR shows somebody who is about to raise a Billing ticket. Articles and tickets share one category tree, so you never have to maintain a mapping between documentation and routing.

The searches that came back empty

Every search is logged with its result count and the article opened afterwards. The failed-search report ranks what people looked for and did not find, and a second list shows searches that found something and were abandoned anyway, which usually means a bad title rather than a missing article.

Also found by

Nobody searches for "payment instrument reconciliation"; they search for "why was I charged twice". Every article has a field for the phrases customers actually use, and the search reads it alongside the title and body.

Deflection you can believe

"They went away" and "they were helped" look the same from the server. CSR asks instead, with one button: "Yes, that answers it". The deflection rate is the number of people who pressed it, and abandoned sessions count on neither side.

A clock that pauses

SLA policies set first-response and resolution targets in your opening hours, skipping holidays, and escalate when a target is breached. While a ticket waits on the customer, the clock pauses, and the waiting time is given back when they reply.

Nobody needs an account

Most people who write to support have never logged in, so a ticket stores its requester's name and email and hands them a private reference. From that link they can read the conversation and reply. Internal notes are removed in the query, not by a template that someone might rewrite.

The report that pays for the licence

A knowledge base's most valuable page is the one it does not have yet, and the list of searches that came back empty is the only place its name is ever written down. CSR ranks them by how many people hit the same wall, measures how many people the suggestions sent away satisfied, and shows which articles readers said did not help and what they typed instead.

CSR's Searches report in the Craft control panel: a 'Came back with nothing' table ranking refund, change billing email, delete my account, api rate limit and dark mode by how many times each was searched with no results, then a 'Most searched' table showing how often each phrase led somebody to open an article
CSR's Deflection report: 144 visitors shown suggestions, 96 who said an article answered them, 32 who wrote in anyway and a 75% deflection rate, with a table of which articles stopped tickets
A CSR ticket in the control panel: the customer's message about a declined renewal, an internal note marked 'the customer never sees this', the agent's reply, a reply box with an internal-note switch, and a sidebar with status, priority, category and agent
CSR's Articles report: articles readers said did not help, the comments they left after saying no, and the most-read articles with their helpful percentage

Screenshots from a live install, not mockups.

Frequently Asked Questions

The questions that come up before replacing a help desk subscription with a plugin.

Write the article before the ticket

Lite is free and uncapped. Pro is $99 and adds the reports, SLAs, canned replies and teams. Install it, rename four categories, and the help centre is live at /kb.