COMMUNICATION & SUPPORT

The Communication & Support module is Leaseora's connected service-management layer. It allows a real estate company to communicate with prospects, clients, staff and vendors; convert questions into trackable inquiries or tickets; apply service targets; notify the correct people; measure satisfaction; collect feedback and reviews; and manage formal disputes without losing the property, lease, maintenance or user context.

L
Leaseora
Jul 30, 2026 62 min read 13 views

LEASEORA

COMMUNICATION & SUPPORT

End-to-End User and Technical Operations Guide

Chats • Property Inquiries • Support Tickets • Canned Responses • SLA • Surveys • Notifications • Feedback • Reviews • Disputes • AI Assistance

For real estate companies, corporate landlords, property managers, support teams, leasing teams, facility teams, legal teams, vendors and customer-success operations

Version 1.0 | July 2026

Purpose of this guide

This guide explains how a real estate company operates Leaseora's Communication & Support module across real-time chat, property inquiries, maintenance conversations, support tickets, assignments, service-level agreements, canned responses, satisfaction surveys, notifications, platform feedback, AI feedback, reviews and formal disputes. It separates everyday operating procedures from technical references for the supplied models, controllers, services, events, notifications, mail classes and AI tools.

 

 

 

Document Control

Item

Details

Document title

Leaseora Communication & Support Module - User and Technical Operations Guide

Version

1.0

Date

July 2026

Owner

Leaseora

Primary audience

Real estate companies, corporate landlords, property managers, support agents, leasing/CRM staff, maintenance teams, legal/compliance staff, customer-success teams and authorised administrators.

Client audience

Clients, tenants, corporate occupiers, prospects and applicants using web or mobile communication and support functions.

Technical audience

Product, engineering, QA, security, integration and platform-operations teams.

Basis

The supplied end-to-end Communication & Support scenario, controller actions, models, services, events, notifications, mail classes and AI tools.

Support

support@leaseora.com | leaseora.com

 

How to Use This Guide

Reader

Recommended sections

Company director / operations lead

Purpose, roles, module journey, governance, dashboards, service review, worked examples and go-live checks.

Support manager

Ticket setup, assignment, SLA, escalation, canned responses, surveys, analytics, staffing and quality controls.

Property / facility manager

Chats, maintenance threads, inquiries, notifications, reviews and disputes.

Support agent / customer success

Chat handling, ticket replies, internal notes, canned responses, first-response tracking, status updates and surveys.

Leasing / CRM team

Property inquiries, direct chat, AI chat, notification follow-up and review management.

Legal / compliance

Disputes, evidence, internal notes, auditability, review moderation and sensitive communications.

Technical / QA team

Models, controllers, scopes, events, mail classes, API flows, AI services and user-acceptance testing.

 

Terminology rule

This guide uses Client in user-facing procedures. Backend class, route, model and field names may use Tenant; those technical names are preserved exactly where relevant.

 

1 Purpose, Scope and Terminology

The Communication & Support module is Leaseora's connected service-management layer. It allows a real estate company to communicate with prospects, clients, staff and vendors; convert questions into trackable inquiries or tickets; apply service targets; notify the correct people; measure satisfaction; collect feedback and reviews; and manage formal disputes without losing the property, lease, maintenance or user context.

Item

Description

Primary scope

Direct and group chat, maintenance chat, listing inquiries, support tickets, categories, tags, departments, assignment, escalation, SLA, canned responses, surveys, notifications, feedback, reviews and disputes.

Context links

Chats and support records can be connected to a Property, Lease, MaintenanceRequest, PropertyListing, landlord, client, vendor or department.

Channels

Web, mobile, API, chat, in-app notification, email, SMS and push where configured.

AI scope

Contextual chat, file analysis, ticket-reply drafting, escalation support, recommendations, summaries and AI-quality feedback.

Management scope

Unread workload, ticket volume, status, response and resolution time, SLA compliance, escalation, satisfaction, NPS, reviews and dispute performance.

Technical scope

Supplied models, controllers, services, events, notifications, mail classes, scopes and WebSocket/Pusher flows.

 

Key terminology

Term

Operational meaning

Chat room

A participant-based conversation record for direct, group, maintenance or inquiry communication.

Property inquiry

A ChatRoom of type inquiry, linked polymorphically to a PropertyListing.

Support ticket

A formal issue record with category, priority, status, assignment, SLA, escalation, messages, attachments and resolution data.

Internal note

A staff-only ticket note that is not visible to the ticket submitter.

Canned response

A reusable reply template inserted into a ticket or support response.

SLA

A service-level target for first response, resolution and escalation by priority.

SLA breach

A record showing that a response or resolution target was exceeded.

Satisfaction survey

Post-resolution client ratings and feedback, including recommendation intent.

Notification

A targeted message with type, priority, channel, deep link and delivery/read state.

Feedback

General platform or AI-specific quality input.

Review

A rating and comment from one party about another party or a vendor.

Dispute

A formal evidence-based escalation connected to a lease and resolution lifecycle.

 

Module boundary

Chats and inquiries are conversational. Support tickets create a formal service record. Disputes are formal escalations for unresolved or material issues. Staff should choose the workflow that matches the seriousness, evidence and accountability required.

 

2 Roles and Responsibilities

Role

Main responsibilities

Key controls

Corporate Landlord / Real Estate Company

Owns communication policy, service standards, staff access, escalation decisions, survey review and dispute outcomes.

Approves sensitive messages, policy exceptions, public responses and formal resolutions.

Support Manager

Configures categories, departments, SLA policies, assignment, escalation, canned responses, reporting and quality review.

Balances workloads and reviews breaches, unresolved tickets and low ratings.

Support Agent / Customer Success

Responds to chats and tickets, records internal notes, uses templates, updates status and schedules follow-up.

Separates client-visible replies from internal notes and records complete actions.

Leasing / CRM Team

Handles listing inquiries, prospect questions, viewings and application follow-up.

Keeps property context accurate and resolves or reopens inquiry rooms appropriately.

Property / Facility Manager

Participates in property and maintenance conversations, coordinates vendors and gives operational updates.

Uses only assigned properties and avoids unsupported completion promises.

Maintenance Vendor

Participates only in assigned maintenance chats and may respond to vendor reviews.

Cannot access unrelated client, lease or support information.

Legal / Compliance

Reviews disputes, sensitive complaints, privacy issues, evidence, escalation and final wording.

Preserves evidence and avoids deleting records required for audit or legal retention.

Client / Tenant / Prospect

Starts inquiries, sends messages, submits tickets and evidence, completes surveys, provides feedback and reviews, and raises disputes.

Must use accurate information and respectful communication.

Leaseora AI

Answers contextual questions, analyses files and drafts support responses or recommendations.

AI output requires human review and does not make binding legal, payment or dispute decisions.

Leaseora SuperAdmin

Configures platform categories, tags, departments, global SLA, notifications, analytics and oversight.

Does not replace landlord ownership of client service decisions.

 

3 Complete Module Journey

Figure 1. Communication & Support end-to-end service journey

Phase

Business outcome

Principal records

1. Chat and AI assistance

Users communicate in context and receive real-time or AI-assisted responses.

ChatRoom, ChatMessage, AIChatbot, AIChatLog.

2. Property inquiries

Prospect questions become organised listing-specific conversations.

ChatRoom type inquiry, ChatMessage.

3. Support tickets

Issues become formal, assignable, measurable service records.

SupportTicket, SupportTicketMessage / SupportReply.

4. SLA and escalation

Response and resolution targets are enforced and breaches recorded.

SLA, SupportTicketSlaPolicy, SupportTicketSlaBreach.

5. Satisfaction and notifications

Clients receive updates and provide structured post-resolution quality input.

Notification, NotificationPreference, SatisfactionSurvey.

6. Feedback and reviews

The company captures platform, AI, landlord, client and vendor quality signals.

Feedback, AIFeedback, Review, VendorReview.

7. Dispute resolution

Material unresolved issues follow a formal evidence and resolution workflow.

Dispute, DisputeManagement.

8. Analytics and improvement

Management reviews volume, SLA, satisfaction, reviews and dispute outcomes.

Controller analytics, reports and service metrics.

 

4 Communication Architecture and Record Selection

Leaseora uses different records for different levels of communication. Selecting the correct record at the start prevents important service work from being hidden inside an informal message thread.

Need

Use

Why

Quick one-to-one or group conversation

ChatRoom / ChatMessage

Real-time, participant-based and linked to property, lease or maintenance context.

Prospect asks about a listing

Inquiry ChatRoom

Keeps the conversation linked to the PropertyListing and visible in the landlord inquiry inbox.

Issue requires ownership, status and deadline

SupportTicket

Adds category, priority, department, assignee, SLA, escalation and resolution evidence.

Repeated question

CannedResponse

Provides approved, consistent wording and tracks use.

Post-resolution quality measurement

SatisfactionSurvey

Captures structured ratings and NPS-style recommendation intent.

General product or service suggestion

Feedback

Tracks bug, feature request, complaint, praise or general input.

Performance opinion after tenancy/job

Review / VendorReview

Creates a rating and comment attached to the relevant party or vendor.

Formal unresolved issue

Dispute

Provides evidence, monetary amount, expected date, status history, notes and resolution.

 

Escalate the record, not just the tone

A difficult chat does not automatically become a formal dispute. When accountability, specialist ownership, SLA or evidence is required, create or transfer the issue into the appropriate ticket or dispute workflow and link the existing conversation.

 

5 Implementation Prerequisites and Service Governance

Business information and decisions to prepare

  Approved support categories, tags and department structure.

  Named support managers, agents, supervisors, property managers and escalation contacts.

  Business hours, public holidays and time zone for SLA calculation.

  Priority definitions for low, medium, high, urgent and critical issues.

  First-response, resolution and escalation targets for each priority.

  Approved client communication tone, privacy rules and prohibited content.

  Canned response library for payments, maintenance, leases, applications and common technical issues.

  Rules for internal notes, attachments, evidence and sensitive personal data.

  Notification channels, quiet hours and recipient preferences.

  Survey questions, rating ownership and low-score recovery process.

  Review moderation and vendor-response policy.

  Dispute intake, evidence, mediation, approval and resolution policy.

  AI usage policy: what AI may draft, what requires human approval and what AI must not decide.

  Retention, export, audit and deletion rules for support and dispute records.

Recommended implementation sequence

1. Create ticket categories, tags and support departments.

2. Assign staff and confirm property or portfolio access.

