Notification System#
The biggest problem with interstellar communication isn't messages getting lost — it's messages arriving too late. Finding out your server crashed yesterday morning is nobody's idea of a good time. The VeriTeknik notification system exists to solve precisely this: the right message, through the right channel, at the right moment.
Think of it as a Babel fish: pop it in your ear and you suddenly understand every language in the universe. Ours does the same with your account — it translates every event into the channel you actually read, without you saying a word.
One Brain, Every Channel#
It used to be that every feature fired off its own notifications however it pleased. Not anymore. Everything now flows through a single central system: a shared content catalogue holds the copy for each event (in both Turkish and English), and a routing engine decides which channels each event should travel through and how the copy should look on each one.
The nice part, from where you're sitting: you don't configure the routing. The system knows which event belongs in email, which in SMS, which in your in-app bell. You simply say "I want this category on that channel" — Deep Thought handles the rest (and without the seven-and-a-half-million-year wait).
Same event, dressed for each channel
The same notification can be long and formal in email, short and friendly on Telegram, and trimmed to fit 160 characters in an SMS. Tailoring the copy per channel is the system's job — you experience one event, we translate it into each channel's dialect.
Channels#
| Channel | How It Works | Setup |
|---|---|---|
| Real-time via SSE, bell icon in the hub | Automatic — if you have an account, it's on | |
| HTML-templated emails over SMTP | Automatic — goes to your registered email | |
| :iphone: SMS | Via Bird.com, falls back to email on failure | Active if your phone number is on file |
| Bot integration, instant messages | Settings → Connections → Link Telegram | |
| :iphone: WhatsApp | Business messages, to your phone number | Rolling out — see below |
| Workspace OAuth connection | Settings → Connections → Slack | |
| Web push via service worker — even with the tab closed | Enable in notification settings, then grant browser permission |
SMS fallback logic
If an SMS delivery fails, the system automatically falls back to email. Your message never vanishes into the void — worst case, it arrives through a different channel. The Hitchhiker's first rule: don't panic. We don't either.
Categories#
Every notification belongs to a category. You can choose which channels to enable for each category independently.
| Category | When It Fires | Example |
|---|---|---|
| billing | Invoices, payments, balance changes | "New invoice issued: #2026-0042" |
| contracts | Contract creation, renewal, cancellation | "Your contract expires in 30 days" |
| vps | Server status changes, provisioning | "Your VPS is ready: 185.x.x.x" |
| domains | Domain registration, transfer, expiry | "veriteknik.com expires in 14 days" |
| support | Support tickets and replies | "Ticket #1234 received a reply" |
| monitoring | Uptime and performance alerts | "Server cpu-alert: CPU above 95%" |
| security | Login attempts, 2FA, security events | "Login from a new device detected" |
| system | Platform updates, maintenance notices | "Scheduled maintenance: 03:00-04:00 UTC" |
The security category cannot be disabled
Security notifications are always delivered through at least one channel (in-app + email). Think of it as a fire alarm — you can't mute it, and you shouldn't want to.
Managing Preferences#
From your notification settings, you control what you receive for every category × every channel independently. The system does the routing; you simply tick "what I want to hear, and where."
Preference Matrix#
You'll see a matrix with categories down the rows and channels across the columns:
| In-App | SMS | Telegram | Browser Push | |||
|---|---|---|---|---|---|---|
| Billing | - | |||||
| Contracts | - | - | - | |||
| VPS | - | |||||
| Domains | - | - | - | - | ||
| Support | - | - | - | |||
| Monitoring | - | - | - | - | ||
| Security | - | |||||
| System | - | - | - | - | - |
Click any cell to toggle it. Changes are saved instantly. (The ticks above are just an example starting layout — the actual choice is yours.)
Some cells are locked on — and that's deliberate
A few channels can't be switched off, because the alternative is losing a notice you're legally or operationally required to receive:
- Email for Billing & Contracts — invoices and contracts are statutory notices (KVKK / e-fatura tebliğ yükümlülüğü), so they always reach your inbox. These email cells stay ticked and greyed-out.
- The whole Security row — every channel is forced on. When someone touches your account's security, you hear about it everywhere. No mostly-harmless surprises.
- The In-App column — the bell always rings. It costs nothing and it's the one place every notice is guaranteed to land.
Everything else is yours to toggle freely.
8 categories, 6 channels
The categories are fixed: Billing, Contracts, VPS, Domains, Support, Monitoring, Security, System. The channels are In-App, Email, SMS, Telegram, Browser Push, and WhatsApp (WhatsApp is rolling out — see below). Slack can also be connected separately for teams that want a notification firehose in their workspace.
Unlinked channels
If you haven't connected your Telegram or Slack account yet, those columns will appear disabled. The same goes for Browser Push: you'll need to grant permission first. Link first, configure later. Priority order: grab your towel first, then explore the galaxy.
Channel Details#
In-App (SSE)#
Real-time notifications appear via the bell icon in the top-right corner of the hub. Powered by Server-Sent Events (SSE) — notifications arrive live as long as the page is open.
- Unread count badge displayed on the bell
- Clicking a notification takes you to the relevant page
- Past notifications are accessible from the list
Email#
HTML-templated, brand-consistent emails. Every email includes a "Manage notification preferences" link at the bottom.
SMS#
Delivered via the Bird.com infrastructure. Messages are kept short and to the point — within the 160-character limit.
When SMS fails
If the number is invalid, the carrier is unreachable, or Bird.com has an outage, the system automatically redirects the same notification to the email channel. This fallback mechanism ensures critical notifications are never lost.
Telegram#
Link our Telegram bot to your account to activate this channel. For detailed setup instructions, see the Telegram Integration page.
WhatsApp#
Rolling out — almost in your pocket
We're adding WhatsApp as a notification channel. Our business message templates are currently in Meta's approval pipeline; once approved, you'll be able to receive notifications via WhatsApp on your phone number too. So: "almost ready," not "available right now." The Babel fish isn't quite settled in the ear yet — but it's getting there.
Once WhatsApp goes live, you'll pick which categories you want on it from the preference matrix, exactly like every other channel. Nothing to tinker with in advance; it'll simply appear in your channel list when it's ready.
Slack#
Connect via OAuth to your workspace. Notifications arrive in your chosen channel or as a DM.
- Settings → Connections → Slack
- Click Connect Slack
- Select your workspace and grant permissions
- Choose a notification channel
Browser Push — Now Live#
This is the newest and most practical addition. Grant permission in your browser once, and notifications land straight on your desktop (or mobile browser) even when the hub tab is closed. No more keeping a tab open forever, waiting for the bell to ring.
To enable it:
- Enable Browser Push from your notification settings
- The browser will ask for permission once — click Allow
- Done. Notifications now arrive even with the tab closed (subject to OS/browser support)
Push on multiple devices
Push permission is per device and per browser. Desktop, laptop, and phone — grant permission on each and the notification reaches all of them. They say one towel is enough for anything, but for push you'll want a towel per device.
Priority Levels#
Every notification carries a priority level:
| Priority | Behavior |
|---|---|
| low | In-app only |
| normal | All active channels |
| high | All active channels + emphasized display |
| urgent | All channels (regardless of preferences) |
You cannot block urgent notifications
Notifications with urgent priority are sent to all channels, no matter what your preferences say. This is how we tell you your server is on fire — and you don't want to receive fire alerts in "do not disturb" mode. When the Vogon fleet approaches, silent mode is not a sensible strategy.
Frequently Asked Questions#
Can I turn off notifications entirely? Except for security and urgent categories, yes. But we don't recommend it — ignoring infrastructure alerts is the ostrich-head-in-sand strategy, and ostriches don't run data centres.
Which channels cost extra? In-app, email, Telegram, Slack, and browser push are free — switch on as many as you like. Channels with a real carrier/service cost, like SMS and WhatsApp, are metered (and may be billable); where they're sent is recorded. No need to panic: we won't invent prices here — if and when this scales, your choice and its cost will be laid out plainly in front of you.
How fast are notifications? In-app and browser push arrive in milliseconds. Email and SMS take a few seconds. Telegram and Slack land in 1-3 seconds. Slower than the speed of light, but perfectly respectable by galactic standards.
Can I receive push notifications on multiple devices? Yes. Just grant permission on each device/browser separately — the notification goes to all of them.
Continuous improvement
The notification system is under active development. Just arrived: browser push is now live, and every notification flows through a single central catalogue + routing engine. On the way: the WhatsApp channel (templates in Meta approval), notification digest/grouping, and scheduling rules ("outside business hours, urgent only"). The Guide's pages never end — neither do ours.