Communication -> Tickets in your admin sidebar.
Everything your traders send you lands here. One conversation per ticket, with the full history, images, internal notes for your team, and whatever the assistant already said before a person took over.
Two permissions govern it: view_tickets to read the queue, manage_tickets
to reply, take, assign, tag, reprioritise, open and end tickets. Someone with
only view_tickets reads every conversation but gets no reply box, no pickers
and no actions, with a line under the thread saying why.
The queue
The screen opens on the list alone, across its whole width, and on what waits for your team: the tickets that need a reply. Nothing opens until you pick a ticket, so one trader's conversation is never on screen for whoever walks past.
The line under the title counts every ticket, then the ones that need a reply, the ones you or your teams hold, and the ones nobody holds, with how long the oldest waiting ticket has been waiting. Each count is also a filter: click it to see only those, click it again to go back.
Each row is a ticket with its subject, the trader, who spoke last and how many messages nobody on your team has read yet, who holds it, its priority, when something last happened, its tags and its status. Columns drop off as the screen narrows, and the ticket always stays. A row with a reply you started and did not send carries the word Draft.
The default order is the queue: tickets that need a reply first, the most urgent of those on top and then the one waiting longest, then what the assistant is still answering, then what waits on the trader, then what ended. The filter menu sorts by latest activity, newest, oldest or priority instead, and so does clicking the head of a column.
The filter menu narrows the list by status (needs a reply, everything open, with the assistant, waiting on the trader, resolved and closed, or all), by who holds it (you and your teams, nobody, or a person), by team, by priority and by tag. The list holds fifty tickets to a page.
The search box finds a ticket by subject, trader name or email address, and by
any word in the conversation itself. It also takes a whole tkt_ id or the
short ticket number (#Q8R3T6), and a trader's usr_ id finds that trader's
tickets. The search stays within the status the list is filtered on, and when
it finds nothing there it offers to search all tickets.
The address keeps all of this. A link to the list or to one ticket opens on exactly the same filters, page and tab, and a link from a notification or a mail opens straight on the ticket.
Working through it
J and K move through the list, and Enter opens the ticket they rest on. While a ticket is open the list folds into a column on its left, and J and K walk the queue with the conversation following them. Escape closes the ticket and returns to the same list.
A right click on a row offers what can be done without opening the ticket: take it, resolve it, change the priority, add or remove tags, open the trader, show only this trader's tickets or only this priority, copy the ticket number, its id, the trader's email address or the link, and close it.
Resolving or closing the open ticket moves on to the next one still in the list, so a morning's queue is worked top to bottom without going back.
A ticket
The head of a ticket shows its subject, the trader, and what is true right now: whether the trader is online, whether the assistant is still answering or is blocked, how many payouts are linked to it, and whether the ticket waits on a warning before it closes itself. Beside it are the two decisions: Take it when somebody else or nobody holds it, and Resolve. The more menu renames the ticket, blocks or allows the assistant, copies what identifies it, and closes it.
Under the head, a row of facts you can change on the spot: who holds the ticket, which team, the priority and the tags. These act at once rather than waiting for a save, because a colleague working the same queue needs to see them now.
Then three tabs.
Conversation is the thread with the reply box under it. Replies from your team carry the name of who wrote them, and a reply the trader has read says when. Internal notes, instructions for the assistant and lines from the system look different from what the trader sees, so nobody mistakes one for the other.
Trader is who is asking, so a question can be answered without opening
Users in another tab: their email address, when they were last seen, when they
joined, whether their identity is verified, where they are and what language
they use. With the right permission it also shows their open fraud flags
(view_fraud), their accounts with status and balance (view_accounts), the
payouts linked to this ticket (view_payouts), and every other ticket they
opened, each one opening here. A tab you lack the permission for simply leaves
that part out.
Activity is what happened to the ticket and who did it: taking it, passing
it on, tagging, renaming, resolving and closing. It needs view_activity_logs
and links to the full activity log for this ticket.
Opening a ticket yourself
New ticket at the top of the list opens a form in the same place a ticket opens. Search for the trader, write a subject and the first message, pick a priority, and the save dock opens it.
The trader gets it as an answer from your team, and by mail when they are not on the platform. The assistant stays out of a ticket your team opened: it starts blocked, so the trader cannot call it in until someone on your team allows it again. Whoever opened it holds it. A trader has one open ticket at a time, so picking a trader who already has one says so and offers to open that one instead.
Leaving the form with something typed in it asks first whether to save, discard or stay.
Replying
The reply box has two modes: Reply, which the trader gets at once and by mail when they are not on the platform, and Note, which only your team sees. Enter sends and Shift+Enter starts a new line. You can attach one image per message, JPG, PNG, GIF or WebP, up to 10 MB.
What you type is kept in this browser per ticket until you send it, so walking the queue with J and K never loses half an answer.
The first reply takes the ticket if nobody held it, and switches the assistant off for it. That is deliberate: the common case needs no extra click, and two people are less likely to answer the same trader twice.
A note and a reply sit in the same thread
Check which mode the box is in before you send. The placeholder and the button say which one it is.
How a ticket arrives
A trader opens a ticket from the Live Support button in their own dashboard. What happens next depends on the support mode set under Support settings:
| Mode | What happens |
|---|---|
| AI first (with human handoff) | The assistant answers immediately and hands over to your team when it cannot help |
| Human only | The ticket goes straight to your team, no assistant involved |
| Disabled | Traders cannot open tickets. Point them somewhere else with the external contact URL |
In AI first mode the ticket opens with the assistant switched on for that conversation. It answers from your own FAQs and settings, and hands over when:
- the trader explicitly asks for a person,
- it cannot answer the question with confidence,
- the trader is frustrated or angry,
- the problem is account specific, such as a payout, a suspected bug or a dispute about your rules,
- or the assistant itself fails.
A handover sets the ticket to Needs a reply, switches the assistant off, notifies your team, and drops a note in the thread saying why it handed over. You pick up the conversation knowing what the trader already tried.
The assistant never overrules a person
Once anyone on your team replies, the assistant is switched off for that
ticket. It does not come back on its own, and it does not answer when the
trader writes again. It only returns if someone asks for it with the /ai
command below.
Statuses
| Status | Meaning |
|---|---|
| With the assistant | New, or being answered by the assistant |
| Needs a reply | The ball is with your team. Either the trader replied, or the assistant handed over |
| Waiting on trader | Your team replied last and is waiting on an answer |
| Resolved | Your team answered the question and said so |
| Closed | Ended without being resolved: the trader closed it, your team closed it, or it timed out |
The first three follow what actually happened in the conversation rather than anything you set by hand, which is what makes Needs a reply trustworthy as a work queue.
The last two are the two ways a ticket ends, and the difference is the point. Resolve says the trader got their answer, Close ends it without that claim. Both are final and neither reopens, so a trader with a new question opens a new ticket. Both ask first, and the trader sees a line in the thread when your team resolves a ticket, so the conversation does not just stop on them.
Resolve is what you want to be able to count
Closed says a conversation ended. Resolved says it ended well. Keep the distinction honest and the numbers mean something later.
Tickets that time out
A ticket waiting on a trader who never comes back would sit in the list forever. So it does not:
- After five days with no reply, the trader gets one email saying the ticket is waiting on them, and a line goes into the thread saying the same. The head of the ticket shows when that warning went out.
- Two days later, if they still have not written, the ticket closes itself with a note in the thread. Nothing is deleted. It moves to resolved and closed with its full history.
Any message from either side clears the countdown, so answering, even on the last day, puts the ticket back to normal. A ticket is never closed without the warning having gone out first.
Five and two days are the platform's defaults. Each firm sets its own numbers, or switches closing off so a quiet ticket stays open until somebody closes it, under Support settings.
The email is Ticket reminder on the Email templates screen, editable and switchable like every other transactional mail, and switchable from Support settings too. Switching it off does not switch off the timeout: the ticket still closes, the trader just is not told in advance. Replying to that email answers the ticket, same as the reply notification.
Priorities
Low, Normal, High or Urgent, set by your team and changeable at any time. The trader does not choose it and does not see it, so it stays useful as an internal signal rather than turning into a race. Within the tickets that need a reply, the queue puts the most urgent on top.
Assignment and teams
A ticket can go to a person, to a support team, or both. Teams are groups of your staff, so a ticket can land with "Payouts" rather than with a specific person who might be on holiday. Teams are made and changed with Manage teams, in the filter menu of the list and in the team picker of a ticket. A team name has to be unique within your firm, and only your own staff can be members.
Managing teams needs manage_support_settings, because teams are also used by
the settings on the Support settings screen.
Who gets notified
Every time a ticket moves to Needs a reply, whether a trader replied, the assistant handed over or it failed, a notification goes out. Who receives it follows the assignment:
| The ticket is | Notified |
|---|---|
| Held by a person | That person only |
| Held by a team, nobody in particular | Every member of that team |
| Held by nobody | Everyone with view_tickets |
A person outranks their team, so a ticket that belongs to one person does not ring for the rest of it. Each step falls back to the next when it would reach nobody: held by someone who has since been switched off or lost the permission, and it still reaches their team, and otherwise everyone. Silence is the one outcome worse than noise.
Handing a waiting ticket to someone else notifies the new holder straight away. Beyond that the same ticket only notifies once every five minutes, so a burst of events cannot turn into a burst of bells.
Tags
Tags are yours to define, each with its own colour, and a ticket can carry several. They are the fastest way to find out what your traders actually ask about, because you can filter the list on one and count. The trader never sees them.
Tags are set from the ticket or from a row's right click menu, and made,
renamed, recoloured and deleted with Manage tags in the same places.
Deleting a tag takes it off every ticket, and the tickets stay. All of it needs
manage_tickets. Tags can still be changed on a ticket that ended, so the
count stays honest afterwards.
Commands
Typing / in the reply box opens a short menu of commands. Both sides of a
ticket have them: your team on this screen, the trader in their support popup.
Pick one with the arrow keys and Enter, or type it out and send.
| Command | Who | What it does |
|---|---|---|
/ai <instruction> (or /agent) | Your team | The assistant writes the next reply to the trader, following your instruction |
/close (or /exit) | Both | Closes the ticket, after the same confirmation as Close in the menu |
/ai (or /agent) | The trader | Switches the assistant back on for their ticket |
/ai for your team needs an instruction. /ai send our pricing overview
posts an answer to the trader written by the assistant, and you watch it being
written in the thread. Bare /ai does nothing except tell you to add one. What
you typed stays behind as an internal note, so your team can see what was
asked for, while the trader only ever sees the answer. The ticket stays yours:
your name stays on it, the assistant does not take the conversation over, and
the status moves to Waiting on trader like any other reply.
/ai for the trader takes no instruction. It switches the assistant back on
for that ticket and drops a line in the thread telling them to go ahead and ask.
Their next message goes to the assistant instead of to your team. It is only
offered when your support mode allows the assistant at all, and never while the
assistant is already answering.
Blocking the assistant
Block the assistant in the more menu of a ticket takes that command away from the trader. Use it when someone keeps flipping the conversation back to the assistant, or when a case is too delicate for it. Blocking a ticket the assistant is still answering hands it to your team on the spot and tells the trader so.
Your own /ai keeps working on a blocked ticket. The block is about who may
call the assistant in, not about whether your team may use it. Allow it again
from the same menu.
Tickets about a payout
A ticket can also start from the Payouts queue,
when your team needs something from a trader before paying them. It opens with
your message, is held by whoever opened it, waits on the trader, and starts
with the assistant blocked. For those with view_payouts the head of the
ticket says how many payouts are linked to it, and the Trader tab lists them,
each one opening that payout.
Images
Both sides can attach an image to a message. Screenshots of a chart, a rejected order or a payment page are usually faster than a paragraph.
Images are served through the application, not from a public URL. Someone who gets hold of the link but is not on your team or not the trader in question cannot open it.
Real time
The list and the open ticket follow what happens without reloading. A new ticket, a reply from a trader or a colleague taking a ticket shows up in the list within a second, and a message appears in the open conversation as it is sent. While the assistant writes, its answer appears word by word.
A dot beside the title of the list breathes while that connection stands. When it drops the title says since when, and the list reads everything again once it is back, because what happened in between was not heard.
You also see when a trader is typing: a line under the last message while they type, which disappears when they send or stop. It runs entirely over the connection, so it never touches the server or the ticket history. It works one way only. Traders do not see your team typing, which keeps the pressure off an agent who opens a ticket, reads it and needs a minute to work out the answer.
Opening a ticket marks the trader's and the assistant's messages as read for your team. Your own replies never make something look unread.
Things worth knowing
Ending is not deleting. A resolved or closed ticket keeps its full history and stays searchable under resolved and closed.
A trader can close their own ticket. If they solved it themselves, they can end the conversation without waiting for you.
A finished ticket stays finished. Neither side can reopen one, so a trader coming back with something new opens a new ticket and your team reads a clean question instead of a thread that changed subject three times.
If the assistant fails, the trader is never left waiting. When it cannot produce a reply, whether from a provider error or a timeout, the ticket moves to Needs a reply and your team is notified.
Tickets to us are a different inbox. Questions from your own staff to Propper live under a separate platform ticket screen, not here. This list is only your traders.
In the older designs
Propper - OG and Tactical keep the inbox they launched with: five tabs across the top (Open, Mine, Unassigned, Closed, All) with priority and tag filters, ordered by the last message, and a separate page per ticket with the conversation and a side column. The tag and team managers open as dialogs from the inbox. Opening a ticket yourself, the queue order, searching the conversations, the Trader and Activity tabs, drafts kept per ticket and walking the queue with the keyboard are only in the standard design.
Related: Features for what else the platform does.