3. Define priority criteria and create SLA policies.

4. Create approved canned responses and escalation templates.

5. Configure notification channels and quiet hours.

6. Test direct, group, inquiry and maintenance chat.

7. Submit and process test tickets through every status.

8. Test assignment, department transfer, escalation and SLA breach handling.

9. Test AI reply drafting, editing and human approval.

10. Resolve a test ticket and complete the public survey flow.

11. Test feedback, review, vendor response and formal dispute workflows.

12. Validate web, mobile, API, real-time events, exports, scopes and permissions before go-live.

Use individual accounts

Every staff member should use an individual account. Shared accounts make it difficult to prove who replied, added an internal note, reassigned a ticket, changed status, resolved a dispute or sent a custom notification.

 

 

 

6 Phase 1 - Chat System and Real-Time Conversations

Steps 1 to 7 explain how landlords, clients, staff, vendors and the AI assistant communicate through the web and mobile chat systems.

Figure 2. Unified ChatRoom architecture

STEP
1

Access the Chat Dashboard

Primary user: Landlord / Staff / Authorised User

 

Navigate to Chats (/chats). Shared\ChatController@index or the landlord shared instance loads ChatRoom records where the authenticated user is a participant. scopeForUser($userId) enforces participation and scopeActive removes archived rooms from the default view.

Dashboard element

What it shows

Operational use

Room list

Direct, group, maintenance and inquiry rooms.

Open the correct conversation without mixing contexts.

Context

Property, lease, maintenance request or inquiry link.

Confirm which asset or service issue the messages concern.

Participants

Users recorded in participant_ids.

Verify the intended client, staff or vendor can access the room.

Unread count

getUnreadCountForUser($userId).

Prioritise messages that have not been read.

Last message

last_message_id and last_message_at.

Sort and identify recent activity.

Status

Open, resolved or archived as supplied.

Separate active work from completed conversations.

Room type

direct, group, maintenance or inquiry.

Apply the correct handling procedure.

 

Participation controls visibility

hasParticipant(), addParticipant() and removeParticipant() control room membership. Staff should never add a user merely for convenience when the user does not have a legitimate need to see the conversation.

 

STEP
2

Create a New Chat Room

Primary user: Landlord / Client / Authorised Staff

 

Open the create-chat form through Shared\ChatController@create. Select eligible participants, choose the room type and add the relevant property or lease context. participantsByProperty($request) can narrow the eligible list to people connected to a specific property.

Field / decision

Guidance

Room name

Use a clear purpose, property or group name for group rooms.

Type

Use direct for one-to-one, group for several users, maintenance for service work and inquiry for listing questions.

Participants

Include only people who need the conversation. Confirm the correct account before saving.

Property / lease link

Link the room where the conversation concerns a specific tenancy or asset.

Maintenance request

Use the dedicated maintenance chat flow rather than creating an unrelated room.

First message

State the issue or purpose clearly. The NewChatMessage event is fired when a message is sent.

 

  Correct participant accounts selected.

  Context record confirmed.

  No sensitive information included unnecessarily.

  Purpose and expected next action stated.

STEP
3

Send, Receive, Search and Read Messages

Primary user: All Chat Participants

 

Open a room through @show($chatRoom). Messages are loaded in pages and older records can be retrieved with @loadMoreMessages. @sendMessage creates the ChatMessage, updates the room's last-message fields and fires real-time and notification events.

Action

System behaviour

Control

Send message

ChatMessage created with chat_room_id, sender_id, message, type and attachments.

Review recipient, context and wording before sending.

Real-time delivery

ChatRoomMessage implements ShouldBroadcast and broadcasts through WebSocket/Pusher.

A WebSocket failure should not create a duplicate message.

New-message alert

NewChatMessage triggers notification dispatch.

Respect notification preferences and quiet hours.

Typing indicator

@typing broadcasts a temporary typing signal.

It is not a formal reply or service record.

Mark read

@markAsRead calls markAllAsReadForUser.

Use after opening and reviewing the messages.

Search

@searchMessages performs room-specific full-text search.

Search only rooms the user may access.

Attachment download

@downloadAttachment streams the message file.

Inspect file type and access permission before download.

 

Messages are part of the service record

Do not promise a refund, waive a charge, admit liability or confirm a legal outcome in chat unless the sender has authority and the decision is also recorded in the appropriate payment, ticket, lease or dispute workflow.

 

STEP
4

Manage Group Chat Participants

Primary user: Room Creator / Authorised Manager

 

Use @potentialParticipants to view eligible users not currently in the room. @addParticipants adds new users; @removeParticipant removes a selected member; @leaveRoom allows the current user to leave.

Operation

Before action

After action

Add participant

Confirm legitimate need, role and context.

Tell the room when relevant and verify access.

Remove participant

Confirm assignment ended or access is no longer required.

Ensure future messages are inaccessible to the removed user.

Leave room

Confirm another responsible person remains if work is active.

Reassign any open responsibility outside the room.

Archive room

Confirm work is complete and records are retained.

Room moves out of the active list but remains available under archived scope.

 

STEP
5

Use the Maintenance Request Chat

Primary user: Landlord / Client / Assigned Vendor

 

Open the maintenance thread with @showMaintenanceChat($maintenanceRequestId). Leaseora creates or loads the ChatRoom linked to maintenance_request_id. The landlord, client and assigned vendor can coordinate in one thread through @sendMaintenanceMessage.

Recommended message stage

Content to record

Initial acknowledgment

Issue received, current priority and next update time.

Access coordination

Approved visit date, time, contact and access constraints.

Vendor update

Diagnosis, parts or specialist requirement and revised timing.

Client update

Safety advice, temporary workaround and expected next step.

Completion

Work completed, remaining issue, photos or invoice reference.

Closure

Client confirmation or reason the request remains open.

 

Do not replace the maintenance record

The chat supports coordination. The MaintenanceRequest remains the authoritative record for assignment, status, cost, approval, evidence and completion.

 

STEP
6

Use Mobile and API Chat

Primary user: Mobile Client / Mobile Landlord / Integration

 

API\Chat\ChatController provides direct user chat and group operations. @show($request, $userId) loads or creates the direct room; @store sends a message; @downloadAttachment streams a file; @addParticipants and @leaveChat manage group access.

API action

Expected result

show(userId)

Existing direct room returned or a new eligible direct room created.

store(userId)

Message saved once, room last-message fields updated and events fired.

downloadAttachment(messageId)

Attachment returned only after participant authorisation.

addParticipants(chatRoomId)

Eligible users added without duplicating existing participants.

leaveChat(chatRoomId)

Current user removed according to room rules.

 

STEP
7

Use the Leaseora AI Chat Assistant

Primary user: Landlord / Client / Staff

 

LeaseoraAI\ChatController and LeaseoraAIService provide a contextual assistant for leases, properties, maintenance, payments and general real estate questions. Mobile clients use API\Mobile\Tenant\AIChatController with OpenAIService.

Action

Purpose

Human control

query

Send a contextual question and receive an AI response.

Verify facts against the active record before acting.

history / search

Review or search previous AI conversations.

Do not treat an old answer as current without checking records.

feedback / addReaction

Rate or react to a response.

Use text feedback for material errors.

exportChat

Export the conversation as PDF/text.

Apply privacy and retention controls.

saveCustomInstructions

Set user-specific AI behaviour instructions.

Instructions must not override policy, access or legal controls.

uploadFile / analyzeFile

Analyse a lease, invoice, contract or other file inside chat.

Confirm file authority and review extracted information.

recommendations

Produce contextual property, maintenance or payment suggestions.

Recommendations are advisory.

deleteSession

Remove a selected mobile AI session.

Follow retention and account policy.

 

AI chat interactions use AIChatbot and AIChatLog records. AIChatHistoryUpdated and AIChatMessageSent events track conversation activity. AiLeasingChatSummary can email a session summary to the user.

AI is an assistant, not an authorised agent

AI may draft, explain and recommend. It must not independently promise payment outcomes, approve maintenance cost, change lease terms, close a dispute, disclose restricted data or send a binding support response without authorised human review.

 

 

 

7 Phase 2 - Property Inquiries and Landlord Inbox

STEP
8

Start a Property Inquiry

Primary user: Client / Prospect

 

A client or prospect starts an inquiry from a property listing through API\Mobile\Tenant\PropertyInquiryController@startInquiry. Leaseora creates a ChatRoom of type inquiry, sets inquirable_type = PropertyListing and inquirable_id = listing.id, adds the client and listing landlord, stores the first ChatMessage and fires NewInquiryMessage.

Client action

System result

Open listing and select inquiry

Correct PropertyListing context loaded.

Enter first question

First ChatMessage created in the inquiry room.

Submit inquiry

Client and landlord added as participants.

View My Inquiries

@myInquiries returns the client's active inquiry rooms.

Open messages

@getMessages($roomId) returns the authorised room history.

Send follow-up

@sendMessage adds a message and triggers real-time/notification flow.

 

One listing, one correct context

The inquiry should be linked to the exact listing the prospect opened. Staff should not answer with pricing, availability or terms from a different unit or property.

 

STEP
9

Manage the Landlord Inquiry Inbox

Primary user: Leasing / CRM / Landlord

 

Navigate to Support -> Inquiries (/support/inquiries). LandlordInquiryInboxController@index lists inquiry rooms with scopeByType('inquiry') and scopeForUser($landlordId). Use filters for unread only, property, status and date range.

Action

Procedure

Outcome

Open inquiry

Use @show($roomId); review listing, prospect profile and all messages.

Correct context and response history visible.

Reply

Use @reply; answer accurately and state the next action.

ChatMessage created and ChatRoomMessage broadcast.

Resolve

Use @resolve when the question is complete or converted to another workflow.

ChatRoom.status becomes resolved.

Reopen

Use @reopen when new activity requires further action.

Status returns to open.

Monitor unread

Use @unreadCount for the inbox badge.

Leasing team can prioritise unanswered messages.

 

Recommended inquiry response standard

  Acknowledge the specific property and unit.

  Answer only from approved listing and company information.

  Clarify availability, price currency and viewing/application process.

  Avoid requesting unnecessary sensitive information in chat.

  Give a clear next step and expected response time.

  Resolve or convert the inquiry when work is complete.

Mobile landlords use API\Mobile\Landlord\InquiryController@index, @getMessages, @reply and @resolve. The same participant, status and property controls should apply across web and mobile.

 

 

8 Phase 3 - Support Ticket Setup and Full Lifecycle

