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_ID in env. Supports Uganda, Kenya, Tanzania, Rwanda.
  • WhatsApp — via Africa's Talking's WhatsApp channel using the same API.
  • Email — via Resend. Set RESEND_API_KEY and a verified RESEND_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:

  1. Pick the audience (entire org, one property, one unit type, custom CSV).
  2. Choose channels (SMS, Email, WhatsApp, push).
  3. Compose with placeholders.
  4. Review the delivery preview — final recipient count + per-channel costs.
  5. 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.