Ticket Comments User Journey

In scopePRD requirement QuestionNot answered by the PRD Out of scopeExcluded by the PRD

Scope

What this slice builds and leaves out.

In scope

In scopeComment stream on ticket detailFlat and chronological, in the right panel. Composer with placeholder and Post above the comments.F-01
In scope“@” mentionsAutocomplete over the whole company. Saved as a link to the person, not text.F-02
In scope“Mentions me” filterOn the ticket list. Shows tickets where I'm mentioned, assigned to me or not.F-03
In scopeUnread stateOne last_read_at per person and ticket, not per comment.F-04
In scopeAuthor-only edit and delete“edited” marker. History logs who, when and action.F-05
In scopeReusable rich-text editorWith inline commands. Later reused by Invoice and RentIncrease teams.F-06
In scopeInternal only commentsAnyone with ticket access can read and comment. Tenants and owners can't.§10

Out of scope

Out of scopeNotification center or inboxNo notifications or emails. Notifications initiative (PMP-39430) isn't planned.§3, §4
Out of scopeThreads and repliesOne flat stream per ticket.§3
Out of scopeAttachments in comments§3
Out of scopeInternal / external toggleNo comments for tenants or owners.§3
Out of scopeReactions, public read receipts, “@here” and “@team”§3
Out of scopeMigrating the Jodit editorExisting editor stays as is.§3
Out of scopeChanges to Accounting commentsAccounting module comments stay as they are.§3

Flow map: from question to record

Lead case: a property manager asks the accountant which budget line a roof-repair invoice goes against. Bottom lane: the mention is missed. Click a box to jump to its stage.

Stage or step Not answered by the PRD Decision Potential risk 2Open questions
PROPERTY MANAGER ACCOUNTANT AUTHOR / COLLEAGUE LATER IF THE MENTION IS MISSED 1 Need arises 2 Ask 3 Wait 4 Notice 5 Respond 6 Get the answer 7 Correct 8 Look back Mention missed Back to email 5 1 1 1 2 1

User needs

What the journey has to serve.

Asker

Mentioned person

Author

Everyone on the ticket

1

Need arises

Ask where the ticket lives, often on a ticket with no comments yet.

Journey detailsActor, actions, touchpoints, thinking, feeling, pain, opportunity
Actor
Property manager
Actions
Opens the roof-repair invoice ticket. Sees the budget line is unconfirmed. Looks for a place to ask, finds an empty Comments block.
Touchpoints
Ticket detail › right panel › Comments
Thinking
“Who do I ask, and where? Who will see this?”
Feeling
Today: stuck (−1) → With the PRD: clear where to ask (+1)
Pain today
Only a status field. No place to ask, so the question goes by email.
Opportunity
Empty state: what comments are for, who sees them, how to mention someone.

From the PRD

In scopeComments block in the ticket detail's right panelF-01, §7
In scopeComposer with placeholder and Post button, above the commentsF-01, §7
Out of scopeAttach the invoice to the question§3
2

Ask

Ask the one person who can answer, without giving the ticket away.

Journey detailsActor, actions, touchpoints, thinking, feeling, pain, opportunity
Actor
Property manager
Actions
Clicks into the composer. Writes the question. Types “@”, picks the accountant. Posts, or gets interrupted and clicks away.
Touchpoints
Composer, mention autocomplete, Post button
Thinking
“Will they see this?”
Feeling
Today: forced (−1) → With the PRD: in control (+1)
Pain today
Reassigning takes the ticket off my list and doesn't say what I need, so I email instead.
Opportunity
Confirm the mention after posting. Say comments are internal only. Never lose a draft.

From the PRD

In scopeWrite in the reusable rich-text editor, with inline commandsF-06
In scopeTyping “@” opens autocomplete over the whole companyF-02
In scopeA mention is saved as a link to the person in the app, not as textF-02, §7
In scopeCommenting doesn't change the assignee§3
In scopeInternal only comments tenants and owners can't see§2, §10
Out of scopeMention a whole team with “@here” or “@team”§3

