People
Communications
SMS, email, push notifications, and broadcasts — with templated messaging and automated payment reminders.
Channels
- SMS — via Africa's Talking. Set
AT_API_KEY,AT_USERNAME,AT_SENDER_IDin env. Supports Uganda, Kenya, Tanzania, Rwanda. - WhatsApp — via Africa's Talking's WhatsApp channel using the same API.
- Email — via Resend. Set
RESEND_API_KEYand a verifiedRESEND_FROM_EMAIL. - Web push — service-worker based. Tenants opt in per device.
Email templates
Settings → Email Templates. Every transactional email (rent receipt, lease invitation, payment reminder, statement ready) is editable. Templates support Tiptap rich text + placeholders like {{tenant.firstName}}, {{charge.balance}}, {{org.name}}.
Templates are sanitized via isomorphic-dompurify before render so a malicious template can't inject script tags into outbound mail.
Payment reminders
Tiered, automated reminders keep arrears moving without manual chasing. Three default tiers — you can edit them or add more:
FRIENDLY— day +3 after due date.FIRM— day +14.FINAL— day +30, with eviction warning.
Settings → Payment Reminders. Each tier has its own template + channel mix (SMS, email, or both). The cron picks up overdue charges nightly and sends the appropriate reminder.
Broadcasts
Communications → Compose. Send one message to many recipients:
- Pick the audience (entire org, one property, one unit type, custom CSV).
- Choose channels (SMS, Email, WhatsApp, push).
- Compose with placeholders.
- Review the delivery preview — final recipient count + per-channel costs.
- Send. Communications → History shows per-recipient delivery status.
Audit trail
Every outbound message logs sender, recipient, channel, template id, delivery status, and cost. Pull the activity timeline on a tenant record to see every touchpoint in chronological order.