Sandbox/Version demo/3.0
From OHC Network Wiki
More languages
More actions
⚠️ Warning
This is a sandbox demonstration of the wiki's versioning system. It is not real documentation. See Sandbox/Version demo for the latest version.
Notification system (v3.0)
Version 3.0 introduced templates, delivery tracking, and batching.
Channels
| Channel | Added in | Notes |
|---|---|---|
| 1.0 | Now supports HTML templates | |
| In-app | 2.0 | Now supports rich cards with actions |
| SMS | 2.0 | Template-based (character-count aware) |
| Push (mobile) | 3.0 | FCM / APNs via unified adapter |
| Webhook | 3.0 | For external integrations |
Template engine
Messages now use a Jinja2-like template language:
Hello {{ recipient.name }},
Your appointment with Dr. {{ provider.name }} is confirmed for
{{ appointment.datetime | format_date }}.
{% if appointment.requires_fasting %}
⚠️ Please fast for 12 hours before your visit.
{% endif %}
Delivery tracking
Every notification now records:
| Field | Type | Description |
|---|---|---|
status |
enum | queued → sent → delivered → read → failed
|
attempts |
int | Number of delivery attempts |
delivered_at |
datetime | When the channel confirmed receipt |
read_at |
datetime | When the user opened/acknowledged |
error |
text | Last failure reason (if any) |
Batching
Notifications to large groups now batch automatically:
- Email: up to 500 per SES API call
- Push: up to 1000 per FCM multicast
- Configurable batch window (default: 30 seconds)
What improved over 2.0
- Rich templates instead of hardcoded strings
- Full delivery lifecycle tracking
- Push notifications for mobile apps
- Webhook channel for third-party systems
- Batch sends for high-volume scenarios
Still missing
- No scheduling (send-at-time)
- No A/B testing of message variants
- No per-organization channel config (global only)