Open questions · not answered by the PRD

  1. D1

    What does each autocomplete row show (name, role, avatar)? Who comes first: assignee, people already on the ticket?

  2. D2

    Can I mention someone whose account was deactivated?

  3. D3

    Which formatting and inline commands ship first?

  4. D4

    What happens to my text if posting fails or I leave the ticket: warn, keep, or discard?

  5. D5

    Tenants and owners can't communicate in the app yet. Does it make sense to build internal-only comments now?

Flow: write a comment with a mention

Empty None Error Open ticket Commentsblock Click in, writethe question Type “@” Autocomplete overeveryone (D1) Pick person→ mention chip Post Shown inthe stream Empty state No match:“No person found” Post fails:text? (D4)
3

Wait

Keep working, trusting the question reached the right person.

Journey detailsActor, actions, touchpoints, thinking, feeling, pain, opportunity
Actor
Property manager
Actions
Leaves the ticket. Works on other tickets.
Touchpoints
Ticket list
Thinking
“Has the accountant seen it?”
Feeling
Today: in the dark (−1) → With the PRD: calmer, still unsure (0)
Pain today
Question sits in someone's inbox. No way to tell if it was read.
Opportunity
Feedback at the moment of posting.

From the PRD

In scopeTicket stays on the property manager's list§3
Out of scopeSee if the accountant has read it (public read receipts)§3
4

Notice

Find out I've been asked something on a ticket that isn't mine.

Journey detailsActor, actions, touchpoints, thinking, feeling, pain, opportunity
Actor
Accountant
Actions
Works through their ticket list. Opens the “Mentions me” filter. Sees the ticket.
Touchpoints
Ticket list, “Mentions me” filter
Thinking
“I didn't know anyone needed me here.”
Feeling
Today: unaware (−2) → With the PRD: informed, if they look (0)
Pain today
Ticket isn't assigned to the accountant, so nothing surfaces the question.
Opportunity
A signal that doesn't depend on opening the filter.

From the PRD

In scopeA “Mentions me” filter on the ticket list shows every ticket where I'm mentioned, assigned to me or not. Or a visual indicator in the ticket listF-03, R-05
In scopeOnly people who can already see the ticket can be mentioned§10
Out of scopeA notification or email about the mention§3, §4

Open question · not answered by the PRD

  1. D6

    Who can't see a ticket? If everyone in the company can, this rule only matters once access is limited by property or team.

Risk · If the mention is missed

Accountant never opens “Mentions me”: question goes unseen, property manager falls back to email (R-05).

Flow: notice and reply

Mentioned on aticket not mine How do theynotice? Opens “Mentionsme” filter (a) Ticket innormal list (b) Badge onthe filter Never looks Open the ticket Mention missed Back to email Sees unread +own mention Replies with“@property mgr” PM sees it under“Mentions me”
5

Respond

Understand the question fast and answer on the ticket.

Journey detailsActor, actions, touchpoints, thinking, feeling, pain, opportunity
Actor
Accountant
Actions
Opens the ticket. Finds new comments. Reads the question. Replies with “@property manager”. Posts.
Touchpoints
Ticket detail, comment stream, composer
Thinking
“What exactly is being asked?”
Feeling
Today: scattered (−1) → With the PRD: focused (+1)
Pain today
Question arrives by email, away from the ticket's context.
Opportunity
New comments and my own mention stand out.

From the PRD

In scopeFlat, chronological stream on ticket detailF-01, §7
In scopeUnread state per person and ticketF-04
In scopeReply as a new comment, mentioning the askerF-01, F-02
Out of scopeReply under the question (threads)§3
Out of scopeReact to a comment§3

Open question · not answered by the PRD

  1. D7

    Composer is on top, stream is “chronological”. Newest comment at top or bottom?

    The two conflict, and the answer drives the panel layout.

