এই ভলিউমে · ভলিউম 08
সিস্টেম বৈশিষ্ট্য
নোটিফিকেশন অডিট লগ

অধ্যায় ৮.১ — নোটিফিকেশন

১. উদ্দেশ্য

নোটিফিকেশন সিস্টেম — কখন, কীভাবে, কাকে travoBooks বার্তা পাঠায়।

২. চ্যানেল

চ্যানেল উদ্দেশ্য
ইমেইল (SES) প্রাথমিক ট্রানজ্যাকশনাল চ্যানেল
SMS (Twilio/স্থানীয়) OTP, জরুরি অ্যালার্ট
In-app inbox প্ল্যাটফর্ম-জুড়ে notification center
Push notification মোবাইল অ্যাপ (Phase 2)
Webhook machine-to-machine (অধ্যায় ৭.৪)

৩. ক্যাটাগরি

ক্যাটাগরি নিয়ম
Transactional সর্বদা পাঠানো (e-ticket, রসিদ, ইনভয়েস)
Operational পার্টনার স্টাফ (অনুমোদন অনুরোধ, alert)
Marketing Consent-ভিত্তিক, opt-out support
Compliance বাধ্যতামূলক রেগুলেটরি (data breach, retention)
Security পাসওয়ার্ড রিসেট, নতুন device login

৪. টেমপ্লেট সিস্টেম

প্রতি (notification_type, channel, language) জোড়ার জন্য:

notification_templates (
  template_id,
  notification_type,    -- 'BOOKING_CONFIRMATION'
  channel,              -- 'EMAIL' / 'SMS' / 'PUSH'
  language,             -- 'en' / 'bn' / 'hi'
  partner_id,           -- NULL = system default
  subject_template,     -- Handlebars syntax
  body_template,        -- Handlebars syntax
  active                -- boolean
)

ভেরিয়েবল substitution:

Dear {{customer.name}},
Your booking {{booking.id}} is confirmed for {{booking.travel_date}}.

৫. পার্টনার ব্র্যান্ডিং

  • ব্র্যান্ডেড letterhead (logo, রঙ)
  • স্ট্যান্ডার্ড টেমপ্লেটের পার্টনার override
  • Multi-language (গ্রাহকের পছন্দের ভাষা)

৬. ডেলিভারি প্রবাহ

১. ইভেন্ট ট্রিগার (booking.issued)
২. টেমপ্লেট রেজল্ভ (partner override → system default)
৩. ভেরিয়েবল populate
৪. Outbox-এ rendered notification queue
৫. Worker pool ডেলিভারি (parallel)
৬. Provider response লগ
৭. Bounce/complaint webhook handle

৭. ইমেইল-নির্দিষ্ট

Provider: AWS SES Authentication: SPF, DKIM, DMARC সব deployed Bounces: hard bounce → suppress address; soft bounce → retry Complaints: complain হলে immediate suppress + alert

৮. PDF জেনারেশন

Headless Chromium worker pool: - E-ticket (IATA standard layout) - Invoice (jurisdiction-specific) - Voucher (non-air confirmation) - Customer statement

স্টোরেজ: S3, 10 বছর retention।

৯. In-app Inbox

প্রতি ব্যবহারকারী: - Unread count badge - Filter: All, Approval, Alert, System - Snooze, mark-as-read - Action buttons (Approve, View Details)

GDPR/DPDPA-অনুগত: - Marketing: explicit opt-in, easy opt-out - Transactional: cannot opt-out (legitimate business need) - Preference center: প্রতি ক্যাটাগরিতে পছন্দ

১১. সাধারণ ফাঁদ

  • ⚠️ Authentication (SPF/DKIM/DMARC) ছাড়া email — spam folder
  • ⚠️ Marketing-এর জন্য transactional template — GDPR violation
  • ⚠️ Variable substitution ব্যর্থতা — "Dear {{customer.name}}" শাব্দিকভাবে পাঠানো
  • ⚠️ PDF rendering blocking main flow — slow response