Steps 10 to 16 explain how the company configures categories and departments, accepts tickets, responds, assigns, escalates, measures SLA and reports performance.

Figure 3. Support ticket lifecycle, SLA and escalation

STEP
10

Configure Ticket Categories and Tags

Primary user: SuperAdmin / Support Manager

 

SuperAdmin\Core\TicketCategoryController manages the category and tag catalogue used during ticket intake and reporting.

Action

Purpose

Control

index

List categories with filters.

Review inactive and duplicate categories.

create / store

Create name, description, colour, is_active and created_by.

Use a clear business definition.

edit / update

Change category details.

Consider reporting continuity before renaming.

destroy

Delete a category.

Do not remove a category still required by historical tickets without a migration rule.

toggleStatus

Enable or disable intake use.

Inactive should not appear for new tickets.

updateOrder

Drag-and-drop category ordering.

Put high-use choices first.

tags / storeTag / updateTag / destroyTag / toggleTagStatus

Manage TicketTag records.

Use tags for searchable classification rather than duplicating categories.

 

Suggested category design

Category

Typical examples

Likely department

Technical

Login, app error, upload, integration or notification failure.

Technical Support

Billing / Payment

Invoice, wallet, rent payment, fee, receipt or refund question.

Billing / Finance

Property / Maintenance

Repair, inspection, access, utilities or vendor issue.

Property / Facility

Lease / Legal

Clause, amendment, renewal, termination or notice.

Lease / Legal

Application / Screening

Application status, supporting document or screening question.

Leasing / Compliance

General

How-to, profile, company or uncategorised question.

General Support

 

STEP
11

Configure Support Departments and Staff

Primary user: SuperAdmin / Support Manager

 

SupportDepartment records group staff into Technical, Billing, Property, Legal, General or another configured function. Department membership is also used by StaffManagementController@assignToDepartment and ticket-routing actions.

Department control

What to define

Name and purpose

Clear boundary for the issues the department owns.

Assigned staff

Authorised users with the required skills and availability.

Supervisor / escalation owner

Person responsible for breaches and complex cases.

Business hours

Hours used where SLA policies count business time only.

Specialist skills

Required skills used for specialist ticket routing.

Backup coverage

Who receives work during absence or overload.

 

Routing is a responsibility decision

A department transfer should not be used to hide an overdue ticket. Record the reason, preserve the assignment history and confirm the receiving team accepts ownership.

 

STEP
12

Submit a Support Ticket

Primary user: Client / Landlord / Guest / API User

 

Use Shared\SupportTicketController@create and @store or API\Support\SupportTicketController@store. The ticket becomes the formal service record for an issue requiring ownership, tracking or resolution evidence.

Ticket field

Purpose

Good practice

subject

Short summary of the issue.

Include the affected service or asset, not personal data.

description

Full problem, impact and requested outcome.

State what happened, when and what was already tried.

category / category_id

Classification for routing and reporting.

Choose the closest active category.

status

open, in_progress, pending, resolved or closed.

New tickets should start in the configured intake state.

priority

low, medium, high, urgent or critical.

Apply documented impact and urgency definitions.

department_id

Responsible support department.

Route based on skill and ownership.

property_id

Affected property where relevant.

Select the exact property.

channel

web, email, mobile, api or chat.

Preserve the intake source.

ticket_type

tenant_to_landlord, landlord_to_leaseora or general.

Use the correct recipient relationship.

recipient_id / landlord_id

Directed user and landlord context.

Prevent cross-company access.

attachments / evidence

Screenshots, receipts or documents.

Remove unnecessary sensitive data and use authorised formats.

scheduled_follow_up

Next follow-up time and notes.

Use for work that cannot be completed immediately.

 

Advanced ticket fields used by the system

Area

Fields and operational meaning

Assignment

assigned_to, assigned_at, assigned_by, assignment_count, assignment_history.

Escalation

is_escalated, escalated_to, escalated_at, escalation_reason, escalation_level.

SLA timing

first_response_at, response_time_hours, resolved_at, resolution_time_hours.

Effort

complexity_level, estimated_effort_hours, actual_effort_hours.

Specialist routing

requires_specialist, required_skills.

Satisfaction

customer_rating, customer_feedback, feedback_submitted_at.

AI assistance

ai_response, ai_response_at.

Guest/contact

submitter_email, submitter_name.

 

SupportTicketUpdated is fired on status changes and supports notification dispatch.

STEP
13

View, Reply and Add Internal Notes

Primary user: Support Agent / Landlord / Client

 

Open @show($id) to review the full ticket, messages, status, assignee, SLA position and attachments. Use @reply to create a SupportTicketMessage or SupportReply. SupportReplySent notifies the recipient and SupportTicketUpdated records the ticket change.

Reply type

Visible to

Use

Client-visible reply

Ticket submitter and authorised participants.

Questions, explanations, decisions and next steps.

Internal note

Staff / landlord only.

Diagnosis, handover, policy reference, risk, approval request or internal action.

AI draft

Agent until reviewed.

Suggested wording based on the subject and history.

Canned response

Agent editor before sending.

Approved reusable text customised to the case.

 

Reply procedure

1. Read the complete history and attached evidence.

2. Confirm the correct property, lease, payment or user context.

3. Decide whether a client-visible reply or private internal note is required.

4. Use a canned response or AI draft only as a starting point.

5. Edit names, dates, amounts, links and commitments.

6. State the action owner and next update time.

7. Send once and verify the message appears in the ticket.

8. Update status consistently with the actual work state.

Internal notes must remain internal

Never place confidential staff commentary, security findings, legal strategy or unverified allegations in a client-visible reply. Verify the interface clearly indicates Internal Note before saving.

 

AI response generation

SuperAdmin\Core\SupportTicketController@generateAIResponse uses OpenAIService to analyse the ticket subject and history and stores a suggested reply in SupportTicket.ai_response. SupportAiReplyNotification alerts the agent that a draft is available; AISupportSummaryMail can record an AI-assisted support interaction summary.

  Check factual accuracy.

  Remove unsupported promises.

  Confirm tone and recipient.

  Check privacy and confidential content.

  Verify links, amounts and deadlines.

  Record human approval before sending.

STEP
14

Manage Ticket Status and Bulk Operations

Primary user: Support Agent / Manager

 

Status

Operational meaning

Typical next action

open

New or reopened issue awaiting active ownership.

Assign and acknowledge.

in_progress

Work is actively being performed.

Investigate, communicate and record action.

pending

Waiting for client or external input.

State exactly what is needed and follow-up date.

resolved

A resolution has been provided and recorded.

Invite confirmation/survey and monitor reopen.

closed

The service record is complete under company policy.

Retain and include in reporting.

 

Use @updateStatus for individual changes. @bulkUpdateStatus, @bulkAssign and @bulkDelete support authorised portfolio operations. @exportReport produces CSV/Excel reporting data.

Bulk actions multiply errors

Filter carefully, preview selected records and avoid bulk deletion of tickets with messages, evidence, SLA breaches, ratings, legal relevance or unresolved financial impact.

 

STEP
15

Assign, Transfer and Escalate Tickets

Primary user: Support Manager / Supervisor / SuperAdmin

 

Operation

Controller / model method

Result

Transfer department

@transferDepartment -> SupportTicket::transferToDepartment

Department changes, reason retained and reassignment can occur.

Assign staff

@assignToStaff / @assignTicket -> SupportTicket::assignToStaff

assigned_to, assigned_by, assigned_at and assignment_count updated.

Find available staff

@getAvailableStaff / @getDepartmentStaff

Eligible department staff returned.

Escalate

@escalateTicket -> SupportTicket::escalate

Escalation owner, time, reason and level stored.

Escalate to platform

SupportTicket::escalateToSuperAdmin

Ticket moves to Leaseora platform oversight.

Check need

SupportTicket::needsEscalation

Age, SLA breach or complexity can signal escalation.

Mark first response

@markFirstResponse

first_response_at set and response_time_hours calculated.

Mark resolved

@markResolved

resolved_at set and resolution_time_hours calculated.

 

Escalation decision checklist

  SLA response or resolution target is at risk or breached.

  Issue is critical, high-value or safety-related.

  Specialist or legal expertise is required.

  Repeated reassignment has not produced progress.

  Client impact is increasing.

  Fraud, security, privacy or regulatory concern exists.

  Agent lacks authority for the requested outcome.

  Reason, level and destination are recorded.

STEP
16

Review Ticket Analytics, Reports and Scheduled Follow-Up

Primary user: Support Manager / Director / SuperAdmin

 

SuperAdmin\Core\SupportTicketController@analytics and @reports provide volume, status, average response and resolution time, resolution rate, escalation rate, category breakdown, agent performance and SLA compliance. @exportReport produces CSV/Excel output.

Metric

Management question

Ticket volume

Is service demand rising, seasonal or concentrated by property/category?

Status distribution

How much work is open, active, pending, resolved or closed?

First-response time

Are clients receiving timely acknowledgment?

Resolution time

How long does full issue resolution take?

SLA compliance

Which priorities, teams or agents breach targets?

Escalation rate

Are issues routed correctly and resolved at the right level?

Assignment count

Are tickets bouncing between people or departments?

Effort variance

How do estimated and actual hours compare?

Customer rating

Which service areas produce low satisfaction?

 

@comments($uuid) displays internal comments. @replyToContactMessage handles contact-form tickets of type general. SuperAdmin\Core\SupportTicketScheduleController manages scheduled follow-up records through full CRUD actions.

 

 

9 Phase 4 - Canned Responses and Reply Consistency

STEP
17

Create and Use Canned Responses

Primary user: Support Manager / Agent / SuperAdmin

 

CannedResponseController provides a shared library of pre-written replies for common support questions. Landlord and SuperAdmin controllers support the same CRUD pattern.

Field

Purpose

Control

title

Recognisable response name.

Use the question or outcome, such as Rent Payment Instructions.

content

Full reusable reply text.

Use placeholders and avoid hard-coded personal or transaction data.

category

Payments, Maintenance, Lease, Application or another group.

Match ticket categories where practical.

tags

JSON searchable keywords.

Use terms agents will search.

created_by

Owner of the template.

Retain accountability for updates.

is_public

Visible to all authorised staff or private to creator.

Use public only after approval.

usage_count

Number of insertions through @use.

Identify high-use templates for review.

 

Template creation procedure

1. Identify a repeated question with an approved answer.

2. Draft a complete but editable response.

