MarketplaceCustomer support and help desks

Support Desk App

A help desk for a small support team. Customers search the Help Center, and when the guides are not enough they open a numbered ticket (RD-1042) and follow every reply in one place. Agents work a queue with filters, a split-pane ticket view, public replies and internal notes, canned replies and response targets that show what is overdue. Admins also run the help articles, the team and the settings. The interface comes in English and Romanian; tickets and articles are written once, in the language of whoever writes them.

Get this app
  • Included with the Starter and Pro plans
  • An exact copy of the whole application
  • Frontend, backend and data included
  • Yours to keep and change in your own repository
  • Multilanguage, for whatever country you need
Home page with search, a sample ticket and topics
Home page
pages on the website
7
console screens
6
backend workflows
14
data tables
7
roles: customer, agent, admin
3
Made for
  • Small teams that answer customer questions by hand
  • Software products, online shops and service businesses that need a Help Center and numbered tickets
  • Teams happy to start with tickets inside the app and add email later
  • Agencies building a support portal for a client
Every screen

See it the way customers and agents do

Answers first, a person second

  • A home page with a search box, a sample ticket card and topics to browse
  • Search across every published article, narrowed by topic
  • Articles with the topic's other guides alongside and a “Still need help?” box that opens a ticket
  • “Was this helpful?” votes, with how many readers said yes
Home page with search, a sample ticket and topics

1 / 6Home page with search, a sample ticket and topics

From question to answer

Every ticket has a number and an owner

The server checks who may see and change what at every step, and the response target counts down until someone answers.

  1. Opened
  2. Triaged
  3. Answered
  4. Resolved
New ticket with category, priority and response target
What you get

The whole application, one to one

Website

  • Home
  • Help Center
  • Article
  • Account, sign in and create account
  • New ticket
  • My tickets
  • Ticket conversation

Agent console

  • Dashboard
  • Tickets
  • Help Center
  • Canned replies
  • Team
  • Settings

Backend

  • 14 workflows for the Help Center, sign-in, tickets, replies, articles, canned replies, team and settings
  • 7 tables: Users, Categories, Tickets, Messages, Articles, CannedReplies, Settings
  • 4 categories, 10 sample help articles (one of them a draft), 6 canned replies and 14 sample tickets

Technology

  • React 18 web app, with Instrument Serif, Inter Tight and JetBrains Mono
  • Passwords stored as hashes; sign-in uses signed tokens that expire: 8 hours for staff, 7 days for customers
  • Role and active status re-checked in the database on every call, so a deactivated user is locked out immediately
  • Customers can reach only their own tickets, and internal notes are never sent to them
  • Sign-in and voting are rate-limited, and 5 failed attempts lock an account for 15 minutes
  • Every input validated on the server, with field whitelists against mass-assignment
  • User text shown as plain text, never as HTML; no secrets in the client code, the JWT secret lives in the Ubex Vault
  • English and Romanian interface, with dates formatted for each
In the admin

Change it without touching code

  • Company name, tagline, support email, announcement banner and opening hours text
  • The response target, in hours, for each priority
  • Help articles, canned replies, who is on the team and their roles, and every ticket's status, priority, category and assignee
In the code

A quick edit to make it yours

  • The home page headline and introduction
  • The sample ticket card on the home page
  • The text beside the sign-in form
  • The colours and fonts
  • Any interface text, in the English and Romanian language files
Setting it up

Seven steps to your own help desk

You will need

  • A Ubex account, where the app's workflows and tables run
  • Your own help articles and canned replies, ready to paste in
  1. Add your own JWT_SECRET in the Ubex Vault.
  2. Set the app's address in the allowed origins of the workflows.
  3. Clear the demo tickets, messages, customers and staff accounts from the tables.
  4. Publish the app on a subdomain or custom domain.
  5. Sign up with your own account, then make it an admin in the Users table.
  6. Enter the company name, support email, opening hours and response targets in Settings.
  7. Replace the sample help articles and canned replies with your own, and add your agents from Team.
Good to know

What it doesn't do

Better to know now than later. You can add any of this yourself: the code is yours to change.

  • No email notificationsTickets live inside the app: nobody is emailed about a reply or a status change. Email and other integrations are for you to set up.
  • No password reset or email verificationThere is no way to reset a forgotten password from the app, and email addresses are not verified.
  • No file attachmentsTickets and replies are text only.
  • No live chatA conversation is a ticket with replies, not a real-time chat.
  • No CSV exportNo export of tickets, customers or reports.
  • Categories are not in the consoleCategories are changed in the Categories table, not on a screen.
  • Staff by promotionThere are no invitations: a person signs up as a customer, then an admin promotes them to agent or admin from Team.
  • Content in one languageThe interface switches between English and Romanian, but tickets, replies, help articles, canned replies and category names are written once, in the language of whoever wrote them, and are not translated.
  • Response targets by the clockResponse targets count wall-clock hours, with no business-hours calendar, so nights and weekends count too.
  • Days counted in UTCThe 7-day chart and the resolved-today count split days at midnight UTC, not in your local time.
  • Sized for a few thousand ticketsThe queue is designed for up to a few thousand tickets; a much bigger desk will need changes.
  • A starter, built to extendStrict basics on purpose. Add whatever else you need: the code is yours.

Everything in these screens is made up: Relay Desk, its customers, agents, tickets, articles and figures. The help articles are sample text, and some describe things this app does not include, such as resetting a password by email, so replace them with your own.

Open your own help desk

Get an exact copy, put your name on it and make it yours.