İçeriğe geç

Notification Preferences — Customer Support Reference

Detay

Internal support team reference. When a customer asks “how do I stop getting SMS/email”, point them here, or use the canned responses at the bottom.

Customers can manage their own notification preferences at:

https://ecutuningportal.com/<locale>/customer/notifications/preferences

Three independent toggles control three independent channels:

ToggleDB columnAffects
Block SMS notificationsCustomer.smsOptOutAll SMS regardless of type
Block transactional emailCustomer.emailTransactionalOptOutReceipts, status updates, security alerts
Block marketing emailCustomer.marketingOptOutPromotions, newsletters, product announcements

Each gate is enforced at send time in lib/notification.ts. No code path can bypass them without an explicit code change reviewed in PR.

The page lives in 24 languages (auto-detected from locale). Each toggle has a one-line label and a brief description. There’s also a warning banner if the customer has no phone number on file — the SMS toggle is disabled in that case (you can’t opt out of something you can’t receive).

Some classes of messages bypass these toggles by design:

  • Authentication codes (OTP, 2FA, magic link, password reset) — security requirement; no business-side opt-out
  • Legal / compliance notices (account termination, GDPR data export)
  • Payment failures that block account access — operational necessity
  • Critical security events (new login from new device when 2FA enabled)

These are sent regardless of opt-out flags. If a customer complains they got an OTP after opting out of SMS, this is expected — explain that auth codes are exempt and offer 2FA app instead of SMS.

→ Direct them to the preferences page and ask them to enable “Block marketing email”. Transactional emails (invoices, status updates) will still arrive.

→ Enable “Block SMS notifications”. Note this includes things like “file uploaded for review” or “your developer responded” — operational SMS as well as marketing. Auth codes still come through (see above).

Check in order:

  1. Phone on file? Customer.phone must be non-null.
  2. Customer.smsOptOut = false?
  3. Recent SmsLog entry exists?
  4. SmsLog.statusdelivered vs failed vs undelivered.
  5. Carrier-specific block? Look at SmsLog.errorMessage.
  6. For TR/EU numbers: provider should be Infobip, not Twilio. If Twilio, check SMS_PROVIDER env override on the server.

”I want to receive SMS but the toggle is disabled”

Bölüm başlığı “”I want to receive SMS but the toggle is disabled””

→ Customer has no phone number on the account. Direct them to the profile page to add a phone number, then come back to preferences.

→ Same preferences page, untick the box, click Save. There’s no cooldown.

Bildirim tercihlerinizi şu sayfadan yönetebilirsiniz: https://ecutuningportal.com/tr/customer/notifications/preferences Üç ayrı seçenek var: SMS, işlemsel e-posta (fatura/durum) ve pazarlama e-postası. Güvenlik kodları (OTP) ve hesap erişimini etkileyen kritik bildirimler kapatılamaz; mevzuat gereği gönderilmek zorunda. SMS toggle’ı kilitli görünüyorsa profilinize telefon eklemeniz gerekiyor.

You can manage your notification preferences here: https://ecutuningportal.com/en/customer/notifications/preferences Three independent toggles: SMS, transactional email (invoices/status), and marketing email. Security codes (OTP) and account-critical notices can’t be disabled — they’re required by regulation. If the SMS toggle is locked, add a phone number to your profile first.

  • Customer reports opt-out not honoured (received SMS/email after toggling) → escalate with customerId + timestamp; engineering checks SmsLog/EmailLog to see which gate was evaluated
  • Customer reports they can’t toggle (page errors out) → escalate with browser console log + locale + Customer ID
  • Customer asks for “all data exported / deleted” → escalate to legal (GDPR pathway, not the preferences page)
  • docs/MAIL_SMS_GUIDELINES.md — overall messaging policy
  • lib/notification.ts — opt-out gate implementation (5 reason codes)
  • lib/sms/i18n.ts — full template catalogue (28 templates as of 2026-05-13)
  • prisma/migrations/20260513230500_add_notification_optout — schema migration