3. Use placeholders for client, property, amount, date and link.

4. Add category and search tags.

5. Review legal, payment and privacy statements.

6. Set public visibility only after approval.

7. Test insertion into a ticket reply.

8. Review usage and performance regularly.

Using a canned response in a ticket

1. Search by keyword or category.

2. Select the response; @use($uuid) increments usage_count and returns content.

3. Insert it into the reply editor.

4. Replace every placeholder.

5. Remove irrelevant sections.

6. Confirm current policy, figures and deadlines.

7. Send only after human review.

Template is not case resolution

A canned response increases consistency; it does not prove the agent investigated the individual ticket. Always read the history and tailor the reply.

 

10 Phase 5 - SLA Management and Breach Control

STEP
18

Create General SLA Policies

Primary user: Support Manager / Landlord / SuperAdmin

 

Navigate to SLA Management (/sla-management). Landlord\Shared\SlaManagementController manages priority-based policies; SuperAdmin\Core\SLAController manages platform-wide SLA records.

SLA field

Meaning

Example control

name

Policy label.

Critical - 1 Hour Response.

description

Scope and intent.

Defines affected service and operating assumptions.

priority

Ticket priority covered.

low, medium, high, urgent or critical.

first_response_time

Maximum hours to first response.

Must match staffing and business hours.

resolution_time

Maximum hours to resolution.

Use realistic service target.

business_hours_only

Whether the clock excludes non-business hours.

Confirm business calendar and time zone.

escalation_time

Hours before escalation.

Should occur before final breach where possible.

escalation_user_id

Person who receives escalation.

Use an active supervisor with authority.

is_active

Whether policy is currently applied.

Deactivate outdated policies rather than silently altering history.

created_by

Policy owner.

Retain accountability.

 

Use @index, @create, @store, @show, @edit, @update, @destroy and @toggleStatus to manage policies. The policy detail can display compliance statistics.

STEP
19

Apply Ticket-Specific SLA and Investigate Breaches

Primary user: Support Manager / Supervisor

 

SupportTicketSlaPolicy provides response_time_hours, resolution_time_hours, business_hours_only, escalation_enabled and escalation_time_hours for ticket-specific enforcement. SupportTicketSlaBreach records response or resolution breaches.

Breach field

Meaning

ticket_id

Support ticket that missed the target.

policy_id

SLA policy applied.

breach_type

Response or resolution.

breached_at

Timestamp the target was exceeded.

hours_overdue

Measured time beyond the target.

 

SLA monitoring procedure

1. Confirm the ticket has the correct priority and applicable SLA.

2. Check assignment and first-response timestamp.

3. Review business-hours setting and calendar.

4. Identify the reason for delay.

5. Escalate before or immediately after breach.

6. Communicate a revised expectation to the client.

7. Record corrective action and owner.

8. Review repeated patterns in analytics.

SupportTicket::sla() links the policy and getPerformanceMetrics() returns actual response/resolution performance against targets. CrmSlaBreach and MonitorSlaBreachesJob may also monitor support-related SLA from the CRM context.

Do not manipulate timestamps to improve compliance

SLA metrics are service evidence. Incorrectly changing first_response_at, resolved_at or priority damages reporting and trust. Correct configuration errors under an audited process.

 

 

 

11 Phase 6 - Satisfaction Surveys and Service Recovery

STEP
20

Configure and Review Satisfaction Surveys

Primary user: Support Manager / Landlord

 

Landlord\Shared\SatisfactionSurveyController manages survey records and analytics. A survey is linked to the resolved support ticket and the responding user.

Survey field

What it measures

rating

Overall 1-5 star rating.

feedback

Open-text description of the experience.

response_time_satisfaction

Satisfaction with speed of initial response.

resolution_satisfaction

Satisfaction with the solution.

agent_knowledge_satisfaction

Perceived expertise.

agent_courtesy_satisfaction

Courtesy and communication manner.

overall_satisfaction

Computed overall score.

would_recommend

NPS-style recommendation indicator.

completed_at

Completion timestamp.

 

Use @index to list responses, @create/@store to configure or create, @show to inspect a response and @destroy only under an approved retention rule. @analytics provides trends and breakdowns; @export produces CSV/Excel data.

Survey analytics

View

Management use

Average by dimension

Separate speed, resolution, expertise and courtesy issues.

Trend over time

Measure whether changes improve service.

NPS

Track recommendation intent using would_recommend.

Agent / department

Identify coaching and resource needs.

Property / category

Find recurring asset or process issues.

Low-score queue

Trigger service recovery before dissatisfaction becomes a dispute or public review.

 

STEP
21

Complete the Public Survey Form

Primary user: Client / Ticket Submitter

 

After a ticket is resolved, SatisfactionSurveyInvitation emails a unique public link. SuperAdmin\Core\SatisfactionSurveyController@publicForm($uuid) displays the no-login form, @submitPublicForm stores the ratings and feedback, and @thankYou displays confirmation.

1. Open the unique survey link.

2. Confirm the ticket subject or context shown.

3. Rate each available dimension.

4. Enter factual feedback without unnecessary personal data.

5. Select recommendation intent where shown.

6. Submit once.

7. Review the thank-you confirmation.

On submission, SatisfactionSurvey.completed_at is set. SupportTicket::addCustomerFeedback($rating, $feedback) updates customer_rating, customer_feedback and feedback_submitted_at on the ticket.

A survey is not a ticket reopen by itself

Low satisfaction should trigger internal review and service recovery. Where the client reports an unresolved issue, reopen the ticket or create the appropriate dispute rather than treating the rating alone as the service record.

 

12 Phase 7 - Notifications and Multi-Channel Delivery

Figure 4. Multi-channel notification delivery

STEP
22

View and Send Landlord Notifications

Primary user: Landlord / Authorised Staff

 

Navigate to Notifications (/notifications). Landlord\Shared\NotificationController@index lists notifications filtered to the authenticated landlord. @send opens the compose form and @store creates and dispatches a custom notification to selected recipients.

Compose field

Guidance

Recipients

Select only intended clients or users.

Title

Use a clear, action-oriented headline.

Message

State what happened, what the recipient must do and by when.

Type

info, success, warning, error, action or reminder.

Priority

Use high priority only for genuinely urgent matters.

Deep link

Link directly to the relevant ticket, lease, payment, maintenance or document page.

Channel

in_app, email, sms or push according to preferences and service availability.

 

STEP
23

Understand Notification Records and Delivery

Primary user: Landlord / Client / Support Team

 

Notification field

Purpose

user_id

Recipient.

sender_id

User or system that sent the notification.

title / message

Displayed content.

type

Information, success, warning, error, action or reminder.

status

sent, delivered or read.

priority

Delivery and attention priority.

deep_link

Target URL when opened.

channel

in_app, email, sms or push.

sent_at / read_at

Delivery and read timestamps.

 

NotificationCreated is fired whenever a Notification record is created and broadcasts the record in real time to the user's notification centre. NotificationPreference stores per-user event/channel choices. NotificationSetting stores platform-wide templates and event configuration.

SuperAdmin and mobile notification functions

Controller / action

Purpose

SuperAdmin\Core\NotificationController@index

Platform-wide overview.

@create / @store

Broadcast to all users, selected roles or individuals.

@markAsRead / @markAsUnread

Change the read state.

@logs

Review delivery logs, recipient and status.

@landlordIndex

View landlord-context notifications.

API\Mobile\Tenant\NotificationController@index

List mobile unread and recent notifications.

@markRead

Set read_at for a mobile notification.

API\NotificationController

REST list, mark-read and push-token functions.

 

STEP
24

Configure Client Notification Preferences

Primary user: Client / Tenant

 

Users\Tenant\Share\NotificationController and NotificationsController allow clients to view notifications, mark records read and configure email, SMS and push preferences by event. Quiet hours are applied from settings where supported.

Preference decision

Client control

Event types

Choose which lease, payment, maintenance, support or general events are enabled.

Channels

Enable or disable email, SMS and push per event.

Frequency

Use available immediate or digest preferences.

Quiet hours

Reduce non-urgent delivery during selected hours.

Read state

Mark individual or all records as read.

 

Other supplied notification records/classes include LeaseNotification, LeadNotification, GeneralNotification, GeneralPushNotification, GenericNotification and LandlordNotification. TenantScoreFeedback can capture feedback on selected client-facing notification experiences.

Delivery does not equal comprehension

A sent or delivered status does not prove the recipient understood or acted. Use acknowledgment, ticket reply, chat or formal notice workflow where confirmation is required.

 

 

 

13 Phase 8 - Platform Feedback and AI Quality Feedback

STEP
25

Submit General Feedback

Primary user: Client / Landlord / Staff

 

General platform feedback may be submitted through SuperAdmin\Core\FeedbackController@landlordStore, LeaseoraAI\FeedbackController@store or other shared feedback interfaces.

Feedback field

Use

user_id

Identifies the submitting user.

subject

Short summary.

message

Detailed feedback.

rating

1-5 star rating.

type

bug, feature_request, general, complaint or praise.

status

new, under_review, responded, resolved or closed.

admin_response

Platform response.

responded_at

Response timestamp.

 

Good feedback submission

  Describe the page or module.

  State the action attempted.

  Provide expected and actual result.

  Include date/time and device where relevant.

  Attach a safe screenshot if available.

  Avoid passwords, payment credentials and unnecessary personal data.

  Choose the correct feedback type.

STEP
26

Manage Feedback and Respond

Primary user: SuperAdmin / Landlord

 

SuperAdmin\Core\FeedbackController@index provides filters by type, status and date range, plus average rating and volume trends. @show displays detail; @edit/@update change status and admin_response; @destroy removes a record under policy.

Landlord action

Purpose

landlordIndex

View feedback about the landlord's properties or service.

landlordCreate / landlordStore

Submit feedback to the Leaseora platform.

Review complaint

Decide whether to create/reopen a ticket or dispute.

Review praise

Share recognition without exposing client data.

Review feature request

Record business value and frequency for product review.

 

STEP
27

Manage AI Feedback and Quality Logs

Primary user: User / SuperAdmin / AI Operations

 

Users\Shared\AIFeedbackController@store and LeaseoraAI\FeedbackController@store capture thumbs-up/down and optional text for an AI response. AIFeedback stores interaction-level ratings; AiFeedbackLog records platform-wide feedback events.

SuperAdmin controller

Purpose

AIFeedbackController

List and manage AI feedback records.

AiFeedbackLogController

Review all AI feedback logs and patterns.

