Notification Preferences — Customer Support Reference
DetayInternal 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/preferencesThree independent toggles control three independent channels:
| Toggle | DB column | Affects |
|---|---|---|
| Block SMS notifications | Customer.smsOptOut | All SMS regardless of type |
| Block transactional email | Customer.emailTransactionalOptOut | Receipts, status updates, security alerts |
| Block marketing email | Customer.marketingOptOut | Promotions, 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.
What customers see
Bölüm başlığı “What customers see”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).
What stays “always on” (cannot be turned off)
Bölüm başlığı “What stays “always on” (cannot be turned off)”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.
Common customer scenarios
Bölüm başlığı “Common customer scenarios””I’m getting too many marketing emails”
Bölüm başlığı “”I’m getting too many marketing emails””→ Direct them to the preferences page and ask them to enable “Block marketing email”. Transactional emails (invoices, status updates) will still arrive.
”I want to stop ALL SMS”
Bölüm başlığı “”I want to stop ALL SMS””→ 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).
”I never receive SMS but you say you sent it”
Bölüm başlığı “”I never receive SMS but you say you sent it””Check in order:
- Phone on file?
Customer.phonemust be non-null. Customer.smsOptOut= false?- Recent
SmsLogentry exists? SmsLog.status—deliveredvsfailedvsundelivered.- Carrier-specific block? Look at
SmsLog.errorMessage. - For TR/EU numbers: provider should be Infobip, not Twilio. If Twilio,
check
SMS_PROVIDERenv 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.
”I opted out by mistake — how do I undo?”
Bölüm başlığı “”I opted out by mistake — how do I undo?””→ Same preferences page, untick the box, click Save. There’s no cooldown.
Canned responses
Bölüm başlığı “Canned responses”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/preferencesThree 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.
When to escalate to engineering
Bölüm başlığı “When to escalate to engineering”- Customer reports opt-out not honoured (received SMS/email after toggling)
→ escalate with
customerId+ timestamp; engineering checksSmsLog/EmailLogto 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)
Related docs
Bölüm başlığı “Related docs”docs/MAIL_SMS_GUIDELINES.md— overall messaging policylib/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