Design note

  • Unread. Mark what's new in the stream (“New since your last visit”) and/or on the ticket list. Without a list mark, a ticket with new comments looks unchanged.
6

Get the answer

Notice replies or new comments on my ticket, and act on them.

Journey detailsActor, actions, touchpoints, thinking, feeling, pain, opportunity
Actor
Property manager
Actions
Sees the ticket under “Mentions me”, or opens it from their list. Reads the reply. Books the invoice. Days later, returns to new comments that don't mention them.
Touchpoints
Ticket list, “Mentions me” filter, ticket detail
Thinking
“Good, it's settled and written down.” Later: “What's changed since I last looked?”
Feeling
Today: answered, but buried in email (0) → With the PRD: relieved (+1)
Pain today
Answer sits in a private inbox. Ticket still shows only its status.
Opportunity
New-comments mark on the ticket list, “New since your last visit” line in the stream.

From the PRD

In scopeReply lands in the ticket's streamF-01
In scopeIf the reply mentions the property manager, the ticket shows under their “Mentions me”F-03
In scopeTicket remembers what I've read: one last_read_at per person and ticketF-04
Out of scopeSee who else has read it§3

Open question · not answered by the PRD

  1. D8

    When does a comment count as read: on opening the ticket, or when it scrolls into view?

Flow: come back and see what's new

Yes No Open a ticketwith new activity Compare withlast_read_at Newer thanlast visit? Marked as new Reads thecomments last_read_atupdated (D8) Next visit:no new marks Shown as read
7

Correct

Fix a mistake without looking like I'm hiding something.

Journey detailsActor, actions, touchpoints, thinking, feeling, pain, opportunity
Actor
Author (accountant or property manager)
Actions
Spots a typo in their comment. Comment › ⋯ › Edit. Fixes it. Save. Or deletes a mistaken comment.
Touchpoints
Comment menu, inline editor
Thinking
“I don't want to look careless.”
Feeling
Today: stuck with it (−1) → With the PRD: honest (+1)
Pain today
A sent email can't be changed. A correction is a second email.
Opportunity
Low-friction edit, honest “edited” marker.

From the PRD

In scopeEdit own comment in place, with Cancel and SaveF-05, §7
In scopeEdited comments show an “edited” markerF-05
In scopeDelete my own commentF-05
In scopeOnly the author can edit or deleteF-05, §10
In scopeHistory logs who, when and action: created, edited or deletedA-02, §11

Open questions · not answered by the PRD

  1. D9

    Is a deleted comment removed, or replaced by “Comment deleted”?

  2. D10

    Do we store comment history (who, when, created, edited, deleted) in the ticket's “Activity log” panel?

Flow: edit my own comment

Save Cancel Own comment ⋯ › Edit Inline editorwith the text Cancel orSave? “edited” marker+ history No change

Flow: delete my own comment

Yes No Own comment ⋯ › Delete Confirm? What stays?(D9) Removed fully?(D9) “Commentdeleted”? (D9) History logswho and when Nothing happens
8

Look back

Understand weeks later why the invoice was booked this way.

Journey detailsActor, actions, touchpoints, thinking, feeling, pain, opportunity
Actor
A colleague, weeks later
Actions
Gets asked why the invoice was booked this way. Opens the ticket. Reads the stream.
Touchpoints
Ticket detail, comment stream
Thinking
“Ah, that's why it was booked this way.”
Feeling
Today: dead end (−2) → With the PRD: traceable (+2)
Pain today
Answer is in a mail thread only two people can reach.
Opportunity
A stream easy to scan, even when long.

From the PRD

In scopeQuestion, answer and edits stay on the ticket§3
In scopeEveryone with ticket access can read all its comments§10

Open question · not answered by the PRD

  1. D11

    Long conversation: load everything, “Show older”, or load while scrolling?

Flow: look back weeks later

No Yes Open an old orclosed ticket Long history? Full streamshown Load all / older /on scroll (D11) Reads question,answer, edits Understandsthe decision Deactivatedpeople (D2)