AIChatLogController

Review AI chat interactions for quality and safety analysis.

 

AI feedback must be specific

When an AI response is wrong, include the incorrect statement, correct source record and expected answer. Do not use AI feedback logs to expose unrelated personal or confidential information.

 

14 Phase 9 - Landlord, Client and Vendor Reviews

STEP
28

Create and Manage a Lease Review

Primary user: Landlord / Client

 

Landlord\Shared\ReviewController and API\Review\ReviewController allow authorised parties to create reviews associated with a lease. ReviewCreated notifies the reviewed party.

Review field

Purpose

Control

lease_id

Lease context.

Confirm the correct tenancy.

reviewer_id

User writing the review.

Must be the authenticated authorised party.

reviewee_id

Landlord or client being reviewed.

Confirm the intended recipient.

rating

1-5 star score.

Apply company guidance consistently.

comment

Review text.

Use factual, relevant and respectful language.

 

Web actions include @index, @create, @store, @show, @edit, @update and @destroy. Mobile API actions include @index, @store and @show. Edit or delete should follow the live policy for draft/published records.

Review-writing principles

  Base the review on direct experience.

  Refer to observable conduct and service outcomes.

  Avoid discriminatory, threatening or defamatory language.

  Do not publish private financial, health, identity or contact information.

  Separate a review from an unresolved formal dispute.

  Use the dispute workflow for evidence and resolution.

STEP
29

Moderate Reviews Platform-Wide

Primary user: SuperAdmin

 

SuperAdmin\Core\ReviewController@index provides the platform overview. @tenantIndex and @landlordIndex separate perspectives. @show, @edit, @update and @destroy support moderation and removal where justified by platform policy.

Moderation question

Review

Authenticity

Is the review linked to the correct lease and parties?

Relevance

Does it describe the tenancy or service relationship?

Privacy

Does it expose restricted personal information?

Abuse

Does it contain threats, harassment or discriminatory content?

Manipulation

Is there evidence of duplicate, coerced or fraudulent rating activity?

Dispute overlap

Should the issue also be handled through a formal dispute?

 

STEP
30

Manage Vendor Reviews and Public Responses

Primary user: Landlord / Maintenance Vendor

 

Vendor\VendorReviewsController@index lists reviews relevant to the maintenance vendor. @respond allows the vendor to post a public response to a landlord's rating. VendorReview data contributes to MaintenanceVendor.average_rating.

Vendor response procedure

1. Read the full review and job record.

2. Confirm the reviewer and maintenance request.

3. Acknowledge the experience without disclosing private details.

4. Correct factual errors calmly with evidence where permitted.

5. State any remedial action or invitation to continue privately.

6. Submit one professional public response.

A public response is not an internal argument

Keep vendor responses factual and short. Use the ticket, maintenance chat or dispute workflow for detailed evidence and resolution.

 

 

 

15 Phase 10 - Formal Dispute Management

Figure 5. Formal dispute resolution flow

STEP
31

Raise a Formal Dispute

Primary user: Landlord / Client / Authorised Admin

 

A dispute is used when a material issue cannot be resolved through ordinary communication or support. SuperAdmin\Core\DisputeController@landlordCreate and @landlordStore provide the landlord-facing creation path.

Dispute field

Purpose

Good practice

lease_id

Connects the dispute to the tenancy.

Select the exact lease.

raised_by

User initiating the dispute.

Use authenticated identity.

issue

Short issue summary.

State the disputed matter clearly.

type

rent, maintenance, deposit, lease_terms, damage, privacy or other.

Choose the closest type.

priority

low, medium, high or critical.

Apply impact and urgency criteria.

category

Additional classification.

Use company dispute taxonomy.

amount

Monetary value where relevant.

Use the contractual currency and evidence.

evidence_path

Uploaded evidence.

Use authorised, relevant and complete files.

expected_resolution_date

Target outcome date.

Set realistic date and monitor it.

description / notes

Full facts and supporting context.

Separate facts from allegations.

resolution

Final outcome when resolved.

State decision, actions, amounts and dates.

status

open, under_review, mediation, resolved, escalated or closed.

Update only when the actual stage changes.

 

DisputeManagement is supplied as an alternative extended workflow model for additional dispute-management fields.

Preserve evidence

Do not edit, replace or delete original files after submission without an auditable version process. Record where evidence came from, who supplied it and how it relates to the issue.

 

STEP
32

Review, Add Notes and Progress the Dispute

Primary user: Landlord / Legal / Mediation Team

 

Use @landlordIndex to list disputes raised by or against the landlord. CurrencyService can display monetary amounts in the landlord's preferred currency. @landlordShow displays the full history, evidence, notes and status.

Action

Procedure

Review intake

Confirm lease, parties, type, amount, evidence and requested outcome.

Update status

Use @landlordUpdateStatus to move open -> under_review -> mediation -> resolved/escalated -> closed according to actual stage.

Add notes/evidence

Use @landlordAddNotes to append factual notes or additional evidence.

Communicate

Use DisputeUpdated notifications and approved messages to keep both parties informed.

Resolve

Populate the resolution with actions, owner, dates, financial treatment and follow-up.

Close

Confirm outcome communication, completion and retention.

 

Dispute review checklist

  Authority and jurisdiction checked.

  Lease and relevant clause reviewed.

  Payment, maintenance, inspection, chat and ticket history collected.

  Evidence authenticity and relevance reviewed.

  Both parties given appropriate opportunity to respond.

  Currency and amount reconciled.

  Conflicts of interest identified.

  Mediation or escalation decision documented.

  Resolution approved by the correct authority.

STEP
33

SuperAdmin Resolution, Events and Dispute Analytics

Primary user: SuperAdmin / Director / Legal

 

SuperAdmin\Core\DisputeController@index provides platform-wide oversight. @create/@store can create a record manually; @show, @edit and @update manage the full record; @destroy is restricted by retention and legal policy.

Event / service

Trigger / purpose

DisputeRaised

Fired when a new dispute is created; notifies the other party.

DisputeUpdated

Fired when the status changes; notifies both parties.

ConflictResolvedNotification

Email to both parties when the dispute is officially resolved.

DisputeService@getDisputeStats

Returns totals, win rate and resolution time for analytics.

getActiveDisputes

Lists active disputes with filters and pagination.

getDisputeDetails

Returns a landlord-authorised detail view.

createDispute

Creates a new dispute through service logic.

resolveDispute

Records resolution and updates financial analytics.

 

Resolution must be precise

A resolution should identify what was decided, by whom, based on what evidence, any amount or remedy, completion date, notification sent and whether the matter can be reopened or appealed under policy.

 

16 Status Lifecycles and Record Relationships

Record

Key statuses supplied

Operational meaning

ChatRoom

open, resolved, archived

Conversation activity and completion state.

SupportTicket

open, in_progress, pending, resolved, closed

Formal service work lifecycle.

Feedback

new, under_review, responded, resolved, closed

Platform feedback handling.

Dispute

open, under_review, mediation, resolved, escalated, closed

Formal issue progression.

Notification

sent, delivered, read

Delivery and consumption state.

SLA policy

active / inactive

Whether a policy is used for current work.

Survey

completed_at empty or set

Invitation outstanding or response completed.

 

Principal relationships

Record

Connects to

ChatRoom

Participants, ChatMessage, Property, Lease, MaintenanceRequest or polymorphic inquiry target.

SupportTicket

Creator, recipient, landlord, property, category, department, assignee, messages, SLA, breach, rating and feedback.

CannedResponse

Creator, visibility, category, tags and usage count.

SatisfactionSurvey

SupportTicket and responding user.

Notification

Recipient, sender, event context and deep link.

Review

Lease, reviewer and reviewee.

Dispute

Lease, raising user, evidence, notes and resolution.

 

Status control note: This guide preserves the statuses explicitly supplied. Product and technical teams should confirm any additional live states, transition rules, reopen windows, auto-close periods and deletion restrictions before formal training.

17 Event, Notification and Mail Matrix

Event / mail

Recipient or consumer

Trigger / purpose

ChatRoomMessage

Room participants

Real-time broadcast when a chat or inquiry message is sent.

NewChatMessage

Room participants / notification system

New chat message notification trigger.

NewInquiryMessage

Listing landlord

New property inquiry message.

SupportReplySent

Ticket submitter or participant

New support reply added.

SupportTicketUpdated

Relevant parties

Ticket status or lifecycle update.

ReviewCreated

Reviewee

New review created about the user.

DisputeRaised

Other party

New dispute created.

DisputeUpdated

Both parties

Dispute status changed.

AIChatHistoryUpdated

AI chat clients / listeners

AI conversation history updated.

AIChatMessageSent

AI chat clients / listeners

AI message exchanged.

NotificationCreated

Target user

Real-time in-app notification broadcast.

SatisfactionSurveyInvitation

Ticket submitter

Resolved-ticket survey invitation with public link.

SupportAiReplyNotification

Support agent

AI-generated ticket draft is ready for review.

AISupportSummaryMail

Agent / landlord

Summary of AI-assisted support interaction.

ConflictResolvedNotification

Landlord and client

Official dispute resolution email.

AiLeasingChatSummary

AI chat user

AI chat-session summary.

GenericNotificationMail

Any user

Generic email wrapper for platform notifications.

 

Event delivery should be idempotent

A retry or reconnect should not create duplicate chat messages, ticket replies, survey invitations, review notifications or dispute emails. Technical teams should verify event and mail retry behaviour against the live implementation.

 

18 Data Isolation, Privacy and Communication Security

The supplied architecture includes NotificationScope and SupportTicketScope for global query isolation. ChatRoom participation, ticket landlord/recipient fields, property assignments and controller authorisation must work together so users see only their own company and authorised records.

Control area

Required practice

Chat membership

Only participants can open messages or attachments.

Property access

Staff see chats, inquiries and tickets only for assigned or authorised properties.

Ticket isolation

SupportTicketScope and controller policies prevent cross-landlord access.

Notification isolation

NotificationScope filters records to the correct user/context.

Internal notes

Never returned to the client-facing API or view.

Attachments

Validate type, size, storage path and access before download.

Guest surveys

Use unguessable unique uuid tokens and one-response controls.

Dispute evidence

Restrict to authorised operational, legal and platform roles.

Exports

Apply filters and protect files containing personal or confidential data.

Real-time channels

Authorise WebSocket/Pusher channel subscriptions.

AI processing

Send only authorised context and files; review retention and privacy.

Audit evidence

