API email / notifikasi / push / WhatsApp terpusat untuk aplikasi HaloRT.
| Repo | halort-notification-service |
| Stack | Express · TypeScript · BullMQ · Redis · PostgreSQL · React Email (@halort/email) · APNs · FCM · Fonnte |
| Lokal | http://127.0.0.1:8090/health |
| Produksi | https://notifications.halort.com |
Auth
Service-to-service: X-Halort-Internal-Key (INTERNAL_API_KEY).
Rute utama
GET /healthPOST /v1/emails/send·POST /v1/emails/rawPOST /v1/push/send— APNs (iOS) / FCM (Android)POST /v1/whatsapp/send·POST /v1/whatsapp/blast— Fonnte (FONNTE_TOKEN)- Template + log pengiriman / retry
Platform memanggil saluran di atas lewat NOTIFICATION_SERVICE_URL (fallback Fonnte langsung hanya untuk lokal bila service 503 / belum dikonfigurasi).
Template (contoh)
WELCOME, PASSWORD_RESET, PAYMENT_REMINDER, CONTACT_INQUIRY, CONTACT_AUTO_REPLY, SUPPORT_TICKET_SUBMITTER_REPLIED, SUPPORT_TICKET_RESPONDED, …
Template tiket dukungan memakai @halort/email (logo HaloRT, kartu konten, tombol aksi). Subjek menyertakan [HRT:{{replyToken}}] untuk sinkronisasi balasan email inbound.
Balasan email tiket dukungan
Worker polling Gmail (halort-notification-service) memproses balasan dengan token di subjek → halort-platform internal API. Alternatif: halaman publik www.halort.com/tiket/balas/{token}.
Lihat Features/Tiket Dukungan Platform · halort-infra/cloudflare/support-inbound-email/.
Pemanggil
- Surfaces/Platform API (email produk)
- Surfaces/Marketing Web (form kontak)
Pipeline: API → Redis/BullMQ → worker → SMTP (atau SES/SendGrid/Mailgun) → log PostgreSQL. Lihat Architecture/Request Flow · Architecture/Data Stores · Surfaces/Design System.
Deploy
Jalur utama: Hetzner K8s via GHCR + Argo CD. Skrip Mac mini / tunnel legacy mungkin masih ada di repo untuk hosting alternatif.