Communication Notices
Communication Notices
Communication notices allow property management agents to draft, publish, and broadcast messages to owners and occupants within a development. Notices support rich audience targeting, document attachments, and email broadcast delivery.
Audience Targeting
When creating or editing a notice, select one of the following audience types from the Audience dropdown:
| Option | Who Receives It |
|---|---|
| All Owners | Every owner with an active unit ownership in the development |
| Owners & Occupants | All owners and all occupants linked to any unit |
| Occupants Only | Owners where isOccupier = true on their unit ownership record |
| Owner-Occupiers Only | Owners where ownershipType = 'owner_occupier' |
| Landlord / Investors Only | Owners where ownershipType is landlord or investor |
Note: The legacy Landlords / Investors option (
landlords) is preserved for existing notices but is not available when creating new ones. Use Landlord / Investors Only instead.
Multi-role contacts
A contact's primary audience membership is determined by their ownershipType. Occupancy is tracked independently via the isOccupier flag on their unit ownership record. A landlord who also physically occupies a unit will appear in Landlord / Investors Only broadcasts, but will also appear in Occupants Only broadcasts — the two fields are not mutually exclusive.
Audience Preview
After selecting a development and an audience type, an Audience Preview indicator appears beneath the audience dropdown. It displays:
- Total recipients — the total number of contacts matched by the selected audience
- With email — contacts who have a registered email address and will receive a broadcast
- Without email — contacts who will not receive email (shown in amber as a prompt to review records)
The preview updates in real time as you change the development or audience selection. No notice is created or modified until you save.
Attaching Documents
Up to 10 documents from the development's document library can be attached to a notice.
How to attach documents
- In the create or edit form, scroll to the Attachments section.
- Click Add documents to open the document picker.
- Use the search field to filter by document title or file name.
- Check the documents you want to attach. Selected documents appear as pills above the picker.
- To remove an attachment, click the × on its pill, or uncheck it in the picker.
You must select a development before the document picker becomes active.
Attachment validation
- A maximum of 10 documents may be attached per notice.
- Only documents belonging to the same organisation and development as the notice are selectable.
- Validation is enforced on both the client and the server.
Email Broadcast
When you send a notice as an email broadcast, the system:
- Resolves all recipients for the selected audience type.
- Generates a presigned download URL (1-hour expiry) for each attached document.
- Includes the download links in the email body.
Presigned URLs are used instead of file attachments to avoid email size limits and to work consistently across all document types stored in the document management system.
Recipients without a registered email address will not receive the broadcast. The Audience Preview indicator shows this count before you send.
Notice Detail View
The notice detail modal displays:
- Notice type, status, and audience (using the full human-readable label)
- Published date and expiry date (if set)
- Body text and any agent notes
- Attached Documents section — lists each attached document with its title, file name, and file size
Notice List
Each row in the notice list shows:
- Notice title and type badge
- Audience label
- Attachment count badge (if documents are attached)
- Status and published date
tRPC API Reference
communications.previewAudienceCount
Returns recipient counts for a development + audience combination. Used by the UI for real-time feedback.
Input:
{
developmentId: string;
audience: AudienceType;
}
Output:
{
totalRecipients: number;
withEmail: number;
withoutEmail: number;
}
communications.listDocumentsForAttachment
Lists documents available to attach to a notice for a given development.
Input:
{
developmentId: string;
search?: string; // optional keyword filter
limit?: number; // defaults to 20
}
Output: Array of document objects with id, title, fileName, mimeType, fileSize, and category.
communications.create / communications.update
Both mutations now accept an optional attachmentDocumentIds field:
{
// ... existing fields ...
attachmentDocumentIds?: string[]; // max 10 document IDs
}
communications.getById
Now returns an attachedDocuments array on the notice object:
{
// ... existing fields ...
attachedDocuments: Array<{
id: string;
title: string;
fileName: string;
mimeType: string;
fileSize: number | null;
}>;
}
Audience Type Reference
type AudienceType =
| "all_owners" // All active unit ownerships
| "owner_occupiers" // ownershipType = 'owner_occupier'
| "occupants_only" // isOccupier = true
| "owners_and_occupants" // All owners + all occupants
| "landlord_investors" // ownershipType = 'landlord' | 'investor'
| "landlords"; // Legacy — backwards-compatible alias for landlord_investors