Retain actor, timestamp and change history where supplied.

 

Sensitive information that should not be placed casually in messages

·         Passwords, one-time codes or full payment credentials.

·         Government identification numbers unless a secure approved workflow requires them.

·         Private health, family or employment data unrelated to the issue.

·         Unverified fraud or misconduct allegations.

·         Legal strategy or privileged advice in client-visible messages.

·         Other tenants' or properties' information.

·         Private API keys, webhook secrets or infrastructure credentials.

19 AI-Powered Communication and Support Features

AI feature

Controller / service

Purpose

Human responsibility

Contextual AI chat

LeaseoraAI\ChatController@query / LeaseoraAIService

Answer lease, payment, maintenance and property questions.

Verify against current records.

Mobile AI chat

API\Mobile\Tenant\AIChatController@send / OpenAIService

Instant mobile responses and session history.

Escalate material or uncertain answers.

AI recommendations

AIChatController@recommendations

Personalised property, payment or maintenance suggestions.

Treat as advisory.

File analysis

@uploadFile / @analyzeFile

Analyse a document during conversation.

Confirm file authority and extracted facts.

Ticket reply draft

SupportTicketController@generateAIResponse

Draft a support response from ticket history.

Edit and approve before sending.

Escalation support

SupportTicket::needsEscalation

Identify age, breach or complexity signals.

Manager decides and records escalation.

Chat export / summary

@exportChat / AiLeasingChatSummary / AISupportSummaryMail

Create a conversation or support summary.

Review privacy and accuracy.

Custom instructions

@saveCustomInstructions

Personalise assistant behaviour.

Cannot override access or policy.

AI feedback

AIFeedbackController / AiFeedbackLogController

Capture quality ratings and improvement signals.

Provide specific corrective evidence.

 

Human decision points

AI must not independently assign liability, approve a refund, alter lease obligations, determine a dispute, publish a review response, disclose restricted records or close a support ticket without the configured human workflow.

 

20 Staff Permissions and Segregation of Duties

Role

Typical access

Restricted action

Inquiry Officer

Listing inquiry rooms, prospect replies and unread counts.

Cannot view unrelated support or disputes.

Support Agent

Assigned tickets, messages, canned responses and permitted notifications.

Cannot change SLA policy or finalise sensitive disputes.

Support Manager

Departments, assignments, escalations, SLA, reports and templates.

Should not moderate own disputed conduct without independent review.

Property Manager

Assigned property chats, maintenance threads and related tickets.

Cannot access other portfolios.

Finance Officer

Payment-related tickets and authorised financial evidence.

Cannot change lease/legal outcomes.

Legal / Compliance

Sensitive tickets, disputes, evidence and review moderation.

Cannot alter operational facts without audit.

Marketing / CRM

Property inquiries and approved client notifications.

Cannot access internal notes or dispute evidence.

Director / Approver

High-value outcomes, policy exceptions and final escalation.

Must review evidence and audit trail.

SuperAdmin

Platform-wide configuration and oversight.

Must use privileged access only for authorised platform work.

 

Minimum access practices

·         Use individual accounts and least privilege.

·         Restrict internal notes and dispute evidence.

·         Review department and property assignments regularly.

·         Remove access immediately when staff or vendors leave.

·         Require approval for bulk deletion, public notifications and formal dispute resolution.

·         Protect exported reports and survey data.

·         Test client and mobile APIs for cross-user access.

21 Dashboards, Reports and Management Review

Dashboard / report

Management questions answered

Chat dashboard

Which conversations are active, unread, unresolved or archived?

Inquiry inbox

Which properties receive questions and how quickly are prospects answered?

Ticket dashboard

How much support work is open, assigned, pending or overdue?

SLA dashboard

Which priorities, departments and agents meet targets?

Escalation queue

Which issues require supervisor, specialist or platform action?

Canned response usage

Which approved replies are used most and need updating?

Survey analytics

What do clients think about response time, resolution, knowledge and courtesy?

Notification logs

What was sent, through which channel and whether it was read?

Feedback dashboard

What bugs, requests, complaints and praise are recurring?

Review overview

How are landlords, clients and vendors rated?

Dispute dashboard

How many disputes are active, their amounts and resolution time?

AI feedback logs

Which AI responses receive poor feedback and why?

 

Recommended review cadence

Frequency

Review

Continuous / hourly

Critical and urgent tickets, safety issues, security/privacy concerns and real-time chat workload.

Daily

Unread inquiries, unassigned tickets, pending client responses, SLA-at-risk cases and escalations.

Weekly

Ticket backlog, assignment count, canned response use, low survey scores, feedback and unresolved disputes.

Monthly

Volume, response/resolution time, SLA compliance, agent/department performance, notification delivery and review trends.

Quarterly

Category design, staffing, SLA targets, AI quality, privacy, access, review moderation and dispute outcomes.

After major incident

Full communication timeline, decisions, notifications, evidence, root cause and corrective actions.

 

 

 

22 Worked Example - Property Inquiry to Application Handover

Scenario: A prospect asks whether Unit B-12 at HarbourGate Court is available, whether pets are allowed and how to apply.

Stage

What happens

1. Inquiry start

The prospect opens the listing and PropertyInquiryController@startInquiry creates an inquiry ChatRoom.

2. Notification

NewInquiryMessage notifies the landlord leasing team.

3. Review

The officer opens LandlordInquiryInboxController@show and verifies the listing and current availability.

4. Reply

The officer answers the approved pet policy and application steps. ChatRoomMessage broadcasts the reply.

5. Follow-up

The prospect asks about viewing time; the officer records the next action.

6. Conversion

The prospect starts the application through the correct listing workflow.

7. Resolve inquiry

The officer marks the inquiry resolved because the question has converted to application handling.

8. Traceability

The room retains the listing context, participants, messages and timestamps.

 

Control outcome

·         The answer came from the correct listing.

·         No unnecessary identity or financial information was requested in chat.

·         The prospect received a clear next action.

·         The inquiry was resolved without deleting the conversation.

23 Worked Example - Maintenance Chat and Formal Support Ticket

Scenario: A client reports a water leak. The maintenance thread coordinates immediate action, while a support ticket tracks service accountability because access and vendor attendance are delayed.

Stage

What happens

1. Maintenance record

The client creates the maintenance request in the maintenance module.

2. Dedicated chat

showMaintenanceChat loads the room for landlord, client and assigned vendor.

3. Safety update

The landlord gives approved immediate safety guidance and next update time.

4. Vendor coordination

The vendor posts attendance timing and diagnosis.

5. Delay identified

Access coordination fails and the issue requires formal ownership.

6. Ticket created

A high-priority Property/Maintenance SupportTicket is opened and linked to the property.

7. Assignment and SLA

The ticket is assigned to the facility department and first-response clock recorded.

8. Internal note

Staff record building access and approval details privately.

9. Resolution

Repair is completed, evidence added, ticket resolved and client notified.

10. Survey

SatisfactionSurveyInvitation is sent; low response-time score triggers service review.

 

24 Worked Example - Urgent Billing Ticket, Escalation and Survey

Scenario: A client reports that a rent payment was debited but the lease still shows unpaid.

Stage

Operational action

Intake

Urgent Billing ticket created with transaction reference and safe evidence.

Assignment

Assigned to Billing; markFirstResponse records acknowledgment.

Investigation

Agent reviews payment records and adds an internal reconciliation note.

AI draft

generateAIResponse prepares a draft acknowledgment; agent corrects wording and sends.

Escalation

The SLA is at risk and needsEscalation signals supervisor review.

Resolution

Payment record is corrected through the payment workflow; ticket resolution explains the outcome.

Survey

Client completes the public survey and rates resolution highly but speed low.

Improvement

Support manager reviews response time and updates routing/canned response.

 

25 Worked Example - Deposit Dispute Resolution

Scenario: A former client disputes a deposit deduction after lease termination.

Stage

Operational action

1. Dispute intake

Dispute created against the correct lease with type deposit, monetary amount and evidence.

2. Notification

DisputeRaised notifies the other party.

3. Under review

Legal/operations review lease terms, inspection photos, invoices, ticket and chat history.

4. Notes

Each party's evidence and statements are appended through the authorised note path.

5. Mediation

Parties discuss the disputed items and possible partial adjustment.

6. Resolution

Approved resolution states deduction, refund, payment date and closing actions.

7. Notification

DisputeUpdated notifies status; ConflictResolvedNotification confirms the outcome.

8. Close and analytics

Dispute closes after completion and DisputeService updates resolution metrics.

 

26 Real Estate Company Onboarding Checklist

Structure and people

  Support manager and escalation owners named.

  Departments and assigned staff created.

  Property and portfolio access reviewed.

  Business hours, holidays and time zone approved.

  Priority definitions documented.

Configuration

  Categories and tags configured.

  SLA and ticket-specific SLA policies activated.

  Canned response library approved.

  Notification preferences and templates reviewed.

  Survey questions and low-score process agreed.

  Review moderation and vendor-response policy approved.

  Dispute workflow and legal escalation defined.

  AI custom instructions and review rules approved.

Technical and security readiness

  WebSocket/Pusher messaging tested.

  Mobile and API chat/ticket endpoints tested.

  Notification email/SMS/push delivery tested.

  Internal notes hidden from client views.

  SupportTicketScope and NotificationScope isolation tested.

  Attachments and download permissions tested.

  Survey public tokens tested.

  Exports and retention controls tested.

27 User Acceptance Testing and Go-Live Validation

Test area

Test case

Expected result

Direct chat

Create and send between two eligible users.

One room, one message, real-time delivery and unread count.

Group chat

Add/remove participants and leave.

Only current participants retain access.

Maintenance chat

Open linked thread and message vendor/client.

Correct MaintenanceRequest context retained.

Inquiry

Start from listing, reply, resolve and reopen.

Correct listing context and unread badge.

Attachment

Upload and download authorised file.

Only participants can access.

AI chat

Query, history, file analysis, feedback and export.

Contextual output stored; controls work.

Ticket intake

Submit web/mobile/API ticket.

Correct creator, landlord, category, priority and channel.

Reply/internal note

Send each type.

Client sees reply but never internal note.

AI ticket response

Generate draft and edit.

Draft not sent automatically.

Assignment

Assign and transfer departments.

History and count updated.

Escalation

Escalate to supervisor/SuperAdmin.

Reason, level and owner stored.

SLA

Mark first response and resolve.

Actual hours calculated against correct policy.

Breach

Simulate approved breach test.

SupportTicketSlaBreach created once.

Canned response

Insert response.

Content returned and usage_count incremented.

Survey

Resolve ticket and submit public form.

Ticket rating/feedback and survey completion stored.

Notification

Send all configured channels.

Correct recipient, deep link and statuses.

Feedback

Submit and respond.

Status and admin response stored.

Review

Create and notify reviewee.

Correct lease and parties linked.

Vendor response

Respond to vendor review.

Public response displayed and rating metrics preserved.

Dispute

Create, update, mediate, resolve and close.

Events, notes, evidence and resolution history preserved.

Scopes

Attempt cross-user/company access.

Unauthorised records are not returned.

Exports

Export tickets, surveys and analytics.

Filters and data match dashboards.

 

Go-live gate

Do not move client communication and support operations into production until participant access, internal-note isolation, real-time delivery, ticket ownership, SLA, escalation, surveys, notifications, reviews, disputes, exports and data isolation have passed user acceptance testing.

 

28 Common Issues and Troubleshooting

Issue

Likely cause

Recommended action

Chat room missing

User is not a participant, room archived or wrong context.

Confirm participant_ids, scopeForUser and active/archived filter.

Duplicate direct chats

Room lookup or retry created more than one room.

Identify canonical room and verify idempotent create logic.

Message not live

WebSocket/Pusher connection or channel authorisation issue.

Confirm message saved, then inspect broadcast connection without resending blindly.

Unread count wrong

Read state not updated or wrong user ID.

Run markAsRead and inspect per-user read records.

Attachment denied

User is not authorised or storage path missing.

Confirm participant/ticket access and file existence.

Inquiry not in inbox

Wrong room type, landlord participant or listing owner.

Check type inquiry, inquirable link and scopeForUser.

Ticket routed incorrectly

Category/department mapping or intake selection wrong.

Transfer with reason and update routing rules.

Client sees internal note

View/API isolation defect.

Remove exposure immediately, preserve incident evidence and escalate security/privacy review.

AI draft is inaccurate

Incomplete context or unsupported generation.

Do not send; correct manually and submit AI feedback.

SLA time wrong

Priority, policy, business hours or timestamp issue.

Review applied policy and calendar; correct under audit.

Repeated reassignment

Unclear ownership or missing skills.

Assign supervisor, specialist or transfer once with complete handover.

Survey link fails

Invalid uuid, expired/used token or route issue.

Verify survey record and public form configuration.

Notification not received

Preference, quiet hours, channel provider or contact data.

Check Notification record, logs and recipient settings.

Review linked to wrong party

Incorrect reviewer/reviewee/lease selection.

Restrict display and correct through approved moderation.

Dispute amount differs

Currency conversion or wrong source amount.

Reconcile contractual currency and source evidence.

Export differs from dashboard

Filters, date range, status or refresh timing.

Match query parameters and data snapshot.

 

Support information to include

Provide the company, user role, property/lease/ticket/chat/dispute reference, affected route, date/time, action attempted, expected result, actual result, delivery channel, device/browser and a screenshot with passwords, tokens and unnecessary personal data removed.

 

29 Frequently Asked Questions

When should we use chat instead of a support ticket?

Use chat for ordinary conversation and coordination. Use a ticket when ownership, priority, SLA, escalation, formal resolution or reporting is required.

Can a chat be linked to a maintenance request?

Yes. The dedicated maintenance chat links the ChatRoom to maintenance_request_id and can include landlord, client and assigned vendor.

Can prospects send listing inquiries?

Yes. The inquiry flow creates a ChatRoom linked polymorphically to the PropertyListing.

Does a resolved inquiry disappear?

It moves to resolved status and can be reopened. The conversation history remains part of the record.

Can support staff write private notes?

Yes. addInternalNote creates a staff/landlord-only note that must not be visible to the client.

Can AI send a ticket reply automatically?

The supplied flow stores an AI-generated draft for agent review. Authorised staff should edit and send it.

What is the difference between pending and resolved?

Pending means waiting for client or external action; resolved means a solution has been recorded.

How is first response measured?

markFirstResponse sets first_response_at and calculates response_time_hours.

What happens when SLA is breached?

A SupportTicketSlaBreach record can capture the ticket, policy, breach type, time and hours overdue; escalation should follow policy.

Can agents use pre-written replies?

Yes. Canned responses are searched and inserted with @use, which increments usage_count.

Does the client need to log in for a satisfaction survey?

The supplied public survey form uses a unique uuid link and does not require login.

What notification channels are supported?

The Notification model supports in_app, email, sms and push.

Can users choose notification channels?

NotificationPreference provides per-event channel toggles, subject to platform configuration.

What is AI feedback?

It is a thumbs-up/down and optional text rating tied to an AI interaction and stored in AIFeedback/AiFeedbackLog.

Can reviews be edited?

The supplied controllers include edit/update actions. The live policy should define whether only drafts or also published reviews may be edited.

Can vendors respond to reviews?

Yes. VendorReviewsController@respond allows a public vendor response.

When should a dispute be raised?

When a material issue remains unresolved and needs a formal evidence, review, mediation, escalation and resolution record.

Does CurrencyService change the contractual dispute amount?

It supports preferred-currency display. The dispute should retain and reconcile the original contractual amount and currency.

Can tickets be bulk deleted?

A bulkDelete action is supplied, but companies should restrict it and preserve records required for service, legal or audit purposes.

Are all chat and notification events real-time?

The supplied architecture identifies ChatRoomMessage, NotificationCreated, AIChatHistoryUpdated and AIChatMessageSent as real-time broadcast events, subject to configured WebSocket/Pusher services.

30 Quick Reference - 33 Operational Steps

1. Access the Chat dashboard.

2. Create a direct or group ChatRoom.

3. Send, search and mark messages read.

4. Manage group participants.

5. Use the maintenance request chat.

6. Use mobile/API chat.

7. Use and supervise the AI chat assistant.

8. Start a property inquiry.

9. Manage the landlord inquiry inbox.

10. Configure ticket categories and tags.

11. Configure support departments.

12. Submit a support ticket.

13. Reply and add internal notes.

14. Manage ticket status and bulk operations.

15. Assign, transfer and escalate.

16. Review ticket reports and schedules.

17. Create and use canned responses.

18. Create SLA policies.

19. Monitor ticket SLA and breaches.

20. Configure and review satisfaction surveys.

21. Complete the public survey.

22. View and send notifications.

23. Monitor notification delivery.

24. Configure client notification preferences.

25. Submit platform feedback.

26. Manage feedback and responses.

27. Submit and review AI feedback.

28. Create a lease review.

29. Moderate reviews.

30. Manage vendor reviews and responses.

31. Raise a formal dispute.

32. Review and progress disputes.

33. Resolve, notify and analyse disputes.

 

 

31 Technical Reference - Core Models and Records

Model / record

Purpose

ChatRoom

Conversation identity, participants, type, context links, unread and last-message state.

ChatMessage

Individual sender, content, type, attachment and read data.

SupportTicket

Full ticket lifecycle including routing, status, priority, assignment, escalation, SLA, effort, AI and customer feedback.

SupportTicketMessage / SupportReply

Ticket conversation records.

SupportCategory

Supplied support category lookup model.

SupportDepartment

Support team department and assigned staff context.

TicketCategory / TicketTag

Configurable intake categories, colours, order and searchable tags.

SLA

General priority-based service policy.

SupportTicketSlaPolicy

Ticket-specific response, resolution and escalation targets.

SupportTicketSlaBreach

Recorded response/resolution breach.

CannedResponse

Pre-written reply template and usage count.

SatisfactionSurvey

Post-resolution ratings, feedback, overall score and recommendation intent.

Notification

Recipient, sender, content, type, priority, channel, deep link and delivery state.

NotificationPreference

Per-user event/channel choices.

NotificationSetting

Platform event templates and notification settings.

LeaseNotification / LeadNotification

Lease- and CRM-specific notification records.

Feedback

General platform feedback and admin response.

AIFeedback / AiFeedbackLog

AI interaction rating and quality-event log.

AIChatbot / AIChatLog

AI assistant configuration and conversation history.

Review

Lease-linked reviewer, reviewee, rating and comment.

VendorReview

Maintenance vendor rating and public response context.

Dispute / DisputeManagement

Formal lease-linked issue, evidence, amount, status, notes and resolution.

 

32 Technical Reference - Chat and Inquiry Controllers

Controller / action

Responsibility

Shared\ChatController@index

List authorised active ChatRoom records.

create / store

Create direct/group room with participants and context.

show / loadMoreMessages

Display paginated conversation and older messages.

sendMessage

Create ChatMessage, update last-message fields and fire events.

typing / markAsRead

Broadcast typing and clear unread state.

searchMessages / downloadAttachment

Search within room and securely stream attachments.

addParticipants / potentialParticipants / removeParticipant / leaveRoom

Group membership management.

showMaintenanceChat / sendMaintenanceMessage

MaintenanceRequest-linked conversation.

participantsByProperty

Return eligible users for a property.

API\Chat\ChatController

Mobile/direct chat, attachments, participants and leave flow.

PropertyInquiryController

Start listing inquiry, list own inquiries and exchange messages.

LandlordInquiryInboxController

Landlord inquiry filters, show, reply, resolve, reopen and unread count.

API\Mobile\Landlord\InquiryController

Mobile landlord inquiry list, messages, reply and resolve.

LeaseoraAI\ChatController

AI query, typing, history, feedback, search, export, custom instructions, file upload and reactions.

API\Mobile\Tenant\AIChatController

Mobile AI sessions, send, history, recommendations, file analysis and deletion.

 

33 Technical Reference - Support Ticket Controllers and Methods

Functional area

Controller actions / methods

Ticket intake

Shared\SupportTicketController@create, @store; API\Support\SupportTicketController@store.

Ticket detail and reply

@show, @reply, @typing, @addInternalNote.

Status and bulk

@updateStatus, @bulkUpdateStatus, @bulkAssign, @bulkDelete, @exportReport.

Department / assignment

@transferDepartment, @assignToStaff, @assignTicket, @getAvailableStaff, @getDepartmentStaff.

Escalation

@escalateTicket; SupportTicket::escalate, ::escalateToSuperAdmin, ::needsEscalation.

SLA timestamps

@markFirstResponse, @markResolved, getPerformanceMetrics.

AI response

SuperAdmin SupportTicketController@generateAIResponse.

Analytics / reports

@analytics, @reports, @comments, @exportReport.

Contact reply

@replyToContactMessage.

Follow-up scheduling

SupportTicketScheduleController full CRUD.

Model transfer

SupportTicket::transferToDepartment($departmentId, $userId, $reason).

Model assignment

SupportTicket::assignToStaff($userId, $assignedByUserId).

Customer feedback

SupportTicket::addCustomerFeedback($rating, $feedback).

 

34 Technical Reference - SLA, Survey, Notification and Feedback Controllers

Area

Controllers / actions

Categories and tags

TicketCategoryController@index, create/store, edit/update, destroy, toggleStatus, updateOrder, tags, store/update/destroy/toggle tag.

Canned responses

Landlord and SuperAdmin CannedResponseController full CRUD plus @use.

General SLA

SlaManagementController and SuperAdmin SLAController full CRUD plus @toggleStatus.

Ticket SLA

SupportTicketSlaPolicy, SupportTicketSlaBreach and SupportTicket::sla/getPerformanceMetrics.

Landlord surveys

SatisfactionSurveyController@index, create/store, show, destroy, analytics, export.

Public surveys

SuperAdmin SatisfactionSurveyController@publicForm, @submitPublicForm, @thankYou.

Landlord notifications

NotificationController@index, @send, @store.

SuperAdmin notifications

index, create/store, markAsRead/unread, logs, landlordIndex.

Mobile notifications

API Mobile Tenant NotificationController@index, @markRead; API NotificationController.

Tenant notifications

Users Tenant Share NotificationController / NotificationsController.

General feedback

SuperAdmin FeedbackController index, CRUD, landlordIndex/create/store.

AI feedback

LeaseoraAI FeedbackController, Users Shared AIFeedbackController, SuperAdmin AIFeedbackController, AiFeedbackLogController, AIChatLogController.

 

35 Technical Reference - Reviews, Disputes, Events and Mail Classes

Area

Controllers / services

Landlord reviews

Landlord Shared ReviewController index, create/store, show, edit/update, destroy.

API reviews

API Review ReviewController@index, @store, @show.

SuperAdmin reviews

SuperAdmin ReviewController index, tenantIndex, landlordIndex and CRUD.

Vendor reviews

VendorReviewsController@index, @respond.

Landlord disputes

DisputeController@landlordIndex, landlordCreate/store, landlordShow, landlordUpdateStatus, landlordAddNotes.

SuperAdmin disputes

DisputeController index and CRUD.

Dispute analytics

DisputeService getDisputeStats, getActiveDisputes, getDisputeDetails, createDispute, resolveDispute.

Real-time events

ChatRoomMessage, NotificationCreated, AIChatHistoryUpdated, AIChatMessageSent.

Lifecycle events

NewChatMessage, NewInquiryMessage, SupportReplySent, SupportTicketUpdated, ReviewCreated, DisputeRaised, DisputeUpdated.

Mail classes

SatisfactionSurveyInvitation, SupportAiReplyNotification, AISupportSummaryMail, ConflictResolvedNotification, AiLeasingChatSummary, GenericNotificationMail.

 

36 Technical Reference - ChatRoom and SupportTicket Fields

ChatRoom field reference

Field

Purpose

name, description, type

Room identity and direct/group/maintenance/inquiry classification.

created_by

Room creator.

property_id, lease_id, maintenance_request_id

Direct context links.

participant_ids

JSON list of participant user IDs.

last_message_id, last_message_at

Most recent message tracking.

is_archived, is_group

Room-state toggles.

inquiry_type, inquirable_id, inquirable_type

Polymorphic inquiry context.

status

open, resolved or archived.

landlord_agency_id, landlord_type

Landlord context.

 

SupportTicket field groups

Field group

Fields

Core

subject, description, category, category_id, status, priority, department_id, property_id.

Actors / channel

created_by, assigned_to, channel, ticket_type, recipient_id, landlord_id, submitter_email, submitter_name.

Follow-up

scheduled_follow_up, follow_up_notes.

Assignment

assigned_at, assigned_by, assignment_count, assignment_history.

Escalation

is_escalated, escalated_to, escalated_at, escalation_reason, escalation_level.

SLA

first_response_at, response_time_hours, resolved_at, resolution_time_hours.

Effort / specialist

complexity_level, estimated_effort_hours, actual_effort_hours, requires_specialist, required_skills.

Satisfaction

customer_rating, customer_feedback, feedback_submitted_at.

AI

ai_response, ai_response_at.

 

37 Technical Reference - AI Features and Service

Feature

Controller / service

Stored / emitted data

AI chat assistant

LeaseoraAI ChatController + LeaseoraAIService

AIChatbot, AIChatLog, history, reactions and custom instructions.

Mobile AI chat

Mobile Tenant AIChatController + OpenAIService

Sessions, responses, history, recommendations and file analysis.

Ticket draft response

SuperAdmin SupportTicketController@generateAIResponse

SupportTicket.ai_response and ai_response_at.

AI escalation check

SupportTicket::needsEscalation

Escalation recommendation based on age, SLA or complexity.

AI support summary

AISupportSummaryMail

Session summary sent to agent/landlord.

AI chat summary

AiLeasingChatSummary

AI chat-session summary email.

AI feedback

AIFeedback / AiFeedbackLog

Thumbs rating, text feedback and quality logs.

AI events

AIChatHistoryUpdated, AIChatMessageSent

Real-time AI conversation updates.

 

38 Implementation Details Requiring Production Confirmation

The supplied scenario defines the intended controllers, models, fields and workflows but does not fully state every production rule. The product, engineering, legal, privacy and operations teams should confirm the following before release or formal training:

Area

Details to confirm

Chat read model

Exact ChatMessage read-status records and unread-count calculation.

Direct room uniqueness

How one direct room per user pair is enforced and retried idempotently.

Attachment limits

Allowed formats, maximum size, malware scanning and storage retention.

Broadcast channels

Exact WebSocket/Pusher channel names, authorisation and retry behaviour.

Ticket transitions

Whether all status transitions are allowed and who may reopen/close.

Bulk deletion

Retention restrictions, soft delete and legal hold behaviour.

SLA clock

Business calendar, holidays, pause rules and time-zone calculation.

Auto escalation

Exact needsEscalation thresholds and whether action is automatic or advisory.

Survey token

Expiry, one-time submission, duplicate prevention and privacy notice.

NPS calculation

Exact promoter/detractor mapping for would_recommend.

Notification provider

Configured email, SMS and push services and delivery-status semantics.

Review publication

Draft/published states, edit window, response and moderation policy.

Dispute authority

Who can resolve, reopen, escalate, delete and approve financial remedies.

Currency storage

Original dispute currency field and preferred-currency display rules.

AI context

Which records are sent to each AI service and retention/privacy controls.

Scopes / policies

Exact SupportTicketScope, NotificationScope, participant and role authorisation.

Audit trail

Which message, status, assignment, notification and dispute changes are retained.

 

Confirm against the live build

This guide preserves the supplied names and intended flows. Where the production interface, API or code uses additional fields, statuses, validation rules, permissions or delivery providers, update the guide before user training and go-live.

 

Appendix A - Recommended Ticket Intake Checklist

  Correct ticket type and recipient.

  Clear subject and factual description.

  Correct category, priority and department.

  Property and lease context where relevant.

  Safe evidence attached.

  Impact and requested outcome stated.

  Contact and follow-up time confirmed.

  No duplicate open ticket exists.

Appendix B - Recommended Priority Definitions

Priority

Suggested operational interpretation

Low

General question or minor issue with little immediate impact.

Medium

Normal service issue affecting one user or ordinary operation.

High

Significant service disruption, financial impact or repeated failure requiring prompt ownership.

Urgent

Severe time-sensitive impact, safety concern or critical business interruption.

Critical

Immediate major safety, security, privacy, legal or platform-wide risk requiring executive/escalation response.

 

Use company-approved definitions

The exact priority criteria and response targets must be approved by the real estate company and aligned with the live SLA configuration.

 

Appendix C - Support Reply Quality Checklist

  Correct recipient and ticket context.

  Acknowledges the actual question or issue.

  Facts verified from Leaseora records.

  No confidential internal note included.

  Plain, respectful language.

  Action owner named.

  Next step and expected time stated.

  Amounts, dates, links and attachments checked.

  AI/template content reviewed.

  Status updated consistently.

Appendix D - Escalation Handover Template

Handover field

Content

Ticket / dispute reference

Unique identifier and deep link.

Client and context

Authorised user, property, lease or service.

Issue and impact

What is happening and who is affected.

Actions completed

Investigation, replies and attempted resolution.

Evidence

Relevant attachments, logs, records and dates.

SLA position

Target, actual time and breach risk.

Reason for escalation

Authority, complexity, safety, financial, legal, privacy or technical need.

Requested decision

Specific action needed from the receiving person.

Next communication

Who will update the client and when.

 

Appendix E - Dispute Resolution Record Checklist

  Correct lease and parties.

  Issue, type, priority and amount.

  Original evidence preserved.

  Relevant chat, ticket, payment, maintenance and inspection history.

  Both parties' statements.

  Applicable lease terms and policy.

  Mediation/escalation steps.

  Decision authority.

  Detailed resolution and financial treatment.

  Completion date and notifications.

  Closure/reopen rule.

Appendix F - One-Page Operating Reference

When this happens

Use this Leaseora workflow

Quick question or coordination

ChatRoom.

Question about a listing

Property inquiry.

Issue needs owner/status/deadline

SupportTicket.

Repeated common question

CannedResponse inserted into a reviewed reply.

Response or resolution target

SLA / SupportTicketSlaPolicy.

Target missed

SupportTicketSlaBreach and escalation.

Ticket resolved

SatisfactionSurveyInvitation.

Custom alert

Notification.

Product/service suggestion

Feedback.

AI answer quality issue

AIFeedback.

Opinion after tenancy/job

Review / VendorReview.

Formal unresolved material issue

Dispute.

 

 

 

LEASEORA

COMMUNICATION & SUPPORT

One connected service system for conversations, inquiries, tickets, SLA, satisfaction, notifications, feedback, reviews and dispute resolution.

Support and onboarding

For corporate onboarding, staff training or operational support, contact Leaseora at support@leaseora.com.

leaseora.com

Was this article helpful?

Your feedback helps us improve our documentation.

Article Info

Category COMMUNICATION
Reading Time 62 min
Views 13
Published Jul 30, 2026

Share

🤝

Need more help?

Our support team is available to assist you.

Contact Support